917a779cca
gates / gates (push) Successful in 2s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
73 lines
12 KiB
Markdown
73 lines
12 KiB
Markdown
# Onboarding record — dawarich
|
||
|
||
app: dawarich
|
||
opened: 2026-10-01
|
||
template_at: the commit that publishes this record (freikin/dawarich 1.15.3 ×2, postgis/postgis:17-3.5-alpine, redis:7.4-alpine)
|
||
|
||
<!--
|
||
Evidence root: felhom.eu/documentation/audits/new-apps-2026-10-01/ — bench/dawarich/ (bench 9401, swap 0), box/dawarich/
|
||
(scratch guest 9202, drill catalog), S/ (image reads, screenshots' assets), G/ (gates). The smtp_mapping lines were added
|
||
after the step proofs (env only, no image); a mail-OFF boot was measured on the final compose (7.1).
|
||
-->
|
||
|
||
0.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/A/A1-github-facts.txt — AGPL-3.0; upstream's own image, pulled
|
||
0.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/A/A1-github-facts.txt — 1.15.3 on 2026-09-30; 56 releases in 2026 (expect frequent update steps)
|
||
0.3 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/FIT.md — plain `x.y.z` tags; the app is amd64/arm/arm64, postgis/postgis amd64 only
|
||
0.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt ; felhom.eu/documentation/audits/new-apps-2026-10-01/shots/dawarich/1.png — reverse geocoding OFF (no geocoder set), telemetry removed upstream, no outbound connection at rest but the internal ones; the browser loads map tiles from Dawarich's tile server (the page says so); an OPT-IN "What's New" widget would load from my.chibichange.com — it asks, off by default
|
||
0.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/install.txt — first start needs nothing but the images; the map's tiles need the internet in the BROWSER
|
||
0.6 | n/a | Dawarich serves HTTP on port 3000 only; the database and Redis stay internal
|
||
0.7 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/install.txt — the phone apps' route (Overland batches with the API key) through traefik after the install hold opened: 201, read back; no key / wrong key 401
|
||
0.8 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — tagline + use_cases: instead of Google Timeline
|
||
0.9 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich/evidence/MV-dawarich/verdict.json — runs on the bench; APPLICATION_HOSTS names the public name but the app serves any listed host
|
||
1.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/G/gates-dawarich.txt — image-pins and image-resolvable exit 0
|
||
1.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/A/compose/dawarich.yml — `postgis/postgis:17-3.5-alpine` and `redis:7.4-alpine`, as upstream's compose (decision 42's rule)
|
||
1.3 | done | app-catalog-felhom.eu/templates/dawarich/docker-compose.yml — PostgreSQL 17: the data mount at `/var/lib/postgresql/data` is right below 18; engine-major gate exit 0
|
||
1.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich/evidence/MV-dawarich/verdict.json ; felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/step.txt — 1.15.2 seeded, stepped INTO 1.15.3; the entrypoints migrate at every start (seen in the log); read back on both venues
|
||
1.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — puma (production) and sidekiq; RAILS_ENV production
|
||
1.6 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S1-dawarich-reads.txt — SECRET_KEY_BASE and DB_PASSWORD generated (upstream's defaults are `CHANGE_ME` / `password`); the admin password replaced by after_install
|
||
1.7 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S1-dawarich-reads.txt — the entrypoints (`web-entrypoint.sh`, `sidekiq-entrypoint.sh`) migrate and seed at every start; nothing to switch
|
||
1.8 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — an unknown page is a plain 404
|
||
1.9 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — SECRET_KEY_BASE is `data_key: true`: Dawarich encrypts columns with keys derived from it; the restore recovered it (data_keys=1, box/dawarich/restore.txt)
|
||
2.1 | done | felhom.eu/documentation/audits/persistence-sweep-2026-10-02/A/sweep/TABLE.md ; felhom.eu/documentation/audits/persistence-sweep-2026-10-02/A/sweep/evidence/dawarich/probe.json — re-sweep 2026-10-02 with the fixed gate: UNDETERMINED for ONE volume only, `dawarich-redis /data` (Redis writes its snapshot on its own schedule; a job queue, not the household's data — R-807); the app's own data (PostGIS) landed in its volume; nothing written outside a preserved folder (0 BROKEN). The 2026-10-01 CLEAN came from start-time writes alone
|
||
2.2 | done | app-catalog-felhom.eu/templates/dawarich/docker-compose.yml — named volumes (NVMe): database, public, storage, watched imports, redis
|
||
2.3 | n/a | needs_hdd false: no drive path to classify; the tier-1 unit holds the database dump and the volumes
|
||
2.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/install.txt — the app migrated, seeded and stored the point on first start
|
||
2.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/restore.txt — the update's per-app backup, remove keeping backups, restore: the point read back AND the household's own password signs in (303); the box's regenerated admin value is unused
|
||
2.6 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/restore.txt ; felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/remove.txt — both remove choices delete every volume; no drive data exists
|
||
2.7 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — 124 MB database + 33 MB public on install (the country shapes); a year of points adds tens of MB
|
||
2.8 | n/a | the household uploads location files (imports), not files it opens again; the points read back (2.5)
|
||
3.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — class 3, measured
|
||
3.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — through traefik with the browser's https Origin: default refused (422), generated signs in (303), wrong refused
|
||
3.3 | n/a | no open first-run screen: the seeded account exists from the first start
|
||
3.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — registration off for self-hosted: GET /users/sign_up 302, POST /users 422, still one user
|
||
3.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/throttle-and-window.txt — the install hold kept strangers out until after_install (16:09:24); the first public answer 2 s later
|
||
3.6 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/throttle-and-window.txt — per-minute throttles (5 per email, 20 per address — one address behind the tunnel, R-753) hold everyone out ~1 min; 10 wrong tries LOCK the public name for 1 h (Devise). Kept, as mealie (`09` decision 57); the first step tells the household to set its own e-mail; the phone apps' API key works while locked
|
||
3.7 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — `add_people`: the admin creates family accounts (Settings, Users); password and e-mail change in the account settings
|
||
3.8 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — `bin/rails runner … ARGV[0]`: the password is its own argument
|
||
3.9 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt ; felhom.eu/documentation/audits/new-apps-2026-10-01/shots/dawarich/1.png — browser sign-in over https through traefik (headless Chrome signed in) and the phone apps' API route
|
||
4.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S1-dawarich-reads.txt — wget/curl/pgrep in the app image; pg_isready, redis-cli for the sidecars; 127.0.0.1
|
||
4.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/G/gates-dawarich.txt — probe-matches-compose exit 0
|
||
4.3 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/install.txt — all four healthy 153 s after the press (pulls + migrations + seed), 0 restarts; start_period 120 s for the app
|
||
4.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — the app container stopped: `degraded` within 10 s, front door 404; back 25 s after start
|
||
4.5 | done | app-catalog-felhom.eu/templates/dawarich/docker-compose.yml — `container_name: dawarich`; sidecars `dawarich-sidekiq`, `dawarich-db`, `dawarich-redis`
|
||
5.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich/mem-dawarich.csv — bench, swap 0, from birth: app 460 MiB (45 %), sidekiq 270 (26 %), db 148 (29 %), redis 12; 0 kills
|
||
5.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich/evidence/MV-dawarich/verdict.json ; felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/remove.txt — 10-min watch: app 33 %, sidekiq 23 %; on the box with a 60-point track import the app peaked 49 %; 0 kills
|
||
5.3 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — mem_limit 2688M = 1024 + 1024 + 512 + 128
|
||
5.4 | n/a | Dawarich is Ruby (puma + sidekiq), no self-sizing heap
|
||
5.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S1-dawarich-reads.txt — pi_compatible false (postgis/postgis has no arm image); ~2 GB of images
|
||
6.1 | done | app-catalog-felhom.eu/scripts/upgrade_fixtures_box.py — `Dawarich`: a point through the phone apps' route, three negative controls
|
||
6.2 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — the first ladder step 1.15.2 -> 1.15.3 (app and sidekiq together), written by `upgrade-test.py --write-ladder`
|
||
6.3 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/undo/box/radicale/step.txt — the box's own undo, proven on a real failed step this session (Radicale); Dawarich's step ran the same guarded Update
|
||
6.4 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich/evidence/MV-dawarich/verdict.json — no mark
|
||
6.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/FIT.md — plain `x.y.z`, very frequent (56 in 2026)
|
||
7.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/bench/dawarich-mail-off-boot.txt — `smtp_mapping` (STARTTLS, the shim's certificate accepted, no auth); a fresh install with mail OFF boots and its reset page answers. Mail ON not provable on 9202 (R-774)
|
||
8.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/G/gates-dawarich.txt — copy-i18n exit 0 (frozen with --add-app; the first run named a missing English twin, added)
|
||
8.2 | done | app-catalog-felhom.eu/templates/dawarich/.felhom.yml — tagline, use_cases, first_steps (incl. the e-mail change and the tile sentence), default_creds, add_people; followed on 9202
|
||
8.3 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S3-dawarich-assets.txt — logo + three screenshots answer 200; boxes get them with the next hub release (R-766)
|
||
8.4 | done | app-catalog-felhom.eu/README.md — both tables; FIRST-ADMIN row; category travel; catalog_since
|
||
8.5 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/S/S3-dawarich-assets.txt — the website's count holds
|
||
9.1 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/G/gates-dawarich.txt — every gate exit 0, the runtime volume gate included
|
||
9.2 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/install.txt ; felhom.eu/documentation/audits/new-apps-2026-10-01/box/dawarich/checks.txt — a fresh install from the drill catalog, as household and stranger
|
||
9.3 | done | felhom.eu/documentation/audits/new-apps-2026-10-01/README.md — every row done or n/a; open questions are rows (R-753 tunnel address, R-774 mail ON)
|
||
9.4 | done | app-catalog-felhom.eu/onboarding/dawarich.md — published in one commit with this record (the onboarding gate)
|