# Test stack: fully open (no auth on read OR write), unsigned, ephemeral # volumes, ready to use with a single `docker compose -f compose/docker-compose.test.yaml up`. # This is also what tests/smoke-test.sh drives — see docs/quickstart-compose.md. # # Topology mirrors production (aptly-init -> aptly -> nginx, aptly never # reachable from outside the compose network) so that what you test here is # what you'd actually run, just with the security matrix dialed to "open". services: aptly-init: build: context: .. dockerfile: images/aptly-server/Dockerfile entrypoint: ["/usr/local/bin/aptly-init"] environment: APTLY_GPG_ENABLED: "false" volumes: - ./config/aptly.yaml:/etc/aptly-src/aptly.yaml:ro - aptly_run:/run/aptly restart: "no" aptly: build: context: .. dockerfile: images/aptly-server/Dockerfile depends_on: aptly-init: condition: service_completed_successfully environment: APTLY_API_LISTEN: "0.0.0.0:8080" volumes: - aptly_data:/var/lib/aptly - aptly_run:/run/aptly healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/api/healthy"] interval: 5s timeout: 3s retries: 20 start_period: 5s nginx: image: nginxinc/nginx-unprivileged:1-alpine depends_on: aptly: condition: service_healthy volumes: - aptly_data:/var/lib/aptly:ro - aptly_run:/run/aptly:ro - ./config/nginx.test.conf:/etc/nginx/conf.d/default.conf:ro ports: - "8080:8080" healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/healthz"] interval: 5s timeout: 3s retries: 20 reconcile: build: context: .. dockerfile: images/aptly-server/Dockerfile depends_on: aptly: condition: service_healthy entrypoint: ["/usr/local/bin/aptly-reconcile"] environment: APTLY_URL: "http://aptly:8080" APTLY_STATE_FILE: "/state.yaml" APTLY_FAIL_ON_ERROR: "true" volumes: - ./config/state.test.yaml:/state.yaml:ro restart: "no" volumes: aptly_data: aptly_run: