From acd874924fedd6fadb911070408faf7b2ce9216d Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Sat, 7 Feb 2026 13:56:25 +0000 Subject: [PATCH] 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 --- docker-compose.yml | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index c88ce23..dc82312 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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: