• Teknologia

Kuinka asentaa n8n itse Linux-VPS:lle (vaiheittain)

  • Felix Rose-Collins
  • ••
  • 12 min read

Johdanto

n8n on yksi tehokkaimmista avoimen lähdekoodin työnkulun automatisointityökaluista, joita nykyään on saatavilla. Toisin kuin Zapierin tai Maken kaltaiset SaaS-vaihtoehdot, n8n antaa sinulle täyden hallinnan tiedoistasi ja automaatioistasi – mutta vain, jos isännöit sitä itse. Linux-VPS on ihanteellinen ympäristö tähän: se on aina käytettävissä, edullinen ja täysin hallinnassasi.

Tämä opas opastaa sinut läpi koko prosessin, jossa asennat tuotantokäyttöön valmiin, itse isännöidyn n8n-instanssin Linux-VPS:lle. Aloitat tyhjästä palvelimesta ja pääset lopulta täysin suojattuun, SSL-yhteensopivaan n8n-asennukseen, jossa on Docker, Nginx, PostgreSQL, automaattiset varmuuskopiot ja vahvistettu tietoturvamääritys.

Tärkeimmät kohdat

  • n8n VPS-palvelimella tarjoaa sinulle rajattomat työnkulut, ei käyttörajoituksia ja täyden omistusoikeuden tietoihisi
  • Docker on suositeltava asennustapa, joka helpottaa päivityksiä ja eristämistä
  • PostgreSQL on suositeltava tietokanta tuotantokäyttöön (ei SQLite)
  • Tuotantokäyttöön tarvitaan käänteinen välityspalvelin (Nginx) ja Let’s Encrypt SSL
  • VPS:lläsi tulisi olla vähintään 1 vCPU ja 2 GB RAM-muistia, jotta n8n toimii sujuvasti PostgreSQL:n kanssa
  • Säännölliset automaattiset varmuuskopiot suojaavat työnkulun tietojasi ja tunnistetietojasi

Mikä on n8n?

n8n (lausutaan ”n-eight-n”) on avoimen lähdekoodin työnkulun automatisointialusta, jonka avulla voit yhdistää sovelluksia, sovellusrajapintoja ja palveluita visuaalisen solmupohjaisen editorin avulla. Se tukee yli 400 integraatiota heti käyttövalmiina ja mahdollistaa mukautetun JavaScript- tai Python-koodin ajamisen työnkulkujen sisällä.

n8n:n ja sen kilpailijoiden välinen keskeinen ero tiivistyy kolmeen seikkaan: omistajuus, kustannukset ja joustavuus.

**Omistajuus: **Kun isännöit n8n:ää itse, työnkulkutietosi, tunnistetietosi ja suorituslokisi eivät koskaan poistu omalta palvelimeltasi. Tämä on erittäin tärkeää tiimeille, jotka käsittelevät arkaluonteisia asiakastietoja, talouskirjanpitoa tai yrityskohtaista liiketoimintalogiikkaa. Pilvialustat tallentavat automaatiologiikkasi omaan infrastruktuuriinsa, jolloin se on alisteinen niiden tietojen säilyttämiskäytännöille ja tietoturvatasolle.

**Kustannukset: **n8n:n pilvipaketti veloittaa työnkulun suorituksen mukaan, mikä kasvaa nopeasti suurivolyymisissä automaatioissa. Keskikokoinen tiimi, joka suorittaa tuhansia suorituksia päivässä, voi kuluttaa satoja dollareita kuukaudessa. Omalla VPS-palvelimellasi suoritukset ovat rajoittamattomia ilman lisäkustannuksia, kun olet kerran maksanut palvelimesta.

**Joustavuus: **Itse isännöidyn n8n:n avulla voit asentaa yhteisön solmuja, suorittaa mitä tahansa koodia työnkulkujen sisällä, muodostaa yhteyden sisäisiin palveluihin, joihin ei pääse julkisesta internetistä, ja määrittää käyttöönoton kaikki osa-alueet mieleiseksesi. Pilvipaketit rajoittavat monia näistä ominaisuuksista.

Edellytykset

Ennen kuin aloitat, varmista, että sinulla on:

  • Linux-VPS, jossa on Ubuntu 22.04 tai 24.04 (suositeltava). Tarkista, että palveluntarjoajasi tarjoaa Ubuntua valitsemassasi pakettikokossa, sillä jotkut perustason paketit tarjoavat vain muita jakeluversioita
  • Ei-root-käyttäjä, jolla on sudo-oikeudet
  • VPS-palvelimesi IP-osoitteeseen osoittava verkkotunnus (esim. n8n.yourdomain.com)
  • SSH-yhteys palvelimeesi
  • Perustiedot Linuxin komentorivistä

Oikean VPS:n valinta

Valitsemasi palvelin vaikuttaa suoraan n8n:n suorituskykyyn. Tarvitset vähintään 1 vCPU:n, 2 GB RAM-muistia ja 20 GB SSD-tallennustilaa. Lisämuistia tarvitaan verrattuna minimaaliseen SQLite-pohjaiseen asennukseen, koska PostgreSQL, Nginx ja n8n toimivat kaikki samanaikaisesti.

Tapaa Ranktracker

All-in-One-alusta tehokkaaseen hakukoneoptimointiin

Jokaisen menestyvän yrityksen takana on vahva SEO-kampanja. Mutta kun tarjolla on lukemattomia optimointityökaluja ja -tekniikoita, voi olla vaikea tietää, mistä aloittaa. No, älä pelkää enää, sillä minulla on juuri oikea apu. Esittelen Ranktracker all-in-one -alustan tehokasta SEO:ta varten.

Olemme vihdoin avanneet Ranktrackerin rekisteröinnin täysin ilmaiseksi!

Luo ilmainen tili

Tai Kirjaudu sisään omilla tunnuksillasi

Jos tiimissäsi on useita käyttäjiä, monimutkaisia monivaiheisia työnkulkuja tai suuri webhook-läpimenomäärä, päivitä 2 vCPU:hun ja 4 GB RAM-muistiin. Tallennustilan tulisi olla vähintään 40 GB, jos aiot säilyttää pitkiä suorituslokeja.

PetroSky tarjoaa NVMe-VPS-paketteja Pariisissa ja Montrealissa, ja n8n on saatavilla yhden klikkauksen sovelluksena kassalla: avoimen lähdekoodin asennusskripti ottaa n8n:n käyttöön Docker Compose -sovelluksella ja määrittää HTTPS:n automaattisesti Caddy- ja Let’s Encrypt -palveluiden kautta. Tämä opas käsittelee manuaalista asennustapaa, joka toimii minkä tahansa palveluntarjoajan kanssa.

Kun valitset VPS-palveluntarjoajaa, ota huomioon myös maantieteellinen sijainti. Isännöi n8n-instanssiasi alueella, joka on lähimpänä palveluita, joihin se muodostaa yhteyden useimmin – tämä vähentää API-viivettä työnkulun suorituksissa.

Vaihe 1: Päivitä palvelimesi

Yhdistä VPS-palvelimeesi SSH:n kautta ja suorita täydellinen järjestelmän päivitys ennen minkään asentamista:

    sudo apt update && sudo apt upgrade -y

Tämä varmistaa, että sinulla on uusimmat tietoturvakorjaukset ja että kaikki järjestelmäkirjastot ovat ajan tasalla ennen Docker-ohjelmiston ja muiden ohjelmistojen asentamista.

Käynnistä järjestelmä uudelleen, jos ytimen päivitys on asennettu:

    sudo reboot

Kun olet muodostanut yhteyden uudelleen SSH:n kautta, luo erillinen järjestelmäkäyttäjä n8n:n ajamista varten. Palveluiden ajaminen root-käyttäjänä on turvallisuusriski:

    sudo adduser n8nuser
    sudo usermod -aG sudo n8nuser
    su - n8nuser

Vaihe 2: Asenna Docker ja Docker Compose

n8n:n virallisesti suositeltu asennustapa on Docker. Docker eristää n8n:n ja sen riippuvuudet muusta järjestelmästä, mikä helpottaa päivityksiä ja palautuksia.

Asenna Docker virallisen apuskriptin avulla:

    curl -fsSL https://get.docker.com | sudo sh

Docker-dokumentaatiossa huomautetaan, että kätevää komentosarjaa ei suositella tuotantoympäristöihin, koska se asentaa uusimman julkaisun antamatta sinun valita versiota. Jos haluat kiinnittää Docker-versiot, käytä sen sijaan apt-pakettivarastomenetelmää Docker-asennusoppaasta Ubuntulle (docs.docker.com/engine/install/ubuntu/).

Lisää käyttäjäsi Docker-ryhmään, jotta voit suorittaa Docker-komentoja ilman sudo-komentoa:

    sudo usermod -aG docker $USER
    newgrp docker

Varmista, että Docker toimii oikein:

    docker --version
    docker compose version

Molempien komentojen tulisi palauttaa versiotiedot ilman virheitä. Jos Docker Composea ei löydy, asenna se manuaalisesti:

    sudo apt install docker-compose-plugin -y

Vaihe 3: PostgreSQL:n määrittäminen tuotantokäyttöön

Oletusarvoisesti n8n käyttää SQLite-tietokantaa. SQLite sopii hyvin henkilökohtaiseen käyttöön ja kevyisiin työnkulkuihin, mutta se käsittelee samanaikaisia kirjoituksia huonosti, mikä näkyy hidastumina ja ”tietokanta on lukittu” -virheinä, kun useita työnkulkuja ajetaan samanaikaisesti. Tuotantokäyttöön PostgreSQL on oikea valinta.

Tapaa Ranktracker

All-in-One-alusta tehokkaaseen hakukoneoptimointiin

Jokaisen menestyvän yrityksen takana on vahva SEO-kampanja. Mutta kun tarjolla on lukemattomia optimointityökaluja ja -tekniikoita, voi olla vaikea tietää, mistä aloittaa. No, älä pelkää enää, sillä minulla on juuri oikea apu. Esittelen Ranktracker all-in-one -alustan tehokasta SEO:ta varten.

Olemme vihdoin avanneet Ranktrackerin rekisteröinnin täysin ilmaiseksi!

Luo ilmainen tili

Tai Kirjaudu sisään omilla tunnuksillasi

Käynnistä PostgreSQL Dockerissa n8n:n rinnalla:

    mkdir ~/n8n && cd ~/n8n

Luo ympäristötiedosto salaisuuksien turvallista tallentamista varten. Älä koskaan kirjoita salasanoja suoraan compose-tiedostoon:

    nano ~/n8n/.env

Lisää seuraava teksti ja korvaa paikkamerkkien arvot vahvoilla, ainutlaatuisilla salasanoilla:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=kirjoita_tähän_vahva_tietokantasalasanasi
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=kirjoita_tähän_satunnainen_32_merkin_merkkijono

Luo turvallinen salausavain seuraavalla komennolla:

    openssl rand -hex 16

Käytä tulostetta N8N_ENCRYPTION_KEY-arvona. Tämä avain salaa n8n:ään tallennetut tunnistetiedot — jos kadotat sen, kaikkia tallennettuja tunnistetietoja ei voi enää palauttaa.

Vaihe 4: Luo n8n-Docker Compose -tiedosto

Luo docker-compose.yml-tiedosto n8n-hakemistoosi:

    nano ~/n8n/docker-compose.yml

Liitä seuraava konfiguraatio:


services:
  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 10


  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Europe/London
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - EXECUTIONS_MODE=regular
      - N8N_LOG_LEVEL=info
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy


volumes:
  postgres_data:
  n8n_data:

Määritysohjeet:

  • Portin sidonta 127.0.0.1:5678:5678 varmistaa, että n8n on käytettävissä vain paikallisesti. Nginx käsittelee kaiken ulkoisen liikenteen — älä koskaan avaa porttia 5678 suoraan internetiin.
  • depends_on-määritteen service_healthy-ehto varmistaa, että n8n odottaa PostgreSQL:n olevan täysin valmis ennen käynnistymistä. Ilman tätä n8n epäonnistuu ensimmäisellä käynnistyksellä, jos tietokanta ei vielä hyväksy yhteyksiä.
  • N8N_LOG_LEVEL=info tuottaa hyödyllisiä toimintalokeja ilman, että levytila täyttyy, kuten debug-asetuksella tapahtuisi.

Vaihe 5: Nginxin asennus ja konfigurointi

Nginx toimii käänteisvälityspalvelimena, joka välittää HTTPS-liikenteen portista 443 n8n-konttiisi porttiin 5678. Se hoitaa myös SSL-yhteyden päättämisen, mikä tarkoittaa, että n8n:n ei itse tarvitse hallinnoida varmenteita.

    sudo apt install nginx -y

Poista oletussivusto ja luo uusi palvelinlohko n8n:lle:

    sudo rm /etc/nginx/sites-enabled/default
    sudo nano /etc/nginx/sites-available/n8n

Liitä seuraava teksti:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
server {
    listen 80;
    server_name n8n.yourdomain.com;


    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        chunked_transfer_encoding on;
        proxy_buffering off;
        proxy_cache off;
        proxy_read_timeout 90s;
        client_max_body_size 50m;
    }
}

Yläosassa oleva map-lohko käsittelee WebSocket-päivitysotsikoita oikein. n8n käyttää WebSocket-yhteyksiä reaaliaikaisiin päivityksiin editorissa, joten tämä asetus on tärkeä — ilman sitä visuaalinen editori ei toimi oikein.

client_max_body_size 50m -ohje mahdollistaa suurten webhook-kuormien vastaanottamisen työnkuluissa. Nginxin oletusraja on 1 MB, mikä on liian pieni tiedostojen lähetystä tai suuria JSON-vastauksia käsitteleville työnkuluille.

Ota asetus käyttöön ja testaa se:

    sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx

Vaihe 6: Hanki SSL-varmenne Let’s Encryptin avulla

Asenna Certbot ja Nginx-laajennus:

    sudo apt install certbot python3-certbot-nginx -y

Pyydä varmenne verkkotunnuksellesi:

    sudo certbot --nginx -d n8n.yourdomain.com

Seuraa ohjeita. Kun sinulta kysytään, haluatko ohjata HTTP-liikenteen HTTPS:ään, valitse Kyllä (vaihtoehto 2). Certbot päivittää automaattisesti Nginx-asetuksesi tämän uudelleenohjauksen käsittelemiseksi ja asentaa täydellisen varmenneketjun.

Varmista, että automaattinen uusinta on määritetty oikein:

    sudo certbot renew --dry-run

Certbot asentaa systemd-ajastimen, joka uusii varmenteet automaattisesti 12 tunnin välein. Varmenteet uusitaan, kun niiden voimassaoloaika päättyy 30 päivän kuluessa. Sinun ei pitäisi koskaan joutua uusimaan varmenteita manuaalisesti.

Vaihe 7: Käynnistä n8n

Palaa n8n-hakemistoon ja käynnistä kaikki palvelut:

    cd ~/n8n
    docker compose up -d

Docker lataa PostgreSQL- ja n8n-kuvat, luo levyt, käynnistää ensin PostgreSQL:n, odottaa, kunnes toimintatarkistus on suoritettu onnistuneesti, ja käynnistää sitten n8n:n. Tämä prosessi kestää ensimmäisellä kerralla 1–3 minuuttia.

Tarkista, että molemmat kontit ovat käynnissä:

    docker compose ps

Luettelossa pitäisi näkyä sekä postgres että n8n tilassa Up. Jos n8n:n tilana näkyy Restarting, tarkista lokit:

    docker compose logs n8n --tail=50

Kun molemmat kontit ovat kunnossa, avaa selain ja siirry osoitteeseen https://n8n.yourdomain.com. Sinua pyydetään luomaan omistajatili sähköpostiosoitteella ja salasanalla. Tällä tilillä on täydet järjestelmänvalvojan oikeudet n8n-instanssiisi.

Vaihe 8: Määritä n8n käynnistymään käynnistyksen yhteydessä

Docker-compose.yml-tiedostossa oleva restart: always -määräys varmistaa, että kaikki kontit käynnistyvät uudelleen automaattisesti kaatumisen tai palvelimen uudelleenkäynnistyksen yhteydessä.

Varmista tämä käynnistämällä palvelimesi uudelleen:

    sudo reboot

Kun olet muodostanut yhteyden uudelleen SSH:n kautta, tarkista, että n8n käynnistyi automaattisesti uudelleen:

    docker compose -f ~/n8n/docker-compose.yml ps

Molempien konttien pitäisi näkyä käynnissä ilman manuaalista puuttumista.

Vaihe 9: Määritä automaattiset varmuuskopiot

n8n-tietosi — työnkulut, tunnistetiedot ja suoritushistoria — sijaitsevat kahdessa paikassa: PostgreSQL-tietokannassa ja n8n_data-Docker-volyymissä (joka tallentaa salausavaimet ja osan asetuksista). Varmuuskopioi molemmat säännöllisesti.

Luo varmuuskopiointiskripti:

    nano ~/n8n/backup.sh

Liitä seuraava teksti:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Varmista ennen muuta, että varmuuskopiohakemisto on olemassa
mkdir -p "$BACKUP_DIR"


# PostgreSQL:n varmuuskopiointi
DUMP_FILE="$BACKUP_DIR/n8n_db_$DATE.sql"
docker compose -f /home/n8nuser/n8n/docker-compose.yml exec -T postgres \
  pg_dump -U n8n n8n > "$DUMP_FILE"


# Varmista, että varmuuskopiointi onnistui ja tiedosto ei ole tyhjä
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "VIRHE: Tietokannan varmuuskopiointi epäonnistui päivänä $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Varmuuskopioi salausavain ja ympäristömuuttujat
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Varmuuskopioi n8n_data-levy (instanssin asetukset ja asennetut yhteisön solmut)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Pakkaa tietokantadump
gzip "$DUMP_FILE"


# Säilytä vain viimeisen 7 päivän varmuuskopiot
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.bak" -mtime +7 -delete
find "$BACKUP_DIR" -name "n8n_data_*.tar.gz" -mtime +7 -delete


echo "Varmuuskopiointi valmis: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Volyymin nimi n8n_n8n_data johtuu siitä, että Docker Compose lisää volyymille etuliitteeksi projektikansion nimen (n8n). Varmista omasi komennolla docker volume ls.

Määritä skripti suoritettavaksi ja ajoita se cronilla:

    chmod +x ~/n8n/backup.sh
    crontab -e

Lisää tämä rivi, jotta varmuuskopiointi suoritetaan joka päivä klo 2 aamulla:

    0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1

Ulkoisen redundanssin varmistamiseksi kannattaa harkita varmuuskopiokansion synkronointia S3-yhteensopivaan objektitallennuspalveluun rclone- tai aws s3 sync -työkalun avulla.

Vaihe 10: Ota käyttöön perustason tietoturvan vahvistaminen

Määritä palomuuri

Asenna UFW ja salli vain palvelimesi tarvitsemat portit:

    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable

Varmista, että säännöt ovat voimassa:

    sudo ufw status verbose

Porttien 22 (SSH), 80 (HTTP) ja 443 (HTTPS) pitäisi näkyä sallittuina. Yksi varoitus: Docker kirjoittaa omat palomuurisäännöt ja ohittaa UFW:n julkaistujen konttiporttien osalta. Portti 5678 pysyy yksityisenä, koska compose-tiedosto sitoo sen osoitteeseen 127.0.0.1, ei UFW:n takia, joten älä koskaan muuta tätä sidontaa osoitteeksi 0.0.0.0.

Poista salasana-autentikointi käytöstä SSH:ssa

Jos käytät SSH-avaimia (kuten sinun pitäisi), poista salasanapohjainen SSH-kirjautuminen kokonaan käytöstä. Varmista ensin, että n8nuser-tili voi kirjautua sisään avaimellasi. Suorita paikalliselta koneeltasi:

    ssh-copy-id n8nuser@palvelimesi_ip

Muokkaa sitten SSH-palvelimen asetuksia:

    sudo nano /etc/ssh/sshd_config

Aseta seuraavat arvot:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Monissa Ubuntu-pilvikuva-asennuksissa /etc/ssh/sshd_config.d/ -kansiossa oleva tiedosto (usein 50-cloud-init.conf) asettaa PasswordAuthentication-asetukseksi yes, ja tämä asetus on voimassa, koska sshd käyttää ensimmäistä lukemaansa arvoa. Tarkista, mikä asetus on tosiasiallisesti voimassa:

    sudo sshd -T | grep -i passwordauthentication

Komenon tuloksena pitäisi näkyä passwordauthentication no. Jos näin ei ole, muuta arvoa ohitustiedostossa ja käynnistä SSH uudelleen.

Älä sulje nykyistä SSH-istuntoasi, ennen kuin olet varmistanut, että avainpohjainen kirjautuminen toimii uudessa terminaali-ikkunassa.

Rajoita n8n-kirjautumissivun pyyntöjen määrää

Lisää rajoitus hidastamaan n8n-kirjautumispisteeseen kohdistuvia brute-force-hyökkäyksiä.

Tapaa Ranktracker

All-in-One-alusta tehokkaaseen hakukoneoptimointiin

Jokaisen menestyvän yrityksen takana on vahva SEO-kampanja. Mutta kun tarjolla on lukemattomia optimointityökaluja ja -tekniikoita, voi olla vaikea tietää, mistä aloittaa. No, älä pelkää enää, sillä minulla on juuri oikea apu. Esittelen Ranktracker all-in-one -alustan tehokasta SEO:ta varten.

Olemme vihdoin avanneet Ranktrackerin rekisteröinnin täysin ilmaiseksi!

Luo ilmainen tili

Tai Kirjaudu sisään omilla tunnuksillasi

**Tärkeää: **limit_req_zone-ohjeen on oltava Nginx-pääasetustiedoston http {} -lohkossa — ei server-lohkossa. Avaa pääasetustiedosto:

    sudo nano /etc/nginx/nginx.conf

Lisää tämä rivi olemassa olevaan http {} -lohkoon:

    http {
        ...
        limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
        ...
    }

Lisää sitten n8n-sivuston konfiguraatioon (/etc/nginx/sites-available/n8n) tämä location-lohko porttia 443 kuuntelevan server-lohkon sisään (Certbot loi sen vaiheessa 6), olemassa olevan location / -kohdan viereen. Nginx ei siirrä proxy-otsikoita location / -kohdasta, joten ne toistetaan tässä:

    location /rest/login {
        limit_req zone=n8n_login burst=5 nodelay;
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

Lataa Nginx uudelleen, jotta muutokset tulevat voimaan:

    sudo nginx -t && sudo systemctl reload nginx

Tämä rajoittaa kunkin IP-osoitteen kirjautumisyritykset noin viiteen minuutissa, ja sallii pienen hetkellisen ylityksen.

Pidä n8n ja PostgreSQL ajan tasalla

Lataa uusimmat kuvat säännöllisesti ja käynnistä palvelut uudelleen:

    cd ~/n8n
    docker compose pull
    docker compose up -d

Docker lataa uusimmat n8nio/n8n- ja postgres-kuvat ja käynnistää uudelleen vain ne kontit, joille on saatavilla uudempi versio.

Tuotantokäytössä kannattaa harkita n8n-kuvan kiinnittämistä tiettyyn versiotunnisteeseen (docker.n8n.io/n8nio/n8n:<versio>, otettu n8n:n julkaisutiedoista) ja päivittää tarkoituksellisesti, jotta rutiinilatauksessa ei koskaan hypätä pääversiota eteenpäin ennen kuin olet lukenut muutospäiväkirjan.

Yleisten ongelmien vianmääritys

n8n-kontti käynnistyy uudelleen jatkuvasti

Tarkista kontin lokit heti, kun uudelleenkäynnistyssilmukka alkaa:

    docker compose logs n8n --tail=100

Yleisiä syitä:

  • Tietokantayhteyden vika: Varmista, että PostgreSQL toimii oikein komennolla docker compose ps. Tarkista, että .env-tiedostosi POSTGRES_PASSWORD-asetus vastaa sitä, millä tietokanta alustettiin.
  • Salausavain puuttuu tai on muuttunut: Jos N8N_ENCRYPTION_KEY-muuttujaa ei ole määritetty tai se on muutettu ensimmäisen ajon jälkeen, n8n ei voi purkaa tallennettuja tunnistetietoja ja kaatuu.
  • Riittämätön RAM-muisti: PostgreSQL ja n8n voivat yhdessä käyttää 1–1,5 GB RAM-muistia. Tarkista käytettävissä oleva muisti komennolla `free -h`.

Webhookit eivät toimi

Webhookit edellyttävät, että n8n on saavutettavissa internetistä omalla verkkotunnuksellasi. Varmista:

  1. Verkkotunnuksesi DNS A-tietue osoittaa VPS:n IP-osoitteeseen: dig n8n.yourdomain.com
  2. Nginx on käynnissä: sudo systemctl status nginx
  3. Portti 443 on auki: sudo ufw status
  4. WEBHOOK_URL-ympäristömuuttuja vastaa tarkalleen julkista verkkotunnustasi, mukaan lukien lopussa oleva kauttaviiva

n8n-editori ei lataudu oikein

Jos visuaalinen editori latautuu, mutta työnkulun työkenttä näkyy tyhjänä tai reaaliaikaiset päivitykset lakkaavat toimimasta, WebSocket-yhteys on katkennut. Tarkista, että Nginx-määrityksissäsi on $http_upgrade-lohko ja että käytät $connection_upgrade-muuttujaa — et kirjaimellista merkkijonoa ”upgrade” — proxy_set_header Connection -rivillä.

SSL-varmennevirheet

Jos Certbot epäonnistuu verkkotunnuksen vahvistusvirheen vuoksi, tarkista, että portti 80 on saavutettavissa internetistä:

    curl -I http://n8n.yourdomain.com

Jos pyyntö aikakatkaistaan, VPS-palveluntarjoajasi palomuuri saattaa estää portin 80. Tarkista UFW:n lisäksi pilvipalvelukonsolin palomuurisäännöt.

Johtopäätös

n8n:n itseisännöinti Linux-VPS:llä tarjoaa tuotantokäyttöön valmiin työnkulun automatisointialustan, jossa ei ole suoritusrajoituksia, joka takaa täydellisen tietosuojan ja jonka joustavuus mahdollistaa minkä tahansa tarvitsemasi integraation toteuttamisen. Tässä oppaassa käsitelty asennus — Docker, PostgreSQL, Nginx-käänteisvälityspalvelin, Let’s Encrypt SSL, automatisoidut varmuuskopiot ja tietoturvan vahvistaminen — on sama kokonaisuus, jota käytetään tuotantoympäristöissä, ja se tarjoaa vakaan ja turvallisen perustan, jolle rakentaa.

Toisin kuin minimaalinen Docker-run-komennolla tehty asennus, tämä kokoonpano on suunniteltu kestämään palvelimen uudelleenkäynnistykset, käsittelemään samanaikaisia työnkulkujen suorituksia ja palautumaan sujuvasti vikatilanteista. Käyttäjätunnuksesi on salattu, tiedoistasi otetaan varmuuskopio joka yö, ja kirjautumispäätepistettäsi rajoitetaan brute force -hyökkäysten varalta.

Kun instanssisi on käynnissä, tutustu n8n:n sisäänrakennettuihin solmuihin tietokantoja, API:ita, webhookeja ja tekoälyintegraatioita varten, jotta voit aloittaa työnkulkujesi automatisoinnin välittömästi. Itse isännöity yhteisöfoorumi osoitteessa community.n8n.io on myös erinomainen lähde työnkulkuideoille, solmujen vianmääritykselle ja käyttöönottovinkkeille.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Aloita Ranktrackerin käyttö... ilmaiseksi!

Selvitä, mikä estää verkkosivustoasi sijoittumasta.

Luo ilmainen tili

Tai Kirjaudu sisään omilla tunnuksillasi

Different views of Ranktracker app