name: headless-pm services: api: build: context: /home/admin/docker-projects/headless-pm dockerfile: Dockerfile.api container_name: headless_pm_api environment: API_KEY: 52IazidZgCdVM5TzhhALvPkZPn3G71YFa_kSvW7d1JU API_RATE_LIMIT: "300" API_RATE_LIMIT_PERIOD: "60" DATABASE_URL: sqlite:////data/headless-pm.db DB_CONNECTION: sqlite ENVIRONMENT: production SERVICE_PORT: "6969" healthcheck: test: - CMD - python - -c - import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:6969/health').getcode()==200 else 1) timeout: 5s interval: 30s retries: 5 start_period: 20s networks: default: null ports: - mode: ingress target: 6969 published: "18069" protocol: tcp restart: unless-stopped volumes: - type: bind source: /home/admin/docker-projects/headless-pm/data target: /data bind: create_host_path: true dashboard: build: context: /home/admin/docker-projects/headless-pm dockerfile: Dockerfile.dashboard container_name: headless_pm_dashboard depends_on: api: condition: service_healthy required: true environment: NEXT_PUBLIC_API_KEY: 52IazidZgCdVM5TzhhALvPkZPn3G71YFa_kSvW7d1JU NEXT_PUBLIC_API_URL: http://82.29.54.80:18069 NODE_ENV: production healthcheck: test: - CMD - node - -e - fetch('http://127.0.0.1:3001').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1)) timeout: 5s interval: 30s retries: 5 start_period: 30s networks: default: null ports: - mode: ingress target: 3001 published: "13001" protocol: tcp restart: unless-stopped networks: default: name: headless-pm_default