| name | deploy |
| description | Deploy the flightforms app to production on forms.flyfun.aero |
| disable-model-invocation | true |
Deploy flightforms to production
Use the SSH user and server IP for flyfun.aero deployment from user config.
The project directory on the server is flyfun-forms.
Pre-flight checks
- Ensure the working tree is clean (
git status)
- Ensure we are on the
main branch
- Show the commits that will be deployed:
git log --oneline origin/main..HEAD
- Ask the user to confirm before proceeding
Deploy steps
- Push to remote:
git push origin main
- If
flyfun-common was updated on PyPI since last deploy, bump the version pin in pyproject.toml (e.g., >=0.1.1) so Docker's layer cache is invalidated.
- SSH to the server and deploy:
ssh <user>@<server> "cd flyfun-forms && git pull && docker compose up -d --build"
- Wait a few seconds, then verify the health check:
ssh <user>@<server> "docker inspect --format='{{.State.Health.Status}}' flightforms"
- Also check the endpoint is responding:
curl -s -o /dev/null -w '%{http_code}' https://forms.flyfun.aero/health
If something goes wrong
- Check logs:
ssh <user>@<server> "docker logs --tail 50 flightforms"
- The container runs on port 8030 internally
- Docker container runs as UID 2000 (
app user) — data volume must be chowned to match
docker compose (v2 syntax, NOT docker-compose)
- Templates and mappings are bind-mounted read-only from the repo