diff --git a/n8n/.env.example b/n8n/.env.example new file mode 100644 index 0000000..756b7de --- /dev/null +++ b/n8n/.env.example @@ -0,0 +1,8 @@ +POSTGRES_USER=n8n +POSTGRES_PASSWORD=change-me +POSTGRES_DB=n8n +N8N_BASIC_AUTH_USER=admin +N8N_BASIC_AUTH_PASSWORD=change-me +N8N_ENCRYPTION_KEY=change-me-to-a-random-32-char-string +N8N_HOST=192.168.100.6 +TZ=Asia/Tehran diff --git a/n8n/docker-compose.yaml b/n8n/docker-compose.yaml new file mode 100644 index 0000000..0bb1036 --- /dev/null +++ b/n8n/docker-compose.yaml @@ -0,0 +1,58 @@ +services: + postgres: + image: postgres:17 + container_name: n8n-postgres + restart: unless-stopped + env_file: + - .env + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} + volumes: + - ./postgres:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] + interval: 10s + timeout: 5s + retries: 5 + + n8n: + image: n8nio/n8n:latest + container_name: n8n + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + + env_file: + - .env + + environment: + DB_TYPE: postgresdb + DB_POSTGRESDB_HOST: postgres + DB_POSTGRESDB_PORT: 5432 + DB_POSTGRESDB_DATABASE: ${POSTGRES_DB} + DB_POSTGRESDB_USER: ${POSTGRES_USER} + DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD} + + N8N_BASIC_AUTH_ACTIVE: true + N8N_BASIC_AUTH_USER: ${N8N_BASIC_AUTH_USER} + N8N_BASIC_AUTH_PASSWORD: ${N8N_BASIC_AUTH_PASSWORD} + + N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY} + + N8N_SECURE_COOKIE: false + N8N_HOST: ${N8N_HOST} + N8N_PORT: 5678 + N8N_PROTOCOL: http + + TZ: ${TZ} + + ports: + - "5678:5678" + + volumes: + - ./n8n-data:/home/node/.n8n + - /mnt/storage:/mnt/storage + - /mnt/windows-video:/mnt/windows-video