version: "3.7" services: n8n: container_name: n8n image: n8nio/n8n:0.220.0 restart: unless-stopped ports: - ${APP_PORT}:5678 volumes: - ${APP_DATA_DIR}/data/n8n:/home/node/.n8n command: /bin/sh -c "sleep 5; n8n start" environment: - DB-TYPE=postgresdb - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_HOST=db-n8n - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_USER=tipi - DB_POSTGRESDB_PASSWORD=tipi depends_on: - db-n8n networks: - tipi_main_network labels: traefik.enable: ${APP_EXPOSED} traefik.http.routers.n8n.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.n8n.entrypoints: websecure traefik.http.routers.n8n.service: n8n traefik.http.routers.n8n.tls.certresolver: myresolver traefik.http.services.n8n.loadbalancer.server.port: 5678 db-n8n: container_name: db-n8n image: postgres:14.2 restart: on-failure volumes: - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=tipi - POSTGRES_DB=n8n networks: - tipi_main_network