This commit is contained in:
whitney 2025-09-02 15:36:39 -07:00
parent c29775050c
commit dd70ad3dbd
4 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# n8n environment variables
N8N_HOST=n8n.example.com
N8N_PORT=5678
WEBHOOK_TUNNEL_URL=https://n8n.example.com # if you want public webhooks
# n8n encryption key
N8N_ENCRYPTION_KEY=1234567890abcdef1234567890abcdef
# n8n user authentication
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=supersecretpassword
# Database
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=db
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=n8npassword
# Other settings
GENERIC_TIMEZONE=America/Los_Angeles

1
software/workflow/n8n/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.env

View File

@ -0,0 +1,6 @@
# N8N
Workflow automation, selfhosted. See `https://github.com/n8n-io/n8n`.
## Setup
1. After folder structure is created, first time setup will fail because we don't have access to the file system.
- give ownership to user 1000, or set a specific user for n8n to run as.

View File

@ -0,0 +1,54 @@
networks:
traefik:
external: true
n8n:
driver: bridge
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
networks:
- n8n
- traefik
environment:
- N8N_HOST=${N8N_HOST}
- N8N_PORT=${N8N_PORT}
- WEBHOOK_TUNNEL_URL=${WEBHOOK_TUNNEL_URL}
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- DB_TYPE=${DB_TYPE}
- DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
- DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- /pwspool/software/n8n/.n8n:/home/node/.n8n
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.whitney.rip`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls=true"
- "traefik.http.routers.n8n.tls.certresolver=lets-encrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
db:
image: postgres:15
container_name: n8n-db
restart: unless-stopped
networks:
- n8n
environment:
POSTGRES_USER: ${DB_POSTGRESDB_USER}
POSTGRES_PASSWORD: ${DB_POSTGRESDB_PASSWORD}
POSTGRES_DB: ${DB_POSTGRESDB_DATABASE}
volumes:
- /pwspool/software/n8n/data:/var/lib/postgresql/data