53 lines
2.0 KiB
YAML
53 lines
2.0 KiB
YAML
services:
|
|
n8n:
|
|
image: docker.n8n.io/n8nio/n8n:latest
|
|
container_name: n8n
|
|
restart: unless-stopped
|
|
environment:
|
|
- N8N_HOST=us-test-authy.taila7f44e.ts.net
|
|
- N8N_PORT=5678
|
|
- N8N_PROTOCOL=https
|
|
- N8N_PATH=/n8n/
|
|
- GENERIC_TIMEZONE=America/New_York
|
|
- N8N_SECURE_COOKIE=true
|
|
- N8N_BASIC_AUTH_ACTIVE=true
|
|
- N8N_BASIC_AUTH_USER=herby
|
|
- N8N_BASIC_AUTH_PASSWORD=pass
|
|
- WEBHOOK_URL=https://us-test-authy.taila7f44e.ts.net/n8n/
|
|
- PBS_GOOGLE_CHAT_WEBHOOK_URL=PLACEHOLDER_REPLACE_ME
|
|
- PBS_HEALER_WEBHOOK_URL=PLACEHOLDER_REPLACE_ME
|
|
- PBS_MONITOR_BASE_URL=http://172.17.0.1:9100
|
|
- PBS_PORTAINER_BASE_URL=PLACEHOLDER_REPLACE_ME
|
|
- PBS_PORTAINER_ENDPOINT_ID=PLACEHOLDER_REPLACE_ME
|
|
- PBS_PORTAINER_API_KEY=PLACEHOLDER_REPLACE_ME
|
|
volumes:
|
|
- n8n_data:/home/node/.n8n
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# Main router — UI and webhooks (behind Authelia)
|
|
- "traefik.http.routers.n8n.rule=Host(`us-test-authy.taila7f44e.ts.net`) && PathPrefix(`/n8n`)"
|
|
- "traefik.http.routers.n8n.entrypoints=https"
|
|
- "traefik.http.routers.n8n.tls.certresolver=tailscale"
|
|
- "traefik.http.routers.n8n.priority=1"
|
|
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
|
|
- "traefik.http.middlewares.n8n-strip.stripprefix.prefixes=/n8n"
|
|
- "traefik.http.routers.n8n.middlewares=n8n-strip"
|
|
# API router — bypasses Authelia (n8n API key provides auth)
|
|
- "traefik.http.routers.n8n-api.rule=Host(`us-test-authy.taila7f44e.ts.net`) && PathPrefix(`/n8n/api`)"
|
|
- "traefik.http.routers.n8n-api.entrypoints=https"
|
|
- "traefik.http.routers.n8n-api.tls.certresolver=tailscale"
|
|
- "traefik.http.routers.n8n-api.priority=2"
|
|
- "traefik.http.routers.n8n-api.service=n8n"
|
|
- "traefik.http.routers.n8n-api.middlewares=n8n-strip"
|
|
|
|
volumes:
|
|
n8n_data:
|
|
name: n8n_server_n8n_data
|
|
external: true
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|