# XAMXAM podman-compose test environment — a FRESH Debian machine with nothing # preinstalled, reachable over SSH, so you can test the project's setup scripts # (scripts/provision.sh, scripts/setup-server.sh, scripts/deploy-server.sh, # scripts/provision-server-env.sh) and the `just` deploy recipes against it — # WITHOUT touching the real production host. # # There is exactly one service: `server`, a Debian trixie systemd container that # runs sshd on 127.0.0.1:22022. It has NO nginx/php-fpm/node installed in the # image; the stack is brought up by the provisioning step, exactly like a # greenfield box. The just recipes are run on the HOST and routed to this # container through an SSH shim (see test-env/bin/ and the `test-env-run` # recipe in the justfile), so the recipes themselves are exercised verbatim. # # Quick start (from the repo root): # just test-env-up # boot the box # PATH=test-env/bin:$PATH bash test-env/scripts/provision-server-packages.sh # just test-env-run # runs just deploy # just test-env-run recipe=setup-server # real role/dir setup # name: xamxam-test services: server: build: context: ./server dockerfile: Dockerfile image: localhost/xamxam-test-server:latest # systemd container: /lib/systemd/systemd runs as PID 1. `systemd=always` # would set the env var; under podman-compose we pass privileged + cgroup # mount instead so systemd can manage services (nginx / php-fpm). privileged: true volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw ports: - "127.0.0.1:22022:22" tmpfs: - /run - /tmp stop_grace_period: 60s labels: - io.jujutsu.role=xamxam-test-server