Language: sw
n8n kwenye VPS: jukwaa lako la kiotomatisha bila kazi za mikono zisizo za lazima
Ombi linafika kutoka kwenye tovuti. n8n hukagua data, hutafuta nakala, huunda dili, huandaa rasimu ya jibu kwa kutumia AI na kumjulisha meneja kwenye Telegram. Mtu huingilia tu uamuzi unapohitajika, si kuhamisha data kati ya vichupo vya kivinjari.
Hapa chini tutaangalia jinsi n8n inavyofanya kazi na jinsi ya kuiweka kwenye VPS kwa Docker Compose, PostgreSQL, HTTPS na utekelezaji wa msimbo uliotengwa.
Hatua saba za kuanzisha n8n
Mpango wa chini kabisa wa kuanzisha:
- Unda VPS na uelekeze subdomain kwake, kwa mfano
n8n.example.com. - Sakinisha Docker na Docker Compose.
- Endesha n8n pamoja na PostgreSQL, kiendeshaji cha kazi cha nje na Caddy.
- Fungua kiolesura kupitia HTTPS na uunde akaunti ya mmiliki.
- Unganisha Telegram, CRM, barua pepe au API yoyote ya nje.
- Sanidi ushughulikiaji wa makosa na muda wa kuhifadhi data ya utekelezaji.
- Otomatisha nakala za kuhifadhi za hifadhidata, data na ufunguo wa usimbaji.
Kwa usakinishaji mdogo wa uzalishaji, kuanza na 2 vCPU na 4 GB za RAM ni jambo la busara. 2 GB mara nyingi inatosha kwa majaribio, lakini PostgreSQL, Docker na michakato inayotokea kwa wakati mmoja hutumia haraka nafasi iliyobaki.
n8n ni nini na inafanyaje kazi
n8n ni jukwaa la kuendesha kiotomatiki mtiririko wa kazi. Mtiririko huundwa kwa nodi: moja huanzisha mchakato, zinazofuata hupokea na kubadilisha data, na nodi ya mwisho hufanya kitendo.
Mtiririko rahisi huonekana hivi:
Webhook → data validation → CRM → Telegram → website response
Mnyororo unaweza kuanzishwa na webhook, ratiba, barua pepe, ujumbe au tukio katika huduma ya nje. Masharti, mizunguko, vichujio, kusubiri na ushughulikiaji wa makosa vinapatikana kati ya nodi.
Moja ya nguvu za n8n ni kwamba otomatishaji hauishii kwenye miunganisho iliyo tayari. Unaweza kuita huduma yoyote yenye API kupitia HTTP Request, huku ukiandika mantiki maalum katika nodi ya Code kwa JavaScript au Python. Hivyo n8n iko kati ya kijenzi rahisi cha no-code na msimbo maalum wa upande wa seva.
Kwa nini ni zaidi ya kusambaza data
n8n ni muhimu mchakato unapohusisha mifumo kadhaa na kuhitaji uamuzi:
form → validation → duplicate search → AI assessment → manager approval → CRM
Mtu anaweza kubaki tu kwenye sehemu ya udhibiti. Kwa mfano, AI huandaa jibu, lakini ujumbe hutumwa kwa mteja baada ya mfanyakazi kuuidhinisha.
Matumizi ya kawaida:
- mauzo na usaidizi: kukusanya maombi, kugawa vielelezo vya wateja na kuunda dili;
- maudhui na AI: kuandaa rasimu, kuainisha maombi na kuchapisha baada ya kuidhinishwa;
- DevOps: arifa za kukatika kwa huduma, Git webhook na ukaguzi wa API;
- shughuli za ndani: kusawazisha lahajedwali, barua pepe, kalenda na mifumo ya kampuni.
Usakinishaji wa self-hosted hukupa udhibiti wa mchakato na hifadhidata, lakini hauzifanyi huduma za nje kuwa za ndani. Data inayotumwa Telegram, CRM au modeli ya AI ya wingu hutoka kwenye VPS.
n8n Cloud au seva yako mwenyewe
| Kigezo | n8n Cloud | n8n kwenye VPS |
|---|---|---|
| Kuanzisha | Hakuna usanidi wa seva unaohitajika | Kikoa, Docker na HTTPS vinahitajika |
| Masasisho | Husimamiwa na n8n | Husimamiwa na mmiliki |
| Hifadhidata na faili | Kwenye miundombinu ya huduma | Kwenye seva iliyochaguliwa |
| Kupanua | Kulingana na mpango wa wingu | Husanidiwa kwa kujitegemea |
| Wajibu | Usimamizi mdogo | Nakala za kuhifadhi, usalama na ufuatiliaji ni wajibu wa mmiliki |
| Inafaa kwa | Mwanzo wa haraka bila DevOps | Udhibiti, urekebishaji na michakato inayofanya kazi daima |
Community Edition inaweza kujiendesha kwa self-hosted bila malipo kwenye seva yako kwa michakato ya kibinafsi na ya ndani ya biashara. Hata hivyo, n8n haisambazwi chini ya leseni ya kawaida ya open-source, bali chini ya fair-code Sustainable Use License. Inaruhusu matumizi ya ndani na marekebisho, lakini hairuhusu uweke n8n tu, uongeze nembo yako na uuze ufikiaji kama SaaS huru. Kwa bidhaa kama hiyo, masharti ya leseni yanapaswa kuchunguzwa kando.
Mahitaji ya seva ya n8n
Mzigo hutegemea kiasi cha data, utekelezaji wa wakati mmoja na aina ya shughuli. Faili, orodha ndefu, nodi za Code na mtiririko wa AI huhitaji kumbukumbu zaidi kuliko kupitisha pakiti ndogo za JSON kati ya API.
| Hali | Usanidi wa kuanzia |
|---|---|
| Majaribio na mtiririko wa kibinafsi unaotegemea maandishi | 1 vCPU, 2 GB RAM, 20 GB NVMe |
| Usakinishaji mdogo wa uzalishaji | 2 vCPU, 4 GB RAM, 25–40 GB NVMe |
| Michakato ya wakati mmoja, AI au faili | 4 vCPU, 8 GB RAM au zaidi |
| Michakato kadhaa ya worker katika queue mode | Pima kulingana na kiasi cha utekelezaji |
SQLite inafaa kwa kujifunza na usanidi mdogo wa instans moja. PostgreSQL ni rahisi zaidi kwa uzalishaji: nakala za kuhifadhi ni rahisi na kuhamia queue mode baadaye ni rahisi zaidi.
Jinsi ya kusakinisha n8n kwenye VPS
Mfano huu unatumia Ubuntu 24.04, PostgreSQL, Caddy na kiendeshaji cha kazi cha nje. Badilisha n8n.example.com na eneo la muda kwa thamani zako.
1. Sanidi DNS na uandae seva
Unda rekodi ya A ya DNS inayoelekeza kwenye anwani ya IPv4 ya VPS, kisha unganisha kupitia SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y ca-certificates curl ufw opensslSakinisha Docker Engine na programu-jalizi ya Compose kutoka hazina rasmi:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionRuhusu SSH, HTTP na HTTPS pekee:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableUsifunge kipindi cha sasa cha SSH hadi uthibitishe kuwa muunganisho mpya unafanya kazi.
2. Unda vigezo vya mazingira
Andaa saraka:
mkdir -p /opt/n8n
cd /opt/n8nUnda .env. Amri zilizo hapa chini hutengeneza mara moja siri tofauti za PostgreSQL, usimbaji wa n8n na kiendeshaji cha kazi:
cat > .env <<EOF
N8N_VERSION=stable
N8N_HOST=n8n.example.com
GENERIC_TIMEZONE=Europe/Berlin
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=$(openssl rand -hex 32)
N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
RUNNERS_AUTH_TOKEN=$(openssl rand -hex 32)
EOF
chmod 600 .envTag ya stable inafaa kwa kuanzisha mara ya kwanza. Baada ya kuthibitisha usakinishaji, ni bora kubandika toleo maalum la n8n ili sasisho la image linalofuata lisitokee bila kutarajiwa.
Usipoteze N8N_ENCRYPTION_KEY. n8n hutumia ufunguo huu kusimba nywila, tokeni na vitambulisho vingine vilivyohifadhiwa. Ukirejesha PostgreSQL pekee bila ufunguo, rekodi zitabaki kwenye hifadhidata, lakini n8n haitaweza kuzisoma.
3. Unda faili ya Docker Compose
Unda compose.yaml:
services:
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PGDATA: /var/lib/postgresql/data
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
restart: unless-stopped
environment:
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_HOST: ${N8N_HOST}
N8N_PORT: "5678"
N8N_PROTOCOL: https
N8N_EDITOR_BASE_URL: https://${N8N_HOST}
N8N_WEBHOOK_URL: https://${N8N_HOST}/
N8N_PROXY_HOPS: "1"
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}
TZ: ${GENERIC_TIMEZONE}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
N8N_BLOCK_ENV_ACCESS_IN_NODE: "true"
N8N_RUNNERS_MODE: external
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
EXECUTIONS_DATA_PRUNE: "true"
EXECUTIONS_DATA_MAX_AGE: "168"
EXECUTIONS_DATA_PRUNE_MAX_COUNT: "10000"
volumes:
- n8n_data:/home/node/.n8n
expose:
- "5678"
depends_on:
postgres:
condition: service_healthy
n8n-runner:
image: n8nio/runners:${N8N_VERSION}
restart: unless-stopped
environment:
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_TASK_BROKER_URI: http://n8n:5679
depends_on:
- n8n
caddy:
image: caddy:2-alpine
restart: unless-stopped
environment:
N8N_HOST: ${N8N_HOST}
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- n8n
volumes:
postgres_data:
name: n8n_postgres_data
n8n_data:
name: n8n_data
caddy_data:
name: n8n_caddy_data
caddy_config:
name: n8n_caddy_configKienyeji cha nje cha kazi hutekeleza msimbo kando na mchakato mkuu wa n8n. Hii ni salama zaidi kuliko hali ya ndani na hupunguza uwezekano wa hitilafu kwenye nodi ya Code kuathiri editor na uchakataji wa webhook.
4. Washa HTTPS
Unda Caddyfile:
{$N8N_HOST} {
reverse_proxy n8n:5678
}Ikiwa DNS tayari inaelekeza kwenye VPS na porti 80 na 443 zinapatikana, Caddy itapata cheti cha TLS kiotomatiki. Porti ya ndani 5678 haijawekwa wazi kwenye mtandao: ni porti 80 na 443 pekee zinazopatikana nje, huku Caddy ikiifikia n8n kupitia mtandao wa Docker.
Vigezo N8N_WEBHOOK_URL na N8N_PROXY_HOPS vinahitajika ili editor itengeneze anwani sahihi za webhook za umma na iamini vichwa kutoka reverse proxy moja.
5. Anzisha n8n
Thibitisha usanidi wa mwisho na uanzishe kontena:
docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100 n8n caddyFungua:
https://n8n.example.comUnda akaunti ya mmiliki. Usishiriki nenosiri lake na wenzako: kwa kazi ya timu, tumia akaunti tofauti na mpe kila mtu ruhusa anazohitaji tu.
Mtiririko wako wa kwanza wenye manufaa
Jaribio zuri ni kuchakata ombi kutoka kwenye tovuti:
- Ongeza nodi ya
Webhookyenye mbinu yaPOST. - Tumia
Edit Fieldskubakiza jina, anwani ya barua pepe na chanzo pekee. - Tumia nodi ya
Ifkukataa ombi lisilo na data inayohitajika. - Unda dili kwenye CRM au tuma ombi kupitia
HTTP Request. - Ongeza arifa ya Telegram.
- Maliza mnyororo kwa nodi ya
Respond to Webhook. - Baada ya kujaribu, washa mtiririko na ubadilishe webhook ya majaribio kwa URL ya uzalishaji.
Mfano huu hukagua mara moja kikoa, HTTPS, maombi yanayoingia, vitambulisho na muunganisho wa nje. Kisha ongeza Error Workflow tofauti itakayokuarifu mnyororo mkuu unaposhindwa.
Kulinda n8n baada ya usakinishaji
Instans ya n8n iliyosakinishwa haiwi ya kuaminika kiotomatiki. Baada ya kuanzisha, hakikisha kwamba:
- editor inapatikana kupitia HTTPS pekee;
.envina ruhusa600na haijatumwa Git;- funguo za API za nje zina ruhusa za chini zinazohitajika;
- kila webhook inathibitisha sahihi au siri ya chanzo;
- historia ya utekelezaji inafutwa kiotomatiki;
- makosa katika mtiririko muhimu yanatumwa kwa msimamizi.
Nodi za Community husakinishwa kama vifurushi na zinaweza kupata data ya mtiririko na seva. Usiongeze nodi usizozijua bila kuzikagua. Ikiwa huzihitaji, zizime kwa N8N_COMMUNITY_PACKAGES_ENABLED=false.
Endesha ukaguzi uliojengwa ndani:
docker compose exec n8n n8n auditHusaidia kutambua webhook zisizolindwa, nodi hatari na matatizo ya vitambulisho, lakini haichukui nafasi ya ukaguzi wa mikono.
Historia ya utekelezaji na data binafsi
n8n huhifadhi data ya kuingiza na kutoa kwa ajili ya kutatua hitilafu. Pamoja nayo, ujumbe wa barua pepe, nambari za simu, nyaraka na majibu ya API vinaweza kubaki kwenye hifadhidata.
Katika usanidi ulio hapo juu, utekelezaji hufutwa baada ya siku saba na idadi yake inawekewa kikomo cha 10,000. Kwa michakato nyeti, chagua muda wa kuhifadhi kulingana na sera yako ya kuhifadhi data na uondoe sehemu zisizohitajika kabla mtiririko haujakamilika.
Nakala za kuhifadhi na masasisho
Urejeshaji unahitaji dump ya PostgreSQL, n8n_data volume, faili za usanidi na .env iliyo na N8N_ENCRYPTION_KEY. Kabla ya kunakili, simamisha vichakataji huku PostgreSQL ikiendelea kufanya kazi. Hii husababisha usumbufu mfupi katika utekelezaji wa mtiririko:
cd /opt/n8n
mkdir -p backup
docker compose stop n8n n8n-runner
docker compose exec -T postgres sh -c \
'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' \
| gzip > "backup/n8n-db-$(date +%F).sql.gz"
docker run --rm \
-v n8n_data:/source:ro \
-v "$PWD/backup":/backup \
alpine sh -c \
'tar -czf /backup/n8n-data-$(date +%F).tar.gz -C /source .'
tar -czf "backup/n8n-config-$(date +%F).tar.gz" \
.env compose.yaml Caddyfile
docker compose start n8n n8n-runnerKumbukumbu yenye .env ina siri: isimba na ihifadhi nje ya VPS. Thibitisha nakala ya kuhifadhi mara kwa mara kwa kuifanya urejeshaji wa majaribio.
Kabla ya kusasisha, tengeneza nakala na usome maelezo ya toleo:
cd /opt/n8n
docker compose pull
docker compose up -d
docker compose psKiendeshaji cha kazi na kontena kuu lazima zitumie tagi moja ya toleo.
Ni lini upanuzi unahitajika
Usianze na Redis na worker kadhaa kabla ya kuwa na mzigo halisi. Instans moja yenye PostgreSQL ni rahisi kuitunza na kwa kawaida inatosha kwa michakato midogo ya ndani.
Queue mode inahitajika wakati kazi ndefu zinapochelewesha webhook, mtiririko mingi inapoanza kwa wakati mmoja au uchakataji wa faili unapomaliza kumbukumbu yote mara kwa mara. Katika usanidi huu, instans kuu hupokea matukio, Redis hugawa kazi na worker huzitekeleza kwa wakati mmoja. Vipengele vyote lazima viunganishwe na hifadhidata ileile ya PostgreSQL na vitumie N8N_ENCRYPTION_KEY ileile.
VPS ipi uchague kwa n8n
Kwa n8n, PostgreSQL, Caddy na kiendeshaji cha kazi kwa pamoja, kuanza na 2 vCPU, 4 GB RAM na diski ya NVMe ni jambo la busara. Kwenye tropic.host, mpango wa Light unaendana na usanidi huu: 2 vCPU, 4 GB RAM na 25 GB NVMe. Hiyo inatosha kwa mtiririko wa kwanza wa uzalishaji bila uchakataji mzito wa faili.
Kwa nyaraka, seti kubwa za data na mtiririko mwingi wa AI unaotokea kwa wakati mmoja, 8 GB RAM ni chaguo bora. Mtandao thabiti pia ni muhimu: webhook, callback za OAuth na kazi zilizopangwa lazima zipatikane kila wakati.
Hitimisho
n8n hugeuza shughuli zinazorudiwa kuwa mtiririko wa kuona ulio wazi: nodi zilizo tayari huharakisha kuanzisha, HTTP Request huunganisha karibu API yoyote na nodi ya Code hukuruhusu kuongeza mantiki yako.
Toleo la self-hosted hukupa udhibiti wa seva na hifadhidata, lakini linahitaji HTTPS, funguo zenye mipaka, usafishaji wa historia na nakala za kuhifadhi zilizothibitishwa. Hifadhi N8N_ENCRYPTION_KEY pamoja na PostgreSQL: bila hiyo, vitambulisho vilivyorejeshwa haviwezi kufumbuliwa.
FAQ
Je, n8n inaweza kutumika bila malipo?
Ndiyo. Community Edition inaweza kuendeshwa bila malipo kwenye seva yako kwa michakato ya kibinafsi na ya ndani. Kuuza tena hosted n8n kama SaaS huru kumewekewa vikwazo na leseni ya fair-code.
Je, n8n inaweza kusakinishwa bila kikoa?
Kwa majaribio ya ndani, ndiyo. Kwa webhook za umma na OAuth, ni bora kutumia kikoa na HTTPS.
n8n inahitaji RAM kiasi gani?
Mtiririko rahisi wa kibinafsi mara nyingi hufanya kazi kwa 2 GB za RAM. Kwa n8n iliyo na PostgreSQL, Caddy na kiendeshaji cha kazi, 4 GB ni busara zaidi; faili na utekelezaji wa wakati mmoja unaweza kuhitaji 8 GB au zaidi.
Je, data yote hubaki ndani ya VPS?
Ni data tu ambayo mtiririko hautumi kwingine hubaki ndani. Hifadhidata na historia ya utekelezaji huhifadhiwa kwenye VPS, lakini nodi za Telegram, CRM au modeli ya AI ya nje hutuma data iliyochaguliwa kwenye huduma husika.
Ni nini kinapaswa kujumuishwa katika nakala ya n8n?
Dump ya PostgreSQL, n8n_data volume, compose.yaml, Caddyfile na .env iliyo na N8N_ENCRYPTION_KEY. Hifadhi nakala hiyo nje ya VPS ikiwa imesimbwa na ithibitishe kwa kuirejesha.
