Update OKF docs bundle, README, and CLAUDE.md for today's features
Documents the shift planning and closure/payroll modules (new tables, routes, stores), the dark redesign, and the docker-compose-broken-host workaround. Adds CLAUDE.md pointing agents at docs/. Translates README to English and keeps host-specific infrastructure details out of the repo.
This commit is contained in:
@@ -3,7 +3,7 @@ type: Architecture Overview
|
||||
title: Build & deployment
|
||||
description: esbuild backend bundle, Vite frontend build, the multi-stage Docker image, and how it ships to a host.
|
||||
tags: [architecture, deployment, docker]
|
||||
timestamp: 2026-08-12T12:00:00Z
|
||||
timestamp: 2026-08-16T00:00:00Z
|
||||
---
|
||||
|
||||
# Build & deployment
|
||||
@@ -83,6 +83,28 @@ scp compose.yaml <host>:~/eatme/compose.yaml
|
||||
ssh <host> "cd ~/eatme && docker compose up -d"
|
||||
```
|
||||
|
||||
**Known issue on some hosts**: an outdated `docker compose` plugin can fail
|
||||
outright on `up` with an API-version-negotiation error
|
||||
(`client version 1.43 is too old`), with no sudo available to upgrade it.
|
||||
Until that's fixed on the affected host, redeploy there with plain
|
||||
`docker` commands instead, replicating `compose.yaml` by hand:
|
||||
|
||||
```bash
|
||||
ssh <host> 'cd ~/eatme && docker stop eatme && docker rm eatme && \
|
||||
set -a && source ./.env && set +a && docker run -d \
|
||||
--name eatme --restart unless-stopped -p 8092:4000 \
|
||||
-e GOOGLE_CLIENT_ID="$GOOGLE_CLIENT_ID" -e ADMIN_EMAILS="$ADMIN_EMAILS" \
|
||||
-e JWT_SECRET="$JWT_SECRET" -e CORS_ORIGIN="$CORS_ORIGIN" \
|
||||
-e COOKIE_SECURE="$COOKIE_SECURE" \
|
||||
-v eatme_eatme_data:/app/data eatme:latest'
|
||||
```
|
||||
|
||||
The volume name matters — it must match what `docker compose` would have
|
||||
named it (`<project-dir>_<volume-key>`, i.e. `eatme_eatme_data` for this
|
||||
repo) or the container starts with a fresh empty database instead of the
|
||||
existing one. Check the running container first if unsure:
|
||||
`docker inspect eatme --format '{{json .Mounts}}'`.
|
||||
|
||||
TLS termination is handled by an nginx reverse proxy in front of the
|
||||
container (not part of this repo) — a template server block lives at
|
||||
`deploy/<domain>` for whichever host runs nginx, proxying
|
||||
|
||||
Reference in New Issue
Block a user