n8n és una eina d'automatització de fluxos de treball de codi obert que permet connectar serveis, APIs i aplicacions sense gairebé escriure codi. Si ja tens un servidor Proxmox a casa, la manera més ordenada d'instal·lar-lo és crear una VM dedicada amb Debian, córrer n8n amb Docker Compose i publicar-lo amb HTTPS usant Nginx Proxy Manager. Veiem-ho pas a pas.
Arquitectura del sistema
La solució que muntem té tres capes. La VM Debian a Proxmox és el sistema base aïllat de la resta de serveis. Docker Compose orquestra dos contenidors: n8n (el motor d'automatització) i nginx-proxy-manager (el proxy invers que gestiona els certificats SSL). El domini o subdomini propi (ex: n8n.tudomini.cat) amb un certificat Let's Encrypt el fa accessible des de qualsevol lloc amb HTTPS.
Pas 1 — Crear la VM a Proxmox
Des de la interfície web de Proxmox, crea una VM nova amb aquests paràmetres mínims recomanats:
- ISO: Debian 12 (Bookworm) netinstall o live — descarrega-la des de debian.org.
- CPU: 2 cores.
- RAM: 2 GB (4 GB si vols còrrer molts workflows en paral·lel).
- Disc: 20 GB com a mínim (les dades de n8n creixen amb el temps).
- Xarxa: model
VirtIO, connectat al bridgevmbr0.
Arrenca la VM, instal·la Debian en mode mínim (sense entorn gràfic) i configura un usuari amb permisos sudo. Un cop dins del sistema via SSH, continua amb els passos següents.
Pas 2 — Actualitzar el sistema i instal·lar Docker
Comença actualitzant els paquets del sistema:
sudo apt update && sudo apt upgrade -y
Instal·la les dependències necessàries per afegir el repositori de Docker:
sudo apt install -y ca-certificates curl gnupg lsb-release
Afegeix la clau GPG oficial de Docker i el repositori:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ara instal·la Docker Engine i Docker Compose:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Afegeix el teu usuari al grup docker per no haver d'usar sudo cada vegada (cal tancar sessió i tornar a entrar perquè faci efecte):
sudo usermod -aG docker $USER
Verifica que Docker funciona correctament:
docker --version
docker compose version
Pas 3 — Crear l'estructura de carpetes
Crea una carpeta arrel per al projecte i les subcarpetes de dades persistents:
mkdir -p ~/n8n-stack/{n8n_data,npm_data/data,npm_data/letsencrypt}
cd ~/n8n-stack
Pas 4 — Crear el fitxer docker-compose.yml
Crea el fitxer docker-compose.yml dins de ~/n8n-stack/. Aquest fitxer defineix dos serveis: n8n i nginx-proxy-manager, cadascun en la seva xarxa compartida:
nano docker-compose.yml
Enganxa aquest contingut (substitueix canvia@email.cat per la teva adreça i ajusta la zona horària si cal):
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
environment:
- N8N_HOST=n8n.tudomini.cat
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.tudomini.cat/
- GENERIC_TIMEZONE=Europe/Madrid
- TZ=Europe/Madrid
volumes:
- ./n8n_data:/home/node/.n8n
networks:
- proxy_net
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./npm_data/data:/data
- ./npm_data/letsencrypt:/etc/letsencrypt
networks:
- proxy_net
networks:
proxy_net:
driver: bridge
5678 de n8n no s'exposa directament a l'exterior — tot el tràfic passa per Nginx Proxy Manager. Això és exactament el que volem per seguretat.
Pas 5 — Arrencar els contenidors
Des de la carpeta ~/n8n-stack/, llança els serveis:
docker compose up -d
Comprova que els dos contenidors estan en funcionament:
docker compose ps
Hauries de veure els dos serveis amb l'estat running. Si hi ha algun error, revisa els logs amb:
docker compose logs -f
Pas 6 — Configurar el router (port forwarding)
Per poder obtenir el certificat Let's Encrypt i accedir a n8n des d'Internet, has de redirigir els ports 80 i 443 del teu router cap a la IP local de la VM de Proxmox. Fes-ho des del panell d'administració del teu router (cada marca té la seva interfície, però el concepte és el mateix):
- Port extern 80 → IP_VM:80 (necessari per al challenge HTTP-01 de Let's Encrypt).
- Port extern 443 → IP_VM:443 (tràfic HTTPS final).
Assegura't també que el teu domini (ex: n8n.tudomini.cat) apunta via un registre A a la IP pública del teu router.
Pas 7 — Configurar Nginx Proxy Manager
Obre el navegador i accedeix a la interfície d'administració de Nginx Proxy Manager per la IP local de la VM, port 81:
http://IP_DE_LA_VM:81
Les credencials per defecte del primer accés són:
- Email:
admin@example.com - Contrasenya:
changeme
Canvia-les immediatament quan et demani. Un cop dins, crea un Proxy Host nou anant a Hosts → Proxy Hosts → Add Proxy Host i omple els camps:
- Domain Names:
n8n.tudomini.cat - Scheme:
http - Forward Hostname / IP:
n8n(el nom del servei Docker) - Forward Port:
5678 - Websockets Support: activat ✓ (n8n ho necessita)
Ves a la pestanya SSL del mateix formulari i selecciona:
- SSL Certificate: "Request a new SSL Certificate"
- Force SSL: activat ✓
- HTTP/2 Support: activat ✓
- Email Address for Let's Encrypt: la teva adreça de correu
- Accepta els termes del servei i desa.
Nginx Proxy Manager sol·licitarà automàticament el certificat a Let's Encrypt. Si tot és correcte (DNS i ports oberts), en uns segons el certificat estarà actiu.
Pas 8 — Accedir a n8n per primera vegada
Obre el navegador i vés a https://n8n.tudomini.cat. Hauries de veure el formulari de creació del compte d'administrador de n8n. Omple'l i ja tens n8n funcionant amb HTTPS.
Pas 9 — Fer que arrenci sol amb el sistema
Docker ja arrenca els contenidors automàticament gràcies a restart: unless-stopped. Però cal assegurar-se que el servei Docker s'activa en arrencar la VM:
sudo systemctl enable docker
sudo systemctl enable containerd
Per verificar que tot arrenca bé, reinicia la VM i comprova l'estat dels contenidors:
sudo reboot
# Passats uns minuts, reconnecta per SSH:
docker compose -f ~/n8n-stack/docker-compose.yml ps
Manteniment i actualitzacions
Per actualitzar n8n o Nginx Proxy Manager a la versió més recent, atura els contenidors, baixa les noves imatges i torna'ls a arrencar:
cd ~/n8n-stack
docker compose pull
docker compose up -d
Les dades de n8n (workflows, credencials, historial) queden guardades a ./n8n_data i no es perden en les actualitzacions.
Resum dels ports
- :80 — HTTP (redirigit a HTTPS automàticament per NPM)
- :443 — HTTPS (tràfic xifrat cap a n8n)
- :81 — Panell d'administració de Nginx Proxy Manager (només xarxa local)
- :5678 — n8n intern (no exposat a Internet, accessible via Docker intern)