Skip to content

Linux Server (docker)

This page documents the current Docker-based direction for Brezel.

It is intentionally still a draft.

  1. Clone the repo.
  2. Configure .env, including the Composer and npm access tokens.
  3. Run docker compose up which will startup everything and mount the local stuff.
  4. Interact with Brezel through a repo shim such as brezel bakery apply so the command runs in the correct container context.
  • Use a custom Docker setup, not Laravel Sail.
  • Keep the project directory as the main control surface.
  • Keep using mise for startup and helper tasks.
  • Add repo shim such as bin/brezel (which just tunnels to run a php command in the app container like php bakery apply) for normal interaction.
  • Use Docker Compose as the first target for local development and simple server setups.

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, and mariadb

The PHP-based services should all see the same project files, including vendor/, storage/, and the application code.

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.

  • 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.