services: newt: image: fosrl/newt container_name: newt restart: unless-stopped networks: - bragi-local environment: - PANGOLIN_ENDPOINT=https://tunnel.doeringer.eu - NEWT_ID=yogqsqz240z1kgr - NEWT_SECRET=chw2i78vd9w9mqaeyjxq7iyrvpu6z365zgmkxxiccus76933 hawser: image: ghcr.io/finsys/hawser:latest container_name: hawser volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/hawser-stacks:/opt/hawser-stacks environment: - STACKS_DIR=/opt/hawser-stacks - DOCKHAND_SERVER_URL=wss://hydra.doeringer.eu/api/hawser/connect - TOKEN=Dj-xnGfioO4x2UcAS72ipxRzhP9PSJUS6F8R66vI2WQ postgres: image: postgres:16 restart: always networks: - bragi-local environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - db_storage:/var/lib/postgresql/data - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 10 n8n: image: docker.n8n.io/n8nio/n8n:${N8N_VERSION} restart: always networks: - bragi-local environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} - N8N_RUNNERS_MODE=external - N8N_RUNNERS_AUTH_TOKEN=${RUNNERS_AUTH_TOKEN} - N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0 ports: - 5678:5678 links: - postgres volumes: - n8n_storage:/home/node/.n8n depends_on: postgres: condition: service_healthy n8n-runner: image: n8nio/runners:${N8N_VERSION} networks: - braig-local restart: always environment: - N8N_RUNNERS_AUTH_TOKEN=${RUNNERS_AUTH_TOKEN} - N8N_RUNNERS_TASK_BROKER_URI=http://n8n:5679 depends_on: - n8n volumes: db_storage: n8n_storage: networks: bragi-local: external: true