version: "3.7" services: n8n: container_name: n8n image: n8nio/n8n:0.237.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 - N8N_EDITOR_BASE_URL=${APP_DOMAIN} depends_on: - db-n8n networks: - tipi_main_network labels: # Main traefik.enable: true traefik.http.middlewares.n8n-web-redirect.redirectscheme.scheme: https traefik.http.services.n8n.loadbalancer.server.port: 5678 # Web traefik.http.routers.n8n-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.n8n-insecure.entrypoints: web traefik.http.routers.n8n-insecure.service: n8n traefik.http.routers.n8n-insecure.middlewares: n8n-web-redirect # Websecure 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 # Local domain traefik.http.routers.n8n-local-insecure.rule: Host(`n8n.${LOCAL_DOMAIN}`) traefik.http.routers.n8n-local-insecure.entrypoints: web traefik.http.routers.n8n-local-insecure.service: n8n traefik.http.routers.n8n-local-insecure.middlewares: n8n-web-redirect # Local domain secure traefik.http.routers.n8n-local.rule: Host(`n8n.${LOCAL_DOMAIN}`) traefik.http.routers.n8n-local.entrypoints: websecure traefik.http.routers.n8n-local.service: n8n traefik.http.routers.n8n-local.tls: true client: tty: true stdin_open: true image: tooljet/tooljet-client-ce:latest restart: always depends_on: - server networks: - tipi_main_network labels: # Main traefik.enable: true traefik.http.middlewares.tooljet-web-redirect.redirectscheme.scheme: https traefik.http.services.tooljet.loadbalancer.server.port: 80 # Web traefik.http.routers.tooljet-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.tooljet-insecure.entrypoints: web traefik.http.routers.tooljet-insecure.service: tooljet traefik.http.routers.tooljet-insecure.middlewares: tooljet-web-redirect # Websecure traefik.http.routers.tooljet.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.tooljet.entrypoints: websecure traefik.http.routers.tooljet.service: tooljet traefik.http.routers.tooljet.tls.certresolver: myresolver # Local domain traefik.http.routers.tooljet-local-insecure.rule: Host(`tooljet.${LOCAL_DOMAIN}`) traefik.http.routers.tooljet-local-insecure.entrypoints: web traefik.http.routers.tooljet-local-insecure.service: tooljet traefik.http.routers.tooljet-local-insecure.middlewares: tooljet-web-redirect # Local domain secure traefik.http.routers.tooljet-local.rule: Host(`tooljet.${LOCAL_DOMAIN}`) traefik.http.routers.tooljet-local.entrypoints: websecure traefik.http.routers.tooljet-local.service: tooljet traefik.http.routers.tooljet-local.tls: true command: openresty -g "daemon off;" server: image: tooljet/tooljet-server-ce:latest tty: true stdin_open: true restart: always networks: - tipi_main_network # env_file: .env environment: SERVE_CLIENT: "false" command: npm run start:prod db-n8n: container_name: postgres_tooljet image: postgres:11 restart: on-failure volumes: - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data environment: - POSTGRES_USER=tipi - POSTGRES_PASSWORD=${PG_PASS} - POSTGRES_DB=tooljet # - POSTGRES_HOST=${PG_HOST} - PGDATA=/data/postgres networks: - tipi_main_network