- JavaScript 99%
- Dockerfile 1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .dockerignore | ||
| .gitignore | ||
| compose.yaml | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| server.mjs | ||
Creatures
Tiny Git-to-static-site deployer for creatures.mdynx.com.
Each experiment is:
- added in
/admin - cloned from Git
- built with
npm ci - built with
npm run build -- --base=/<slug>/ - published from its
dist/directory - listed on
/ - served at
/<slug>/
Auto-deploy
Every POLL_INTERVAL seconds (default 60, 0 disables), Creatures runs
git ls-remote against each experiment's repo and redeploys when its branch
(or the default branch, if none is set) points at a new commit. A commit that
fails to build is not retried; the next push triggers another attempt, or use
Deploy in /admin.
Run
cp compose.yaml compose.local.yaml # optional
docker compose up -d --build
Then reverse proxy:
https://creatures.mdynx.com -> http://127.0.0.1:8080
Change ADMIN_PASSWORD before exposing it publicly.
Caddy example
creatures.mdynx.com {
reverse_proxy 127.0.0.1:8080
}
Notes
This intentionally assumes npm/Vite-style projects with a dist/ output.
For Vite, Creatures passes:
npm run build -- --base=/<slug>/
so generated assets work under a subpath like /physics-toy/.
A deployed repository's build scripts are executable code. Only deploy repositories you trust.
For private Git repositories, the simplest setup is an SSH clone URL and a read-only SSH key mounted into the container.