Getting started
Mash runs as one container with one volume. There is no external database and no config file. Everything is an environment variable.
Prerequisites
Section titled “Prerequisites”- Docker with the Compose plugin
- A URL your phone can reach (even just your machine’s LAN address), because it gets baked into the QR codes
Install
Section titled “Install”git clone https://github.com/jimmytimmons/mash.git && cd mashcp .env.example .env# Generate the two secrets and paste them into .env:openssl rand -hex 32 # SESSION_SECRETopenssl rand -hex 32 # VOTE_SALTdocker compose up -dSet at minimum PUBLIC_BASE_URL, ADMIN_EMAIL, ADMIN_PASSWORD, and the two secrets in
.env. See Configuration for the full reference.
Open http://localhost:3000 and sign in at /login with the admin email and password you set.
Your first batch
Section titled “Your first batch”- Create a recipe under Recipes: ingredients, measurements, method. A recipe is a template; nothing on it is ever public.
- Start a batch from the recipe. The batch copies the ingredients. Edit them to match what you actually made and Mash rescales the rest (how that works).
- Publish the batch. It gets a public page, a QR code, and a lot code like
REAPER-2607-A. - Print labels from the batch’s label sheet (Labels & printing).
Whoever scans the bottle sees the story and the ingredients, and can leave a thumbs up or down and a comment (which you moderate before it appears).
Upgrading
Section titled “Upgrading”Pull the new image and recreate. The volume carries everything:
docker compose pull && docker compose up -dDatabase migrations run automatically at boot. See Operations for backups.