feat: flatten output into variants/ and intermediates/
Drop per-job subdirs for phone-friendly Syncthing layout with stem-suffixed filenames; keep web state in meta/. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -60,7 +60,8 @@ bad venue wifi. Nobody signs up, nobody logs in. Whoever has the link
|
||||
(phone/folder setup is out of band).
|
||||
- No beamer/projector product built into this repo.
|
||||
- Not a DAM (digital asset manager) — no albums, tagging, search,
|
||||
retention policies. `incoming/` and `jobs/` are the whole data model.
|
||||
retention policies. `incoming/`, `variants/`, and `intermediates/`
|
||||
are the whole data model.
|
||||
- No auto-deletion of incoming uploads. Ever. The worker only reads/copies.
|
||||
- No Syncthing container in this compose — Syncthing runs on the host.
|
||||
|
||||
@@ -70,8 +71,12 @@ bad venue wifi. Nobody signs up, nobody logs in. Whoever has the link
|
||||
- Data volume (Syncthing share): `${DATA_HOST_DIR}` — prod default
|
||||
`/home/frank/sync.schwenk.online/data/livef12`, local override `./data`.
|
||||
Bind-mounted into `worker` and `web` at `/data` (see `compose.yml`).
|
||||
- Layout under the share: `incoming/` (phone drop), `jobs/` (full tree
|
||||
syncs back), `processed.json`.
|
||||
- Layout under the share:
|
||||
- `incoming/` — phone drop
|
||||
- `variants/` — `{stem}_original.jpg`, `{stem}_rembg.png`, `{stem}_vN.png`
|
||||
- `intermediates/` — `{stem}_vN_*.png` (incl. `_post_0` …)
|
||||
- `meta/` — web bookkeeping JSON (optional `.stignore` on phone)
|
||||
- `processed.json`
|
||||
- Domain: `live.f12.rocks`, routed via the shared external `traefik`
|
||||
network, TLS via `myresolver` (see `INFRASTRUCTURE.md`).
|
||||
- rembg model cache lives in the named Docker volume `rembg_cache`, not
|
||||
@@ -83,8 +88,8 @@ bad venue wifi. Nobody signs up, nobody logs in. Whoever has the link
|
||||
- Never delete or move files under incoming/ from worker code — Syncthing
|
||||
is the writer there. (reason: uploads are the one copy of the original
|
||||
that exists outside a phone's camera roll)
|
||||
- Keep every intermediate image in jobs/<id>/intermediates/ — don't clean
|
||||
them up automatically. (reason: useful for debugging bad filter picks,
|
||||
- Keep every intermediate image under intermediates/ — don't clean them
|
||||
up automatically. (reason: useful for debugging bad filter picks,
|
||||
disk is cheap compared to re-running gmic)
|
||||
- gmic/rembg subprocess calls always run under `nice` (see NICE_LEVEL) —
|
||||
the worker box needs to stay responsive for other things during an
|
||||
|
||||
Reference in New Issue
Block a user