services: albion: build: context: . dockerfile: Dockerfile image: albion-economy:latest container_name: albion-economy restart: unless-stopped environment: # Shared Postgres on the internal `backend` network. EITHER set the full URL: # DATABASE_URL=postgres://albion_user:pw@:5432/albion # (URL-encode special chars in the password: @ -> %40, : -> %3A, etc.) # OR use the discrete vars below (no encoding needed) and leave DATABASE_URL empty. DATABASE_URL: ${DATABASE_URL:-} PGHOST: ${PGHOST:-} PGPORT: ${PGPORT:-5432} PGUSER: ${PGUSER:-} PGPASSWORD: ${PGPASSWORD:-} PGDATABASE: ${PGDATABASE:-} # REQUIRED for public deployment — the agent and web UI send this as a # Bearer token. Set it in .env too. ALBION_API_KEY: ${ALBION_API_KEY:?set ALBION_API_KEY in .env} HOST: 0.0.0.0 PORT: "4310" # Downloaded game-data JSON cache (not the DB) lives here. ALBION_DATA_DIR: /data volumes: - albion_data:/data networks: - proxy # Nginx Proxy Manager terminates TLS + assigns the subdomain - backend # shared Postgres lives here # No host port publish: NPM reverse-proxies to albion:4310 on the proxy network. # To run standalone without NPM, uncomment: # ports: # - "4310:4310" volumes: albion_data: networks: proxy: external: true backend: external: true