# Production deployment for lthn.io # FrankenPHP + Octane + Supervisor # # Usage: # docker compose up -d --build # # Rebuilds pick up code changes from the working directory. services: app: build: . container_name: lthn-io restart: unless-stopped env_file: .env environment: APP_ENV: production APP_DEBUG: "false" OCTANE_SERVER: frankenphp CACHE_STORE: file SESSION_DRIVER: file DB_CONNECTION: mariadb DB_HOST: host.docker.internal DB_PORT: 3306 DB_DATABASE: lthn_io DB_USERNAME: claude DB_PASSWORD: claude extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./.env:/app/.env:ro labels: traefik.enable: "true" traefik.http.routers.lthn-io.rule: "Host(`lthn.io`) || Host(`testnet.lthn.io`) || Host(`api.lthn.io`) || Host(`docs.lthn.io`) || Host(`explorer.lthn.io`)" traefik.http.routers.lthn-io.entrypoints: websecure traefik.http.routers.lthn-io.tls: "true" traefik.http.services.lthn-io.loadbalancer.server.port: "80" traefik.docker.network: proxy networks: - proxy - noc-net networks: proxy: external: true noc-net: external: true