Sample apps
The samples/ directory in the main repo (also pushed as the standalone mezzanine-samples repo) holds 9 reference apps — one per workflow template — so you can verify the panel end-to-end without hunting for real codebases to deploy.
What’s in each sample
Every sample is intentionally tiny (~20 lines of real code) and exposes the same two things:
- A home page with a
VERSION = 'v1'constant near the top - A /health endpoint the deploy workflow probes after restart
Bump VERSION, push, and confirm the new string lands. If it doesn’t, your deploy didn’t actually replace the file — the workflow log is the place to look.
The 9 samples
| Sample dir | Workflow template | Deploy path | Healthcheck |
|---|---|---|---|
static/ | static | /var/www/site | http://localhost/ |
php/ | php | /var/www/app | http://localhost/ |
wordpress/ | wordpress | /var/www/wp (drop-in theme) | http://localhost/ |
react/ | react | /var/www/react | http://localhost/ |
nextjs/ | nextjs | /opt/nextapp | http://127.0.0.1:3000/ |
nodejs/ | nodejs | /opt/nodeapp | http://127.0.0.1:3000/health |
django/ | django | /opt/django-app | http://127.0.0.1:8000/ |
flask/ | flask | /opt/flask-app | http://127.0.0.1:8000/health |
fastapi/ | fastapi | /opt/fastapi-app | http://127.0.0.1:8000/health |
How to use one
-
Push the sample to its own git repo. Each subdirectory is meant to be the root of its own repository:
Terminal window cd samples/nodejsgit init && git add -A && git commit -m "init"gh repo create mezzanine-sample-nodejs --public --source . --push -
Adopt the target server in Mezzanine (any Hostinger / Contabo / DigitalOcean / bare-metal box you already have).
-
Create a deploy workflow from the matching template, point it at your new repo.
-
Run it. Healthcheck step turns green → home page renders the
versionstring. -
Test CI/CD by editing
VERSION = 'v2', pushing, and watching the redeploy fire. -
Test Pools + LB with any of the API samples — adopt two servers, deploy the same sample to each, add both as Pool members, set an edge server, requests round-robin between them.
Suggested test order
For fastest dopamine:
static— smallest blast radius, proves git pull + nginxnodejs— proves the pm2 + healthcheck pathnextjswith a private repo — exercises the Deploy Key panel + the build step- Two
nodejsdeployments + a Pool + LB → exercises horizontal scaling end-to-end