Com Auto-allotjar n8n al Teu Propi Servidor
Guia completa per instal·lar i configurar n8n al teu servidor amb Docker, seguretat professional i tot el que necessites saber
Contingut de l'article
1. Introducció
n8n és una eina d'automatització open-source increïblement potent que et permet crear workflows complexos sense necessitat de programar. Una de les seves principals avantatges és que pots auto-allotjar-la al teu propi servidor, donant-te control total sobre les teves dades i processos.
💡 Avantatges de l'auto-hosting:
- Control total sobre les dades
- Customització completa
- Costos més baixos a llarg termini
- Compliment GDPR garantit
- Integracions il·limitades
2. Requisits del Servidor
Abans de començar, assegura't que el teu servidor compleix amb els requisits mínims:
Especificacions mínimes:
- CPU: 2 cores
- RAM: 4GB (8GB recomanat)
- Disc: 20GB SSD
- OS: Ubuntu 20.04+ / CentOS 8+ / Debian 10+
- Docker: Versió 20.10+
- Docker Compose: Versió 2.0+
3. Configuració amb Docker
Docker és la manera més eficient d'instal·lar n8n. Crearem un setup complet amb PostgreSQL com a base de dades i Redis per a la gestió de cues.
3.1 Instal·lació de Docker
# Actualitzar el sistema
sudo apt update && sudo apt upgrade -y
# Instal·lar Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Afegir usuari al grup docker
sudo usermod -aG docker $USER
# Instal·lar Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3.2 Crear docker-compose.yml
Crea un fitxer docker-compose.yml
amb la següent configuració:
version: '3.8'
services:
postgres:
image: postgres:15
restart: unless-stopped
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
postgres_data:
redis_data:
n8n_data:
3.3 Configurar variables d'entorn
Crea un fitxer .env
amb les teves configuracions:
# Domini i subdomini
DOMAIN_NAME=elmeudomini.com
SUBDOMAIN=n8n
# Credencials de la base de dades
POSTGRES_PASSWORD=password_super_segura_123
# Autenticació n8n
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=password_encara_mes_segura_456
# Zona horària
GENERIC_TIMEZONE=Europe/Madrid
4. Configuració de Seguretat
La seguretat és crítica quan auto-allotges n8n. Aquí tens les configuracions essencials per protegir la teva instal·lació.
4.1 Firewall
# Instal·lar UFW
sudo apt install ufw
# Configurar regles bàsiques
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Permetre SSH (canvia el port si has personalitzat)
sudo ufw allow 22
# Permetre HTTP i HTTPS
sudo ufw allow 80
sudo ufw allow 443
# Activar firewall
sudo ufw enable
4.2 Autenticació robusta
A més de l'autenticació bàsica, pots configurar OAuth amb Google, GitHub o altres proveïdors per millorar la seguretat.
⚠️ Important: Canvia sempre les contrasenyes per defecte i utilitza contrasenyes segures amb almenys 16 caràcters.
5. SSL i Domini Personalitzat
Per utilitzar n8n amb un domini personalitzat i SSL, necessitaràs configurar un reverse proxy amb Nginx i Let's Encrypt.
5.1 Instal·lar Nginx i Certbot
# Instal·lar Nginx
sudo apt install nginx
# Instal·lar Certbot
sudo apt install certbot python3-certbot-nginx
# Crear configuració Nginx
sudo nano /etc/nginx/sites-available/n8n
5.2 Configuració Nginx
server {
listen 80;
server_name n8n.elmeudomini.com;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header 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;
proxy_cache_bypass $http_upgrade;
}
}
5.3 Obtenir certificat SSL
# Activar la configuració
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
# Obtenir certificat SSL
sudo certbot --nginx -d n8n.elmeudomini.com
6. Backups Automàtics
És essencial tenir backups regulars de les teves dades d'n8n. Aquí tens un script per automatitzar aquest procés.
#!/bin/bash
# Script de backup automàtic per n8n
BACKUP_DIR="/home/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
POSTGRES_CONTAINER="n8n_postgres_1"
# Crear directori de backup
mkdir -p $BACKUP_DIR
# Backup de la base de dades
docker exec $POSTGRES_CONTAINER pg_dump -U n8n n8n > $BACKUP_DIR/postgres_$DATE.sql
# Backup dels fitxers n8n
docker cp n8n_n8n_1:/home/node/.n8n $BACKUP_DIR/n8n_files_$DATE
# Comprimir backups
tar -czf $BACKUP_DIR/n8n_complete_backup_$DATE.tar.gz $BACKUP_DIR/postgres_$DATE.sql $BACKUP_DIR/n8n_files_$DATE
# Eliminar fitxers temporals
rm -rf $BACKUP_DIR/postgres_$DATE.sql $BACKUP_DIR/n8n_files_$DATE
# Eliminar backups antics (més de 30 dies)
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "Backup completat: n8n_complete_backup_$DATE.tar.gz"
Afegir aquest script al crontab per executar-se diàriament:
# Editar crontab
crontab -e
# Afegir línia per backup diari a les 2:00 AM
0 2 * * * /home/scripts/backup_n8n.sh
7. Monitorització
Per mantenir n8n funcionant òptimament, és important monitoritzar el rendiment i estar alerta davant possibles problemes.
7.1 Logs
# Veure logs d'n8n
docker-compose logs -f n8n
# Veure logs de PostgreSQL
docker-compose logs -f postgres
# Veure logs de Redis
docker-compose logs -f redis
7.2 Monitorització de recursos
# Instal·lar htop per monitoritzar recursos
sudo apt install htop
# Verificar ús de disc
df -h
# Verificar ús de memòria
free -h
# Monitoritzar contenidors Docker
docker stats
Consell Pro
Configura alertes per email quan l'ús de disc superi el 80% o quan n8n deixi de respondre. Això t'ajudarà a prevenir problemes abans que afectin els teus workflows.
8. Conclusió
Auto-allotjar n8n al teu propi servidor et dona control total sobre les teves automatitzacions i dades. Amb aquesta configuració tens:
- ✅ Instal·lació professional amb Docker
- ✅ Base de dades PostgreSQL robusta
- ✅ SSL i domini personalitzat
- ✅ Seguretat configurada correctament
- ✅ Backups automàtics
- ✅ Monitorització bàsica
Vols estalviar-te tota aquesta feina?
Muntar i mantenir un servidor n8n professional requereix temps, coneixements tècnics i atenció constant. Si prefereixes concentrar-te en crear automatitzacions increïbles en lloc de gestionar infraestructura, tenim la solució perfecta per tu.
Amb el nostre servei de hosting n8n obtens exactament la mateixa configuració professional que acabes de veure, però completament gestionada:
- 🚀 Setup en 5 minuts (només apunta el domini)
- 🔒 Seguretat i SSL automàtics
- 💾 Backups diaris inclosos
- 📊 Monitorització 24/7
- 🆙 Actualitzacions automàtiques
- 💬 Suport tècnic expert en català