#### NETWORKS networks: traefik_front_network: external: true back_network_n8n: driver: bridge attachable: true #### SERVICES services: ### n8n n8n: container_name: n8n-app hostname: n8n-app image: docker.n8n.io/n8nio/n8n:latest environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRE_DB_NAME} - DB_POSTGRESDB_USER=${POSTGRE_DB_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRE_DB_PASSWORD} - N8N_HOST=tips-of-mine.com - N8N_PORT=5678 - N8N_PROTOCOL=http - NODE_ENV=production - WEBHOOK_URL=https://n8n.tips-of-mine.com/ - "TZ=Europe/Paris" restart: always networks: - back_network_n8n - traefik_front_network volumes: - n8n:/home/node/.n8n depends_on: postgres: condition: service_healthy labels: - "com.centurylinklabs.watchtower.enable=true" - "traefik.enable=true" - "traefik.docker.network=traefik_front_network" # HTTP - "traefik.http.routers.n8n-http.rule=Host(`n8n.tips-of-mine.com`)" - "traefik.http.routers.n8n-http.entrypoints=http" - "traefik.http.routers.n8n-http.priority=49" # HTTPS - "traefik.http.routers.n8n-https.rule=Host(`n8n.tips-of-mine.com`)" - "traefik.http.routers.n8n-https.entrypoints=https" - "traefik.http.routers.n8n-https.tls=true" - "traefik.http.routers.n8n-https.priority=50" - "traefik.http.routers.n8n.service=n8n-https-service" # Middleware # Service - "traefik.http.services.n8n-https-service.loadbalancer.server.port=5678" # - "traefik.http.services.n8n-https-service.loadbalancer.server.scheme=https" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.hostname=n8n.tips-of-mine.com" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.method=foobar" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.timeout=10" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.interval=30" ### postgres postgres: container_name: n8n-postgres hostname: n8n-postgres image: ${POSTGRES_IMAGE_TAG} environment: PGDATA: ${POSTGRE_DB_DATA} POSTGRES_DB: ${POSTGRE_DB_NAME} POSTGRES_PASSWORD: ${POSTGRE_DB_PASSWORD} POSTGRES_USER: ${POSTGRE_DB_USER} TZ: Europe/Paris restart: unless-stopped networks: - back_network_n8n volumes: - ./data:/var/lib/postgresql/data:rw - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${POSTGRE_DB_NAME}", "-U", "${POSTGRE_DB_USER}" ] interval: 10s timeout: 5s retries: 3 start_period: 60s labels: - "com.centurylinklabs.watchtower.enable=true"