services: postgres: image: postgres:17 ports: - "127.0.0.1:25432:5432" environment: POSTGRES_DB: aplobby POSTGRES_PASSWORD: postgres volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: pg_isready -U postgres interval: 1s timeout: 1s retries: 100 valkey: image: valkey/valkey ports: - "127.0.0.1:26379:6379" healthcheck: test: valkey-cli ping interval: 1s timeout: 1s retries: 100 vol-setup: image: debian user: "root" volumes: - cargo:/tmp/cargo - ./target:/builds/target - ./tmp/apworlds_index:/builds/apworlds_index - ./tmp/gen-output:/builds/gen-output command: chown -R ${USER_ID}:${GID} /tmp/cargo /builds lobby: tty: true build: taskcluster/docker/rust-builder volumes: - .:/builds/worker/checkout - ./target:/builds/target - ./tmp/apworlds_index:/builds/apworlds_index - ./tmp/gen-output:/builds/gen-output - cargo:/builds/cargo environment: CARGO_HOME: /builds/cargo CARGO_TARGET_DIR: /builds/target DATABASE_URL: postgres://postgres:postgres@postgres:5432/aplobby VALKEY_URL: redis://valkey:6379?protocol=resp3 APWORLDS_INDEX_DIR: /builds/apworlds_index APWORLDS_PATH: /builds/apworlds_index/worlds APWORLDS_INDEX_REPO_URL: https://github.com/Eijebong/Archipelago-index.git RUST_LOG: debug YAML_VALIDATION_QUEUE_TOKEN: changeme GENERATION_QUEUE_TOKEN: changeme OPTIONS_GEN_QUEUE_TOKEN: changeme ROCKET_SECRET_KEY: "changemechangemechangemechangemechangeme1234" APWORLDS_INDEX_REPO_BRANCH: "main" ADMIN_TOKEN: changeme GENERATION_OUTPUT_DIR: "/builds/gen-output" ROCKET_ADDRESS: "0.0.0.0" working_dir: /builds/worker/checkout command: sh -c "watchexec -w lobby -w Cargo.toml -w Cargo.lock -w Rocket.toml -w apwm -w wq -r cargo run" user: "${USER_ID}:${GID}" depends_on: vol-setup: condition: service_completed_successfully valkey: condition: service_healthy postgres: condition: service_healthy ports: - "8000:8000" healthcheck: test: curl -f http://127.0.0.1:8000/health interval: 5s timeout: 1s retries: 100 start_period: 1s yaml-checker: build: dockerfile: taskcluster/docker/ap-worker/Dockerfile context: . args: SRC: / DOCKER_SRC: taskcluster/docker/ap-worker/ volumes: - ./ap-worker:/ap/ap-worker/ - ./tmp/apworlds_index:/ap/index working_dir: /ap/archipelago user: "${USER_ID}:${GID}" environment: LOBBY_ROOT_URL: http://lobby:8000 YAML_VALIDATION_QUEUE_TOKEN: changeme command: watchexec -w /ap/ap-worker -r /ap/archipelago/.venv/bin/python3 check_wq.py /ap/supported_worlds /ap/index/worlds/ depends_on: lobby: condition: service_healthy generator: build: dockerfile: taskcluster/docker/ap-worker/Dockerfile context: . args: SRC: / DOCKER_SRC: taskcluster/docker/ap-worker/ volumes: - ./ap-worker:/ap/ap-worker/ - ./tmp/apworlds_index:/ap/index - ./tmp/gen-output:/ap/builds-output working_dir: /ap/archipelago user: "${USER_ID}:${GID}" environment: LOBBY_ROOT_URL: http://lobby:8000 GENERATION_QUEUE_TOKEN: changeme GENERATOR_OUTPUT_DIR: /ap/builds-output LOBBY_API_KEY: changeme command: watchexec -w /ap/ap-worker -r /ap/archipelago/.venv/bin/python3 gen_wq.py /ap/supported_worlds /ap/index/worlds/ depends_on: lobby: condition: service_healthy option-generator: build: dockerfile: taskcluster/docker/ap-worker/Dockerfile context: . args: SRC: / DOCKER_SRC: taskcluster/docker/ap-worker/ volumes: - ./ap-worker:/ap/ap-worker/ - ./tmp/apworlds_index:/ap/index working_dir: /ap/archipelago user: "${USER_ID}:${GID}" environment: LOBBY_ROOT_URL: http://lobby:8000 OPTIONS_GEN_QUEUE_TOKEN: changeme command: watchexec -w /ap/ap-worker -r /ap/archipelago/.venv/bin/python3 options_gen_wq.py /ap/supported_worlds /ap/index/worlds/ depends_on: lobby: condition: service_healthy volumes: cargo: {} pgdata: {}