Small starter stacks for self-hosted apps on Docker or Coolify, maintained by Vaguul under the Zemiax personal software studio.
The goal is simple: start from a clean template instead of rebuilding the same PHP, Node, database, and worker setup every time.
node-postgres-redisphp-mariadbpython-worker
docker compose -f node-postgres-redis/docker-compose.yml config
docker compose -f php-mariadb/docker-compose.yml config
docker compose -f python-worker/docker-compose.yml configUse these checks after deploying a starter locally or through Coolify:
| Starter | Public surface | Internal services | Healthy when |
|---|---|---|---|
node-postgres-redis |
api on ${API_PORT:-3000} |
postgres, redis |
Postgres answers pg_isready, Redis answers PING, and the API starts after both dependencies are healthy. |
php-mariadb |
app on ${APP_PORT:-8080} |
mariadb |
MariaDB answers mariadb-admin ping and the app starts after the database is healthy. |
python-worker |
none by default | worker |
The worker container stays running with restart: unless-stopped and does not require an inbound public port. |
For production deployments, expose only the application service that needs traffic. Databases, Redis, and background workers should stay private to the Docker network unless your provider requires a separate internal network configuration.
- Replace every sample password before deploying.
- Keep
.envfiles out of Git. - Bind only the ports that the application actually needs.
- solo builders shipping internal tools
- small product teams on VPS + Docker
- people using Coolify and wanting cleaner starting points
Built and maintained by Vaguul for Zemiax.
MIT