# Base stack — works standalone for local smoke testing (`docker compose up`). # The service binds 127.0.0.1:8080; a host reverse proxy (nginx/Caddy/Traefik) # terminates TLS for manga-api. and forwards to it. # # If your proxy runs in Docker on its own network, use the prod override which # attaches to that network instead of publishing a port: # docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d services: manga-api: build: ./backend image: mangabm-backend:latest container_name: manga-api restart: unless-stopped environment: # API_TOKEN is required — compose refuses to start without it. API_TOKEN: ${API_TOKEN:?set API_TOKEN in .env} ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-https://asuracomic.net,https://asurascans.com,https://demonicscans.org} DB_PATH: /data/bookmarks.db PORT: "8080" volumes: - bookmarks-data:/data # Bound to loopback only: the proxy (or curl during smoke test) reaches it, # the public internet does not. ports: - "127.0.0.1:8080:8080" volumes: bookmarks-data: