Linux Server (docker)
This page documents the current Docker-based direction for Brezel.
It is intentionally still a draft.
Intended Setup Flow
- Clone the repo.
- Configure
.env, including the Composer and npm access tokens. - Run
docker compose upwhich will startup everything and mount the local stuff. - Interact with Brezel through a repo shim such as
brezel bakery applyso the command runs in the correct container context.
Current Direction
- Use a custom Docker setup, not Laravel Sail.
- Keep the project directory as the main control surface.
- Keep using
misefor startup and helper tasks. - Add repo shim such as
bin/brezel(which just tunnels to run a php command in the app container likephp bakery apply) for normal interaction. - Use Docker Compose as the first target for local development and simple server setups.
Local Shape
The current local setup is planned around:
- one Brezel app image
- bind mounts for the project directory
- one-shot setup services for Composer and npm dependencies
- long-running services for
app,workers,reverb,scheduler,vite, andmariadb
The PHP-based services should all see the same project files, including vendor/, storage/, and the application code.
Production Later
Production should later move to:
- prebuilt images instead of source bind mounts
- built frontend assets inside the image
- PHP dependencies baked into the image
- normal update flow via pulling new images, restarting services, and running migrations
The repository can still stay on the server for .env, Compose files, and helper scripts.
Future Notes
- Additional services such as export will likely be added later.
- A future installer should help provision the full environment.
- A later Kubernetes or Helm setup should build on the same container model.