Add n8n instance at automate.cosmolocal.world

Adds n8n workflow automation with PostgreSQL backend,
Traefik routing for automate.cosmolocal.world, and
isolated internal network for the database.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-02-07 13:56:25 +00:00
parent 93fcbd45ef
commit acd874924f
1 changed files with 56 additions and 0 deletions

View File

@ -15,6 +15,62 @@ services:
networks:
- traefik-public
n8n-cosmolocal:
image: n8nio/n8n:latest
container_name: n8n-cosmolocal
restart: unless-stopped
environment:
- N8N_HOST=automate.cosmolocal.world
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://automate.cosmolocal.world/
- GENERIC_TIMEZONE=Europe/Brussels
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-cosmolocal-db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${N8N_DB_PASSWORD:-***REDACTED_DB_PASS***}
volumes:
- n8n-cosmolocal-data:/home/node/.n8n
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n-cosmolocal.rule=Host(`automate.cosmolocal.world`)"
- "traefik.http.routers.n8n-cosmolocal.entrypoints=web"
- "traefik.http.services.n8n-cosmolocal.loadbalancer.server.port=5678"
- "traefik.http.routers.n8n-cosmolocal-secure.rule=Host(`automate.cosmolocal.world`)"
- "traefik.http.routers.n8n-cosmolocal-secure.entrypoints=websecure"
- "traefik.http.routers.n8n-cosmolocal-secure.tls=true"
- "traefik.http.routers.n8n-cosmolocal-secure.service=n8n-cosmolocal"
depends_on:
n8n-cosmolocal-db:
condition: service_healthy
networks:
- traefik-public
- cosmolocal-internal
n8n-cosmolocal-db:
image: postgres:16-alpine
container_name: n8n-cosmolocal-db
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${N8N_DB_PASSWORD:-***REDACTED_DB_PASS***}
volumes:
- n8n-cosmolocal-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
networks:
- cosmolocal-internal
volumes:
n8n-cosmolocal-data:
n8n-cosmolocal-db:
networks:
traefik-public:
external: true
cosmolocal-internal: