fix(n8n): actualizar stack de automatización de workflows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-7
@@ -28,12 +28,12 @@ Este stack despliega n8n con:
|
||||
- Repository URL: `<tu-repositorio>`
|
||||
- Repository reference: `main`
|
||||
- Compose path: `n8n/docker-compose.yml`
|
||||
5. Carga el archivo de variables de entorno: `n8n/stack.env`
|
||||
5. Copia `n8n/stack.env` a `n8n/.env` y carga `n8n/.env` como archivo de variables de entorno
|
||||
6. Haz clic en **Deploy the stack**
|
||||
|
||||
### Variables de Entorno Importantes
|
||||
|
||||
Edita el archivo `stack.env`:
|
||||
Edita el archivo `.env`:
|
||||
|
||||
```env
|
||||
# Base de datos PostgreSQL
|
||||
@@ -235,7 +235,7 @@ Usa el nodo **Schedule Trigger**:
|
||||
docker logs n8n-pg
|
||||
```
|
||||
|
||||
3. Verifica las credenciales en `stack.env`
|
||||
3. Verifica las credenciales en `.env`
|
||||
|
||||
### Workflows se ejecutan lentamente
|
||||
|
||||
@@ -246,7 +246,7 @@ Usa el nodo **Schedule Trigger**:
|
||||
|
||||
### Error "Execution timed out"
|
||||
|
||||
Aumenta el timeout en `stack.env`:
|
||||
Aumenta el timeout en `.env`:
|
||||
|
||||
```env
|
||||
EXECUTIONS_TIMEOUT=600
|
||||
@@ -312,8 +312,8 @@ cat n8n_backup_YYYYMMDD.sql | docker exec -i n8n-pg psql -U n8n n8n
|
||||
Guarda `N8N_ENCRYPTION_KEY` en un lugar seguro:
|
||||
|
||||
```bash
|
||||
# Extraer del stack.env
|
||||
grep N8N_ENCRYPTION_KEY stack.env > encryption_key_backup.txt
|
||||
# Extraer del .env
|
||||
grep N8N_ENCRYPTION_KEY .env > encryption_key_backup.txt
|
||||
|
||||
# Guardar en un gestor de contraseñas o vault
|
||||
```
|
||||
@@ -330,7 +330,7 @@ También puedes exportar workflows manualmente:
|
||||
## 🔄 Actualizaciones
|
||||
|
||||
1. Haz **backup** de la base de datos y la clave de cifrado
|
||||
2. Actualiza en `stack.env`:
|
||||
2. Actualiza en `.env`:
|
||||
```env
|
||||
N8N_IMAGE=n8nio/n8n:latest
|
||||
```
|
||||
|
||||
+22
-4
@@ -12,10 +12,10 @@ services:
|
||||
DB_POSTGRESDB_USER: ${N8N_DB_USER}
|
||||
DB_POSTGRESDB_PASSWORD: ${N8N_DB_PASSWORD}
|
||||
|
||||
N8N_HOST: ${SERVICE_FQDN_N8N}
|
||||
N8N_HOST: ${N8N_HOST}
|
||||
N8N_PORT: ${N8N_PORT}
|
||||
N8N_PROTOCOL: ${N8N_PROTOCOL}
|
||||
WEBHOOK_URL: https://${SERVICE_FQDN_N8N}/
|
||||
WEBHOOK_URL: ${N8N_WEBHOOK_URL}
|
||||
|
||||
GENERIC_TIMEZONE: ${N8N_TIMEZONE}
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
@@ -38,8 +38,24 @@ services:
|
||||
networks:
|
||||
- n8n
|
||||
- proxy
|
||||
- mail_internal
|
||||
labels:
|
||||
traefik.http.services.n8n.loadbalancer.server.port: "5678"
|
||||
traefik.enable: "true"
|
||||
traefik.docker.network: "proxy"
|
||||
traefik.http.routers.n8n-ui.rule: "Host(`${N8N_DOMAIN}`)"
|
||||
traefik.http.routers.n8n-ui.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
||||
traefik.http.routers.n8n-ui.tls: "true"
|
||||
traefik.http.routers.n8n-ui.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
||||
traefik.http.routers.n8n-ui.service: "n8n"
|
||||
traefik.http.routers.n8n-ui.priority: "10"
|
||||
# traefik.http.routers.n8n-ui.middlewares: "crowdsec-bouncer@file,${TRAEFIK_AUTH_MIDDLEWARE}"
|
||||
traefik.http.routers.n8n-webhook.rule: "Host(`${N8N_DOMAIN}`) && (PathPrefix(`/webhook`) || PathPrefix(`/webhook-test`))"
|
||||
traefik.http.routers.n8n-webhook.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
||||
traefik.http.routers.n8n-webhook.tls: "true"
|
||||
traefik.http.routers.n8n-webhook.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
||||
traefik.http.routers.n8n-webhook.service: "n8n"
|
||||
traefik.http.routers.n8n-webhook.priority: "20"
|
||||
traefik.http.services.n8n.loadbalancer.server.port: "${N8N_PORT}"
|
||||
|
||||
n8n-db:
|
||||
image: postgres:16
|
||||
@@ -51,7 +67,7 @@ services:
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
volumes:
|
||||
- /opt/n8n/postgres:/var/lib/postgresql/data:Z
|
||||
- ${N8N_DB_DATA_PATH}:/var/lib/postgresql/data:Z
|
||||
networks:
|
||||
- n8n
|
||||
|
||||
@@ -60,3 +76,5 @@ networks:
|
||||
driver: bridge
|
||||
proxy:
|
||||
external: true
|
||||
mail_internal:
|
||||
external: true
|
||||
|
||||
+14
-6
@@ -4,36 +4,44 @@ N8N_DB_HOST=n8n-db
|
||||
N8N_DB_PORT=5432
|
||||
N8N_DB_NAME=n8n
|
||||
N8N_DB_USER=n8n
|
||||
N8N_DB_PASSWORD=
|
||||
N8N_DB_PASSWORD=change-me
|
||||
|
||||
##### n8n - Servidor / dominio #####
|
||||
N8N_HOST=
|
||||
N8N_PORT=5678
|
||||
N8N_PROTOCOL=https
|
||||
N8N_WEBHOOK_URL=
|
||||
N8N_WEBHOOK_URL=https://app.example.com
|
||||
|
||||
N8N_TIMEZONE=Europe/Madrid
|
||||
|
||||
# Genera una nueva con: openssl rand -hex 32
|
||||
N8N_ENCRYPTION_KEY=
|
||||
N8N_ENCRYPTION_KEY=change-me-generate-with-openssl-rand-hex-32
|
||||
|
||||
N8N_NODE_ENV=production
|
||||
N8N_DIAGNOSTICS_ENABLED=false
|
||||
|
||||
##### n8n - Correo (SMTP) #####
|
||||
N8N_EMAIL_MODE=smtp
|
||||
N8N_SMTP_HOST=
|
||||
N8N_SMTP_HOST=mail-relay
|
||||
N8N_SMTP_PORT=587
|
||||
N8N_SMTP_USER=
|
||||
N8N_SMTP_PASS=
|
||||
N8N_SMTP_SENDER=n8n@thehomelesssherlock.com
|
||||
N8N_SMTP_SENDER=admin@example.com
|
||||
N8N_SMTP_SSL=false
|
||||
N8N_SMTP_STARTTLS=false
|
||||
|
||||
##### PostgreSQL interno #####
|
||||
POSTGRES_USER=n8n
|
||||
POSTGRES_PASSWORD=
|
||||
POSTGRES_PASSWORD=change-me
|
||||
POSTGRES_DB=n8n
|
||||
|
||||
# Ruta en el host para los datos de Postgres
|
||||
N8N_DB_DATA_PATH=/opt/n8n/postgres
|
||||
|
||||
##### Traefik #####
|
||||
N8N_DOMAIN=app.example.com
|
||||
TRAEFIK_ENTRYPOINT_SECURE=websecure
|
||||
TRAEFIK_CERTRESOLVER=letsencrypt
|
||||
TRAEFIK_AUTH_MIDDLEWARE=ths-authentik@docker
|
||||
SERVICE_URL_N8N=https://app.example.com
|
||||
SERVICE_FQDN_N8N=app.example.com
|
||||
|
||||
Reference in New Issue
Block a user