Linux Server (docker)
This page documents the current Docker-based direction for Brezel.
It is intentionally still a draft.
Intended Setup Flow
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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.