Installera n8n
Automatisera det som annars görs för hand varje vecka: ett flöde ritas i webbläsaren och körs på schema.
Senast granskad:
Vad du får ut av det här
Varje företag har ett par uppgifter som återkommer. Någon ska föra över beställningar från formuläret till kalkylarket. Någon ska skicka bekräftelsemejlet. Någon ska lägga upp veckans siffror i företagets chatt. Det tar fem minuter per gång och ingen minns att göra det.
n8n är verktyget som gör det åt dig. Du ritar ett flöde på en yta i webbläsaren: här börjar det, hit går informationen, det här händer sedan. Flödet körs när du säger till, på ett schema eller när något inträffar. Du skriver ingen kod, men du tänker som en programmerare, och det är egentligen den delen du får med dig.
Det här behöver du innan du börjar
- Docker installerat på Windows eller Linux Mint. Guiden Installera Docker går igenom det, och den här guiden fortsätter där.
- 2 GB ledigt minne. n8n är snällare mot datorn än de flesta system i den här sektionen.
- Ett konto hos de tjänster du vill koppla ihop, till exempel Google, Discord eller ditt mejlkonto. n8n kommer åt dem i ditt namn, alltså behöver du själv ha rätt att logga in.
- En plats för lösenord och nycklar. Du kommer att skapa en krypteringsnyckel och den får inte tappas bort. Installera Vaultwarden löser det om du inte redan har en lösning.
- En konkret uppgift som irriterar dig. Börja aldrig med att installera n8n och sedan leta efter något att automatisera. Det blir ett flöde som ingen använder.
Tidsåtgång och svårighetsgrad
Installationen är den enklaste i hela den här serien: ett kommando, tio minuter. Räkna ändå med en timme innan ditt första flöde gör något på riktigt, och en eftermiddag innan du har byggt något du litar på. Svårighetsgraden sitter inte i installationen utan i att tänka ut vad flödet ska göra när något går fel.
Licensen, läs det här innan du bygger en affärsidé
n8n är inte öppen källkod i vanlig mening. Programmet ligger under något som kallas Sustainable Use License, och den säger ungefär så här: du får använda n8n hur mycket du vill internt i verksamheten, och du får ändra i det, men du får inte sälja n8n vidare som en tjänst till andra.
För ett företag som automatiserar sina egna rutiner är det oproblematiskt. Är affärsidén däremot att sälja automationer som en tjänst till andra företag ska du läsa licensen ordentligt först, och visa den för en jurist om du är osäker. Den detaljen blir dyr att missa.
Filerna du klistrar in
Skapa en mapp som heter n8n där du brukar spara filer, och en textfil i den som heter compose.yaml:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Europe/Stockholm
- TZ=Europe/Stockholm
- N8N_ENCRYPTION_KEY=BYT_UT_MIG
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Ersätt BYT_UT_MIG med en lång slumpsträng, minst tjugofyra tecken. På Mint får du en med openssl rand -base64 32, på Windows fungerar lösenordsgeneratorn i din lösenordshanterare lika bra.
Den nyckeln är viktigare än den ser ut. n8n krypterar alla sparade inloggningar med den, alltså tokens till Google, Discord och allt annat du kopplar in. Tappar du nyckeln kan n8n inte läsa sina egna uppgifter, och du får koppla om varje tjänst från början. Sätter du ingen nyckel alls skapar n8n en själv och lägger den i volymen, vilket fungerar tills volymen försvinner. Skriv in en egen och spara den där företaget sparar lösenord.
Tidszonen är den andra raden som spelar roll. Utan GENERIC_TIMEZONE faller n8n tillbaka på America/New_York, inte UTC, och skillnaden mot svensk tid är sex timmar: det som skulle skickas klockan åtta går i stället klockan fjorton.
Windows: starta n8n
Kontrollera att Docker Desktop är igång. Öppna PowerShell och kör:
cd $HOME\Documents\n8n
docker compose up -d
Kontrollera med docker compose ps att tjänsten står som running och öppna sedan http://localhost:5678. Första gången får du skapa ett ägarkonto med mejladress och lösenord. Använd företagets gemensamma mejladress, inte någons privata, annars hänger kontot på en enda person som slutar.
Vill du hellre slippa Docker går n8n att köra direkt med Node.js, men bara inom det intervall n8n stöder (för närvarande ungefär 20.19 till 24.x, kolla aktuellt intervall i projektets package.json om npx-kommandot klagar): npx n8n startar det på samma port. Det är bekvämt för ett snabbt test och sämre i längden, för då ligger data i hemkatalogen på just den datorn och flyttar aldrig med.
Linux Mint: starta n8n
Öppna Terminal och kör:
cd ~/n8n
docker compose up -d
docker compose logs -f
Det sista kommandot visar loggen medan n8n startar. När det står att editorn är tillgänglig trycker du Ctrl och C för att komma tillbaka till markören, utan att stänga av något. Öppna http://localhost:5678 och skapa ägarkontot.
Ska någon annan i företaget nå n8n från sin dator på samma nät, ta reda på adressen med hostname -I och surfa till http://ADRESSEN:5678. Då dyker ett irriterande fel upp: n8n kräver som standard en säker anslutning för sin inloggningskaka, och över vanlig http mot en IP-adress vägrar den. Lägg till raden - N8N_SECURE_COOKIE=false under environment och kör docker compose up -d igen.
Använd den inställningen på företagets eget nät och ingen annanstans. Ska n8n nås utifrån ska det ske över HTTPS med ett riktigt domännamn, och då hör det hemma på en server och inte på en dator på kontoret.
Ditt första flöde
Bygg något litet som du ser resultatet av direkt. Ett bra första flöde: varje måndag morgon skickas en sammanställning av veckans beställningar till företagets chatt.
- Klicka på Create Workflow uppe till höger.
- Lägg till en nod, alltså ett steg, genom att klicka på plustecknet. Välj Schedule Trigger och ställ in måndag klockan 08:00. Triggern är det som startar flödet.
- Lägg till nästa nod och välj källan där beställningarna ligger, till exempel Google Sheets. n8n frågar efter inloggning och öppnar Googles egen inloggningsruta. Godkänn, och uppgifterna sparas krypterade med nyckeln du satte tidigare.
- Lägg till en Code-nod eller en Edit Fields-nod som plockar ut det du vill ha med: antal rader, summa, kanske de tre senaste kunderna.
- Lägg till sista noden, till exempel Discord, Gmail eller Telegram, och skriv meddelandet.
- Klicka på Execute workflow och se att det gör vad du tänkt. Klicka sedan på Publish uppe till höger (hette tidigare reglaget Active). Ett flöde som inte publicerats körs aldrig på schemat, och det är det vanligaste misstaget i n8n.
Under fliken Executions ser du varje körning, vad som kom in och vad som gick ut. Gick något fel står det där, och du kan köra om samma data när du rättat felet.
Webhooks, och varför de inte fungerar hemifrån
Den andra typen av trigger heter Webhook. Den ger dig en adress som någon annan tjänst anropar när något händer, till exempel när kontaktformuläret på hemsidan får ett svar.
Problemet är att adressen pekar på localhost, alltså på din egen dator, och dit kommer ingen utifrån. n8n hade tidigare en inbyggd tunnel för att testa detta, men den är borttagen i n8n 2.x av säkerhetsskäl. Behöver du testa webhooks mot en extern tjänst i dag, använd i stället en fristående tunnel som Cloudflare Tunnel eller ngrok.
Ska webhooks fungera på riktigt behöver n8n ligga på en server med ett eget domännamn. Det är samma sorts server som i Installera Odoo, och en och samma server räcker till båda.
Säkerhetskopiera
Allt n8n äger ligger i volymen: flödena, inloggningarna och historiken. Exportera flödena till filer regelbundet, för en fil går att läsa och lägga tillbaka även om volymen är borta:
docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/workflows.json
docker compose cp n8n:/home/node/.n8n/workflows.json ./workflows.json
Spara filen tillsammans med krypteringsnyckeln, men inte i samma dokument. Flödena utan nyckeln går att läsa och bygga om. Nyckeln utan flödena är värdelös för en utomstående. Båda i samma fil är precis det du vill undvika.
Så här vet du att det funkade
docker compose psvisar n8n somrunning.- Du loggar in på
http://localhost:5678med ägarkontot. - Ett flöde går att köra manuellt och ger rätt resultat.
- Flödet är aktivt och har en rad under Executions efter nästa schemalagda körning.
- Flödena finns exporterade som en fil utanför datorn.
- Krypteringsnyckeln är sparad där företaget sparar lösenord.
Om det går fel
Flödet körs aldrig fast schemat har passerat. Flödet är inte publicerat, eller så har datorn varit avstängd vid tidpunkten. n8n hämtar inte igen missade körningar.
Tiden stämmer inte. Kontrollera GENERIC_TIMEZONE i compose-filen. Ett fel på sex timmar betyder att raden saknas och att n8n kör på sitt eget standardvärde America/New_York i stället för Europe/Stockholm.
Inloggning mot en tjänst slutar fungera. Tokens går ut. Öppna Credentials, koppla om den tjänsten och kör flödet igen.
Du kommer inte in efter byte av dator eller volym. Krypteringsnyckeln matchar inte den som uppgifterna sparades med. Har du nyckeln kvar, lägg in den i compose-filen. Har du den inte, radera inloggningarna och koppla om tjänsterna.
Inloggningssidan laddar men accepterar inte lösenordet över nätverket. Det är kakinställningen. Se avsnittet om Linux Mint ovan.
Vad du gör härnäst
Bygg ett flöde till, men bara ett. Två flöden som fungerar är bättre än sju halvfärdiga, och om ett halvår ska någon annan kunna förstå vad de gör. Skriv en rad i beskrivningsfältet på varje flöde om vad det gör och varför.
Ligger beställningarna i ett affärssystem i stället för i ett kalkylark blir flödena genast vassare. Installera Odoo visar hur du sätter upp det, och Installera Nextcloud ger flödena en filyta att lägga rapporterna på.