services: n8n-postgres: image: postgres:latest container_name: postgres restart: always networks: - n8n-net environment: - POSTGRES_PASSWORD=mypassword ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql n8n: image: n8nio/n8n:2.7.3 container_name: n8n restart: always networks: - n8n-net ports: - "5678:5678" environment: - GENERIC_TIMEZONE=Asia/Jakarta - TZ=Asia/Jakarta - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_RUNNERS_ENABLED=true - N8N_RUNNERS_MODE=external - N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0 - N8N_RUNNERS_AUTH_TOKEN=n8n-secret - N8N_NATIVE_PYTHON_RUNNER=true - N8N_COMMUNITY_PACKAGES_ENABLED=true - N8N_RUNNERS_EXTERNAL_ALLOW=pillow volumes: - n8n_data:/home/node/.n8n depends_on: - n8n-postgres task-runners: build: . container_name: n8n-runners networks: - n8n-net environment: - N8N_RUNNERS_TASK_BROKER_URI=http://n8n:5679 - N8N_RUNNERS_AUTH_TOKEN=n8n-secret depends_on: - n8n stirling-pdf: image: stirlingtools/stirling-pdf:latest-ultra-lite container_name: stirling-pdf restart: always ports: - "8080:8080" networks: - n8n-net environment: - DONT_LOG_SENSITIVE_INFO=true networks: n8n-net: driver: bridge volumes: n8n_data: external: true postgres_data: external: true