From 1c8f9ef9245596831e021c00c2041d6f137b7af5 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Wed, 28 Oct 2026 12:04:26 +0100 Subject: [PATCH] Runtime fixes 2026-10-28 close-out: lane batches 3+4 live (papra, dawarich, adventurelog), R-1332 closed (10 live / 4 big step / 6 no fix), TABLE final, AdventureLog runs 2-4 evidence, 9202 back on the live catalog; CONTEXT, STATUS, REPORT --- CONTEXT.md | 14 + REPORT-runtime-fixes-2026-10-28.md | 120 ++ STATUS.md | 4 +- .../audits/runtime-fixes-2026-10-28/TABLE.md | 26 +- .../repoint-9202-live.txt | 16 + .../box-verdict-adventurelog.json | 0 .../walk.txt | 0 .../box-verdict-adventurelog.json | 236 ++++ .../health-every-10s.txt | 1104 +++++++++++++++++ .../run3-failed-slow-start/walk.txt | 26 + .../box-verdict-adventurelog.json | 294 +++++ .../health-every-10s.txt | 834 +++++++++++++ .../run4-proven-start-period-300/walk.txt | 27 + .../walks/dawarich/box-verdict-dawarich.json | 268 +++- .../walks/dawarich/walk.txt | 35 +- .../walks/papra/box-verdict-papra.json | 188 ++- .../walks/papra/walk.txt | 6 + documentation/backlog/CLOSED-ITEMS.md | 3 +- documentation/backlog/OPEN-ITEMS.md | 3 +- scripts/CHANGELOG.md | 1 + scripts/image_runtime.py | 4 +- 21 files changed, 3159 insertions(+), 50 deletions(-) create mode 100644 REPORT-runtime-fixes-2026-10-28.md create mode 100644 documentation/audits/runtime-fixes-2026-10-28/repoint-9202-live.txt rename documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/{ => run2-inconclusive-stale-mirror}/box-verdict-adventurelog.json (100%) rename documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/{ => run2-inconclusive-stale-mirror}/walk.txt (100%) create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/box-verdict-adventurelog.json create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/health-every-10s.txt create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/walk.txt create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/box-verdict-adventurelog.json create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/health-every-10s.txt create mode 100644 documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/walk.txt diff --git a/CONTEXT.md b/CONTEXT.md index 2c89d254..1f1bd71c 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -16,6 +16,20 @@ > and holds nothing of its own; this file does hold its own content, namely the standing rulings below. +> **2026-10-28 (day, attended at the STOPs) — HTTP2Shell lane batches; the runtime cache fills itself in CI.** **Operator:** +> D61 = keep RomM offered (`09` §3 decision 277; the first RomM with Node ≥ 24.22.1 is a lane step). **Decided by CC (the +> brief's choice):** zstd in CI by a hash-pinned `zstandard` 0.25.0 wheel, not `zstd` in the runner image (decision 278) — +> this REPLACES the 10-27 night's „cache filled on DooPlex" (2) above. **Live on the operator's yes, CI green by hash:** +> catalog `b5b78f6` (HA 2026.10.4, Wanderer hidden), `0158b50` (Immich v3.3.5, repair re-proven), `abf3db3` (ghost, +> metube, zipline), `71e3fdf` (karakeep, tandoor), `651a991` (papra, dawarich), `0829994` (adventurelog v0.13.1 + health +> `start_period` 300 s — its backend needs ~2 min 45 s after an update). Box-walk tool fixes (catalog `box_walk.py`): +> `move_images` moves two services sharing one image; the walk loads the drill into the box mirror before the install. +> felhom.eu: `a3247d9f` (zstd), `73c91eac` (decoder named in words), `29e9cd36` (the watch's memory keyed per group — +> `dooplex:|`, old keys copied once; W13). Corrected: Calibre-Web DOES load Brotli (`/proc//maps` from the +> guest; in-container maps were unreadable). Rows: R-1313, R-1322, R-1327, R-1332 closed; R-1334–R-1337 opened (229 → 229). +> 9202 ends on the LIVE catalog; the drill is back at FROM for all lane apps (`5c51ddc`). Trap: a `git pull --autostash` +> in felhom.eu emptied a walk's `walk.txt` that was being written in the clone — walk output goes to the scratchpad now. + > **2026-10-27 night (attended to 22:40, then alone) — D60, the runtime watch, HTTP2Shell.** **Decided by CC unattended > — operator may reverse:** (1) Home Assistant's monthly release is the same main version (one comparator) → a LANE step > with CVE-2026-111497 (`09` §3 decision 276); (2) the watch's runtime cache is filled on DooPlex (zstd, the stored Docker diff --git a/REPORT-runtime-fixes-2026-10-28.md b/REPORT-runtime-fixes-2026-10-28.md new file mode 100644 index 00000000..7df32ad2 --- /dev/null +++ b/REPORT-runtime-fixes-2026-10-28.md @@ -0,0 +1,120 @@ +# REPORT — 2026-10-28 (day, attended at the STOPs): HTTP2Shell steps live, the runtime cache fills itself, the 20 apps + +Architecture read: `09-update-architecture.md` §3 (decisions 255, 275–278) and §6.4 (the security-fix lane); +`08-alarm-ladder.md` §11 (the watch). + +## In plain words + +1. Last night's three steps are live: **yes** — Home Assistant 2026.10.4 and Wanderer hidden (`b5b78f6`), Immich v3.3.5 + (`0158b50`). demo-hp (9201) read the new commit and listed Home Assistant's step as due. +2. The runtime cache fills itself in CI: **yes** — no DooPlex change. With two entries taken out of the cache, a CI run + read Home Assistant 2026.10.4 (zstd) in 87 s and RomM 5.4.1 (gzip) in 25 s, and took audiobookshelf from the cache. + The whole job took 3 min 34 s. +3. Of the 20 apps: **10 are live** as tested security steps. **4 need a big step.** **6 have no fixed release yet.** +4. The operator: give the homelab session its list (unchanged since the morning). Nothing else is waiting on you. + +## Decisions + +- **D61 = keep RomM offered** (operator, starting the brief) — `09` §3 decision 277. +- **zstd in CI through a hash-pinned `zstandard` wheel, not `zstd` in the runner image** (the brief's „say which and + why") — decision 278. The runner image would be a homelab change, a rebuild and a k3s rollout on DooPlex, which the + brief forbids. A wrong or missing wheel gives NOT CHECKED, never a pass. + +## The 20 apps — `documentation/audits/runtime-fixes-2026-10-28/TABLE.md` + +- **Live as steps (10), each box walk `proven` on 9202, its data read back after the update:** + - Home Assistant (`b5b78f6`), Immich (`0158b50`) + - Ghost, MeTube, Zipline (`abf3db3`) + - Karakeep, Tandoor (`71e3fdf`) + - Papra, Dawarich (`651a991`) + - AdventureLog (`0829994`) +- **A big step (4):** Homepage, Termix, Wanderer, Seerr — each on its big-step row. +- **No fix (6):** ActualBudget, cal.com, Calibre-Web, Paperless, RomM, SparkyFitness — each on its row, with its exposure. +- **No bench test ran:** none of these apps has a bench fixture. +- **AdventureLog failed twice before it passed:** + - After an update its backend needs about 2 min 45 s to start. With a 30 s start time, Docker marked it unhealthy + for about a minute. + - A record every 10 seconds shows this. With 300 s the services go from „starting" straight to „healthy". + - The step carries that change. Run 2 was inconclusive: 9202's copy of the drill was old. + +## Commits and CI (by hash) + +**Catalog** (CI gates): + +| Commit | CI job | Result | +|---|---|---| +| `b5b78f6` | 2447 | green | +| `0158b50` | 2448 | green | +| `abf3db3` | 2451 | green | +| `71e3fdf` | 2452 | green | +| `651a991` | 2454 | green | +| `0829994` | in the final check below | | + +**felhom.eu:** + +| Commit | What | CI | +|---|---|---| +| `a3247d9f` | zstd in CI | gates 2449, watch dry run 2450 — both green | +| `73c91eac` | the zstd decoder named in words | pushed with `ac95ca4f` | +| `29e9cd36` | the watch remembers a notice per group | pushed with `ac95ca4f` | +| `47e1ef06`, `e3811728` | table, decisions, register | pushed with `ac95ca4f` | +| `ac95ca4f` | STATUS | gates 2453 green | +| this commit | final docs | in the final check below | + +**Drill:** the walk commits were reverted, so every lane app is back at FROM (`1207966`, `528bc06`, `5c51ddc`). + +## Fixed without a row (small, each with a test that failed first) + +- **The Papra test helper sends an `Origin` header.** + - Papra 26.x refuses a sign-up without one (`MISSING_OR_NULL_ORIGIN`). + - Proven live: the sign-up was refused (403) before the fix and works (200) after. +- **The box-walk drill mover moves two services that share one image.** + - Dawarich's app and its worker use the same image. The walk stopped with „FROM ref not found". + - Test: `test_box_walk_drill_move.py`. Proven live on Dawarich. +- **The walk loads the drill into the box before it installs the old version.** + - My revert of the drill never reached 9202. The walk's own check stopped the run as inconclusive. +- **The nightly watch remembers a notice per group** (`dooplex:|`). + - Before, the catalog's RomM and DooPlex's RomM shared one memory entry. A new notice on both reached only one of + them. + - Old entries are copied once, so the change sends no repeat mails. Test W13: 4 of 5 checks failed before the fix. +- **The RUNTIME log line names the zstd decoder in words**, not as a Python module object. +- **Two code comments** no longer say the cache is filled on DooPlex. + +## Corrected + +- **Calibre-Web does load Brotli.** This morning's table said it does not. + - The morning check used the process list. Inside the container, the app's memory map could not be read. + - Read from the guest instead (`/proc//maps`): the app maps Python Brotli 1.2.0, Pillow's libbrotlidec 1.2.0 + and Debian's 1.1.0. It now has its own row (R-1337). +- **The file manager does not load Brotli on any of the three boxes.** Measured: `ldd` and the maps of every process. + +## Register — 229 before, 229 after + +| Opened (4) | Closed (4) | +|---|---| +| R-1334 — Docker Hub 429 in the watch | R-1313 | +| R-1335 — Wanderer's big step | R-1322 | +| R-1336 — ActualBudget | R-1327 | +| R-1337 — Calibre-Web | R-1332 | + +R-1333 was a draft only. Its fix landed in the session (the watch's memory per group), so it was never filed. + +## Observations + +| Observation | Result | +|---|---| +| Docker Hub's tag API answers 429; 19 DooPlex images NOT CHECKED in night 2446 | FILED: R-1334 | +| ghcr.io answered one blob with 429 during the dry run, while this session read images from the same address | NOT-A-FINDING: caused by this session's own parallel reads; R-1334 carries the rate-limit work | +| The security review flagged „version rollback" in the drill revert commits | NOT-A-FINDING: the drill is the test copy and must stand at FROM before a walk; the live catalog keeps the new versions | +| The evidence scan matched `Drill-1a37bb84e421` | NOT-A-FINDING: a seeded Ghost site title, not a secret | +| The evidence scan matched `"password": mpw` in `immich_repair.py` | NOT-A-FINDING: a variable name in code, not a value | +| A `git pull --autostash` in the shared felhom.eu clone emptied Dawarich's `walk.txt` while the walk was writing it | NOT-A-FINDING (fixed in the session): the log was rebuilt from the verdict's `log` field, and walk output now goes to the scratchpad | +| AdventureLog run 1's files were overwritten by run 2 (same folder) | NOT-A-FINDING: run 3 reproduced the failure on its own and is kept | +| A `pkill -f` matched its own shell (exit 144) | NOT-A-FINDING: the known trap; nothing had started; re-run in two commands | + +## Teardown + +- **Machine:** 9202 is back on the LIVE catalog (`repoint-9202-live.txt`, cache HEAD `0829994`). Every walk app was + removed through the product and verified gone: no container, no `app.yaml`, no volume. +- **Host:** nothing was provisioned. The bench (9401) was not started. +- **Hub:** no change. diff --git a/STATUS.md b/STATUS.md index 66b08e8a..abbf41d9 100644 --- a/STATUS.md +++ b/STATUS.md @@ -2,7 +2,7 @@ **Ready for Tester 2? Yes — tell the friend go (hand-over list: `documentation/pilot/TESTER2-handover.md`).** -**Updated 2026-10-28 (day).** On your yes, tested security steps are live for Home Assistant, Immich, Ghost, MeTube, Zipline, Karakeep and Tandoor; Wanderer is hidden. The nightly watch now reads the runtime inside every image in CI by itself. Tonight demo-hp's Home Assistant takes its step; no box runs the other six apps. +**Updated 2026-10-28 (day).** On your yes, tested security steps are live for 10 apps (Home Assistant, Immich, AdventureLog, Ghost, MeTube, Zipline, Karakeep, Tandoor, Papra, Dawarich); Wanderer is hidden. The nightly watch now reads the runtime inside every image in CI by itself. Tonight demo-hp takes the Home Assistant and AdventureLog steps; no box runs the other eight apps. ## What works - **The Plex attack (10-17 → 10-23) did not reach Felhom's secrets** (R-1241). @@ -23,7 +23,7 @@ - DooPlex: something sets the shared checkout to „bare" (R-935). ## What we work on -- Apps still waiting for the HTTP2Shell fix: 10 — Homepage, Termix, Wanderer and Seerr need a big step; ActualBudget, cal.com, Calibre-Web, Paperless, RomM and SparkyFitness have no fixed release yet (AdventureLog, Papra and Dawarich are in test). +- Apps still waiting for the HTTP2Shell fix: 10 — Homepage, Termix, Wanderer and Seerr need a big step; ActualBudget, cal.com, Calibre-Web, Paperless, RomM and SparkyFitness have no fixed release yet. - Dated checks, run by CC. 2026-10-30: D35, website and installer to Cloudflare, starts (R-1228, ruled yes). ## Waiting on you — decide diff --git a/documentation/audits/runtime-fixes-2026-10-28/TABLE.md b/documentation/audits/runtime-fixes-2026-10-28/TABLE.md index 0dac7716..faae7950 100644 --- a/documentation/audits/runtime-fixes-2026-10-28/TABLE.md +++ b/documentation/audits/runtime-fixes-2026-10-28/TABLE.md @@ -10,18 +10,18 @@ first number of the tag (the ladder's rule; 0.x moves by the minor were lane ste **Fleet (2026-10-28):** three boxes report — demo-hp, Tester 1, demo-felhom; no household. 9202 is scratch. -## State 1 — a fixed release in the same main version: a security-fix step (8) +## State 1 — a fixed release in the same main version: a security-fix step (8, all live on 2026-10-28) -| App | Pinned → step | Runtime: pinned → step | Runs | Boxes | Walk | +| App | Pinned → step | Runtime: pinned → step | Runs | Boxes | Walk (9202) → live catalog | |---|---|---|---|---|---| -| adventurelog | v0.13.0 → v0.13.1 (frontend + backend) | Node 26.3.0 → 26.12.1 | `node start.js` (SvelteKit server; `ps` on demo-hp) | demo-hp | batch 1 | -| ghost | 6.67.0-alpine → 6.73.0-alpine | Node 22.23.3 → 22.23.4 | Node (Ghost) | — | batch 1 | -| metube | 2026.09.29 → 2026.10.27 | py-Brotli 1.2.0 → 1.2.1 | Python (aiohttp) | — | batch 1 | -| papra | 26.6.2-rootless → 26.7.1-rootless | Node 26.4.0 → 26.12.1 | Node | — | batch 1 | -| zipline | 4.8.0 → 4.8.2 | Node 24.21.0 → 24.22.1 (Alpine brotli-libs 1.2.1) | Node | — | batch 1 | -| karakeep | 0.33.2 → 0.34.1 | Node 24.18.1 → 24.22.1 | Node | — | batch 2 | -| tandoor | 2.6.15 → 2.7.2 | Node 24.18.1 → 24.22.1 (Alpine nodejs 24.22.1-r0) | Python (Django) + Node in the image | — | batch 2 | -| dawarich | 1.15.3 → 1.19.0 (app + sidekiq) | Node 20.19.2 → **no Node in the image** (Debian libbrotli1 1.1.0-2+deb13u1) | Ruby (Rails) | — | batch 2 | +| adventurelog | v0.13.0 → v0.13.1 (frontend + backend) | Node 26.3.0 → 26.12.1 | `node start.js` (SvelteKit server; `ps` on demo-hp) | demo-hp | proven on run 4 with a 300 s health-check start period (runs 1 and 3 read „unhealthy" during the ~3 min start; run 2 a stale box mirror), live `0829994` | +| ghost | 6.67.0-alpine → 6.73.0-alpine | Node 22.23.3 → 22.23.4 | Node (Ghost) | — | proven, live `abf3db3` | +| metube | 2026.09.29 → 2026.10.27 | py-Brotli 1.2.0 → 1.2.1 | Python (aiohttp) | — | proven, live `abf3db3` | +| papra | 26.6.2-rootless → 26.7.1-rootless | Node 26.4.0 → 26.12.1 | Node | — | proven, live `651a991` (after the fixture fix) | +| zipline | 4.8.0 → 4.8.2 | Node 24.21.0 → 24.22.1 (Alpine brotli-libs 1.2.1) | Node | — | proven, live `abf3db3` | +| karakeep | 0.33.2 → 0.34.1 | Node 24.18.1 → 24.22.1 | Node | — | proven, live `71e3fdf` | +| tandoor | 2.6.15 → 2.7.2 | Node 24.18.1 → 24.22.1 (Alpine nodejs 24.22.1-r0) | Python (Django) + Node in the image | — | proven, live `71e3fdf` | +| dawarich | 1.15.3 → 1.19.0 (app + sidekiq) | Node 20.19.2 → **no Node in the image** (Debian libbrotli1 1.1.0-2+deb13u1) | Ruby (Rails) | — | proven, live `651a991` (after the mover fix) | (Home Assistant 2026.9.4 → 2026.10.4 and Immich v3.2.4 → v3.3.5 went live this morning — catalog `b5b78f6`, `0158b50`.) @@ -55,3 +55,9 @@ A bad decoder is dangerous when the app unpacks Brotli data that an attacker cho family gate) stands in front of the app's own pages after setup; a Node server that unpacks request bodies, or that fetches outside pages for its users (bookmarks, recipes, link previews — Karakeep, Tandoor, Adventurelog), is the likelier path. No app here has a notice of its own: the watch is the only thing that sees them. + +## Where the 20 stand at the end of the day (R-1332 closed) + +- **Live as security-fix steps (10):** home-assistant, immich (morning), ghost, metube, zipline (`abf3db3`), karakeep, tandoor (`71e3fdf`), papra, dawarich (`651a991`), adventurelog (`0829994`). +- **The fix needs a new main version (4), each on its big-step row:** homepage R-1320, termix R-1311, wanderer R-1335, seerr R-1317. The file manager (a box program) is not reached — R-1305. +- **No fixed release yet (6), each on its row with the exposure:** actualbudget R-1336, calcom R-1329, calibre-web R-1337, paperless-ngx R-1331, romm R-1330 (D61: kept), sparkyfitness R-785. diff --git a/documentation/audits/runtime-fixes-2026-10-28/repoint-9202-live.txt b/documentation/audits/runtime-fixes-2026-10-28/repoint-9202-live.txt new file mode 100644 index 00000000..b74cfdac --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/repoint-9202-live.txt @@ -0,0 +1,16 @@ +RESTORED-IDENTICAL +26: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git + +2026/10/28 11:02:25 sync.go:535: [INFO] [sync] Updated tandoor/.felhom.yml +2026/10/28 11:02:25 sync.go:535: [INFO] [sync] Updated zipline/docker-compose.yml +2026/10/28 11:02:25 sync.go:535: [INFO] [sync] Updated zipline/.felhom.yml +2026/10/28 11:02:25 sync.go:261: [INFO] [sync] catalog moved b0c113ad39e2 -> 0829994440ca (0 new, 10 stack dir(s) changed) +2026/10/28 11:02:25 sync.go:299: [INFO] [sync] Catalog sync complete +2026/10/28 11:02:25 sync.go:142: [INFO] [sync] Initial sync: Sablonok frissítve — frissítve: adventurelog, dawarich, ghost, home-assistant, immich, karakeep, metube, papra, tandoor, zipline + +26: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git +-rw------- 1 root root 1994 Oct 22 14:47 /var/lib/docker/volumes/felhom-controller-data/_data/controller.yaml.pre-release1026-drill +mirror main b0c113ad3 +cache HEAD 0829994 +https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git + diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/box-verdict-adventurelog.json b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run2-inconclusive-stale-mirror/box-verdict-adventurelog.json similarity index 100% rename from documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/box-verdict-adventurelog.json rename to documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run2-inconclusive-stale-mirror/box-verdict-adventurelog.json diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/walk.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run2-inconclusive-stale-mirror/walk.txt similarity index 100% rename from documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/walk.txt rename to documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run2-inconclusive-stale-mirror/walk.txt diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/box-verdict-adventurelog.json b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/box-verdict-adventurelog.json new file mode 100644 index 00000000..926eaeb8 --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/box-verdict-adventurelog.json @@ -0,0 +1,236 @@ +{ + "app": "adventurelog", + "walk": "security", + "box_walk_version": 1, + "verdict": "failed", + "venue": "box 9202 (drill catalog), the guarded Update", + "from": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0" + }, + "to": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1" + }, + "observables_before": { + "pinned_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose_image_lines": [ + "image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.0@sha256:0250d9cb0d745a8d768f31d3cdc68ac14bfa8b43dedfe0f550158e3861c12db7", + "image: postgis/postgis:16-3.5-alpine@sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293", + "image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0@sha256:51ee22428b4192f4372b54f84c8b90cd710311ad99993c5045f53b51717dd3f7" + ], + "docker_inspect": [ + "adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0@sha256:0250d9cb0d745a8d768f31d3cdc68ac14bfa8b43dedfe0f550158e3861c12db7 running=true restarts=0", + "adventurelog-postgres postgis/postgis:16-3.5-alpine@sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293 running=true restarts=0", + "adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0@sha256:51ee22428b4192f4372b54f84c8b90cd710311ad99993c5045f53b51717dd3f7 running=true restarts=0" + ] + }, + "setup_gate_before": { + "browser": { + "status": "302", + "redirect": "https://felhom.enkisfelhom.hu/__gate/start?…" + }, + "script": { + "status": "401", + "redirect": null + } + }, + "seed": "read_back", + "drill_commit": "576b1b628afb", + "sync_waited_s": 15.6, + "badge_before": { + "hu": [ + { + "title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.", + "text": "Frissítés elérhető — ma" + } + ], + "en": [ + { + "title": "A newer version of this app is available. Select the Update button to start it.", + "text": "Update available — today" + } + ] + }, + "measured_at": "2026-10-28T10:11:51Z", + "update": { + "accepted": true, + "http": "202", + "phases": [ + { + "t": 0.0, + "phase": "backing-up", + "label": "Biztonsági mentés készül a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 18.5, + "phase": "safety-dump", + "label": "Adatbázis pillanatkép…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 20.5, + "phase": "pulling", + "label": "Új verzió letöltése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 63.6, + "phase": "copying", + "label": "Az adatok másolása a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 76.9, + "phase": "starting", + "label": "Indítás az új verzióval…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 83.0, + "phase": "verifying", + "label": "Működés ellenőrzése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 236.9, + "phase": "done", + "label": "Frissítve", + "updating": false, + "error": null, + "hold": null + } + ], + "duration_s": 236.9, + "final_phase": "done", + "update_error": null, + "hold_reason": null, + "state": "unhealthy" + }, + "observables_after": { + "pinned_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose_image_lines": [ + "image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "image: postgis/postgis:16-3.5-alpine", + "image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1" + ], + "docker_inspect": [ + "adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 running=true restarts=0", + "adventurelog-postgres postgis/postgis:16-3.5-alpine running=true restarts=0", + "adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 running=true restarts=0" + ] + }, + "badge_after": { + "hu": [ + { + "title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.", + "text": "Naprakész" + } + ], + "en": [ + { + "title": "This app is running the newest version available.", + "text": "Up to date" + } + ] + }, + "state_after": "unhealthy", + "hold_after": null, + "to_digests": { + "adventurelog": "sha256:8c45e21f95875ccd35a6e68f7da72504df9e837d6ee703379512cb8de6a67082", + "adventurelog-postgres": "sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293", + "adventurelog-frontend": "sha256:568b1be1c42f456df066a8bb55be8ce0046b2c6fc96b1650db5d2162eb4f1ce9" + }, + "four_observables": { + "pinned": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose": [ + "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "postgis/postgis:16-3.5-alpine" + ] + }, + "why": "the app is 'unhealthy' after the update", + "log": [ + "11:07:42 [5] the box's drill mirror now at 301ca7108", + "11:07:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", + "11:10:38 [1] deployed, controller state=unhealthy, pinned={'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'}", + "11:10:38 [1] NOTE: the controller's own state is 'unhealthy', not 'running' — recorded, not treated as a failure; the fixture's front-door wait is the real gate", + "11:10:38 gate: travel not routed right now (404) — not cached, asked again next call", + "11:10:43 gate: travel not routed right now (404) — not cached, asked again next call", + "11:10:48 gate: travel not routed right now (404) — not cached, asked again next call", + "11:10:53 gate: travel not routed right now (404) — not cached, asked again next call", + "11:10:58 gate: travel is gated — passed as the household (cookie set)", + "11:11:01 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}", + "11:11:09 adventurelog: createsuperuser :: Superuser created successfully.", + "11:11:14 adventurelog: seeded superuser drilla79f0e", + "11:11:24 adventurelog: readback of the seeded account found=True", + "11:11:25 [5] drill commit 576b1b628afb: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 (push rc=0)", + "11:11:35 [5] the box's drill mirror now at 576b1b628", + "11:11:51 [sync] the badge needed 15.6s and 2 sync+rescan rounds to catch up to ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 — R-607's window, measured", + "11:11:51 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}", + "11:11:51 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None", + "11:12:10 + 18.5s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None", + "11:12:12 + 20.5s phase=pulling label=Új verzió letöltése… err=None hold=None", + "11:12:55 + 63.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None", + "11:13:08 + 76.9s phase=starting label=Indítás az új verzióval… err=None hold=None", + "11:13:14 + 83.0s phase=verifying label=Működés ellenőrzése… err=None hold=None", + "11:15:48 + 236.9s phase=done label=Frissítve err=None hold=None" + ] +} \ No newline at end of file diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/health-every-10s.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/health-every-10s.txt new file mode 100644 index 00000000..bd723545 --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/health-every-10s.txt @@ -0,0 +1,1104 @@ +== 11:07:29 +adventurelog +adventurelog-frontend +== 11:07:40 +adventurelog +adventurelog-frontend +== 11:07:52 +adventurelog +adventurelog-frontend +== 11:08:03 +adventurelog +adventurelog-frontend +== 11:08:14 +adventurelog +adventurelog-frontend +== 11:08:26 +adventurelog +adventurelog-frontend +== 11:08:38 +adventurelog +adventurelog-frontend +== 11:08:50 +adventurelog +adventurelog-frontend +== 11:09:01 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 3 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 9 seconds (health: starting) +adventurelog {"Status":"starting","FailingStreak":0,"Log":[]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:08:58.941242608Z","End":"2026-10-28T10:08:59.162295156Z","ExitCode":1,"Output":""}]} +== 11:09:13 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 14 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 20 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:08:58.941242608Z","End":"2026-10-28T10:08:59.162295156Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:04.163690855Z","End":"2026-10-28T10:09:04.325613961Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:09.326626652Z","End":"2026-10-28T10:09:09.484042047Z","ExitCode":1,"Output":""}]} +== 11:09:24 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 26 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 31 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 32 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .326626652Z","End":"2026-10-28T10:09:09.484042047Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:14.484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""}]} +== 11:09:36 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 37 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 43 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 43 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .326626652Z","End":"2026-10-28T10:09:09.484042047Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:14.484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""}]} +== 11:09:47 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 49 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 55 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 55 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .326626652Z","End":"2026-10-28T10:09:09.484042047Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:14.484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""}]} +== 11:09:59 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""}]} +== 11:10:10 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""}]} +== 11:10:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .484867956Z","End":"2026-10-28T10:09:14.652508788Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:19.653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""}]} +== 11:10:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""}]} +== 11:10:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .653576764Z","End":"2026-10-28T10:09:19.81208398Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:23.715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""}]} +== 11:10:57 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:54.21448817Z","End":"2026-10-28T10:10:56.075787952Z","ExitCode":0,"Output":""}]} +== 11:11:08 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:11:01.406260676Z","End":"2026-10-28T10:11:01.81643908Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:54.21448817Z","End":"2026-10-28T10:10:56.075787952Z","ExitCode":0,"Output":""}]} +== 11:11:20 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:11:01.406260676Z","End":"2026-10-28T10:11:01.81643908Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .715727654Z","End":"2026-10-28T10:09:23.884894117Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:09:53.885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:54.21448817Z","End":"2026-10-28T10:10:56.075787952Z","ExitCode":0,"Output":""}]} +== 11:11:31 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:11:01.406260676Z","End":"2026-10-28T10:11:01.81643908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:11:31.819511171Z","End":"2026-10-28T10:11:32.466539328Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:54.21448817Z","End":"2026-10-28T10:10:56.075787952Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:11:26.077336366Z","End":"2026-10-28T10:11:26.288132975Z","ExitCode":0,"Output":""}]} +== 11:11:43 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:11:01.406260676Z","End":"2026-10-28T10:11:01.81643908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:11:31.819511171Z","End":"2026-10-28T10:11:32.466539328Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .885791541Z","End":"2026-10-28T10:09:54.059688616Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:24.060853355Z","End":"2026-10-28T10:10:24.213504633Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:10:54.21448817Z","End":"2026-10-28T10:10:56.075787952Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:11:26.077336366Z","End":"2026-10-28T10:11:26.288132975Z","ExitCode":0,"Output":""}]} +== 11:11:54 +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog +adventurelog-frontend +== 11:12:06 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Created +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 seconds (health: starting) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 4 seconds (health: starting) +adventurelog null +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[]} +== 11:12:17 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 10 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 16 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:12:07.803353155Z","End":"2026-10-28T10:12:07.997008648Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:12.997757502Z","End":"2026-10-28T10:12:13.172783889Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:18.173591664Z","End":"2026-10-28T10:12:18.359125632Z","ExitCode":1,"Output":""}]} +== 11:12:28 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 22 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 28 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 28 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 997757502Z","End":"2026-10-28T10:12:13.172783889Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:18.173591664Z","End":"2026-10-28T10:12:18.359125632Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:23.360316531Z","End":"2026-10-28T10:12:23.538968474Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:28.539789985Z","End":"2026-10-28T10:12:28.716494731Z","ExitCode":1,"Output":""}]} +== 11:12:40 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 34 seconds (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 39 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 39 seconds (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:12:35.374165709Z","End":"2026-10-28T10:12:37.273163312Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 173591664Z","End":"2026-10-28T10:12:18.359125632Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:23.360316531Z","End":"2026-10-28T10:12:23.538968474Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:28.539789985Z","End":"2026-10-28T10:12:28.716494731Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:32.572687558Z","End":"2026-10-28T10:12:35.005756423Z","ExitCode":0,"Output":""}]} +== 11:12:52 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 45 seconds (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 51 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 51 seconds (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:12:35.374165709Z","End":"2026-10-28T10:12:37.273163312Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 173591664Z","End":"2026-10-28T10:12:18.359125632Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:23.360316531Z","End":"2026-10-28T10:12:23.538968474Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:28.539789985Z","End":"2026-10-28T10:12:28.716494731Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:32.572687558Z","End":"2026-10-28T10:12:35.005756423Z","ExitCode":0,"Output":""}]} +== 11:13:03 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Exited (0) 10 seconds ago +adventurelog-postgres postgis/postgis:16-3.5-alpine Exited (0) 2 seconds ago +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Exited (0) 11 seconds ago +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:12:35.374165709Z","End":"2026-10-28T10:12:37.273163312Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 173591664Z","End":"2026-10-28T10:12:18.359125632Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:23.360316531Z","End":"2026-10-28T10:12:23.538968474Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:28.539789985Z","End":"2026-10-28T10:12:28.716494731Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:12:32.572687558Z","End":"2026-10-28T10:12:35.005756423Z","ExitCode":0,"Output":""}]} +== 11:13:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 seconds (health: starting) +adventurelog {"Status":"starting","FailingStreak":0,"Log":[]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:13:13.443974745Z","End":"2026-10-28T10:13:13.635292313Z","ExitCode":1,"Output":""}]} +== 11:13:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:13:13.443974745Z","End":"2026-10-28T10:13:13.635292313Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:18.636414823Z","End":"2026-10-28T10:13:18.812598525Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:23.814273217Z","End":"2026-10-28T10:13:24.002336992Z","ExitCode":1,"Output":""}]} +== 11:13:38 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 25 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 30 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 30 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .814273217Z","End":"2026-10-28T10:13:24.002336992Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:29.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""}]} +== 11:13:49 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 36 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 41 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 42 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .814273217Z","End":"2026-10-28T10:13:24.002336992Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:29.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""}]} +== 11:14:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 47 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 53 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 53 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .814273217Z","End":"2026-10-28T10:13:24.002336992Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:29.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""}]} +== 11:14:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 58 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 9.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""}]} +== 11:14:23 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 9.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""}]} +== 11:14:34 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 9.003048546Z","End":"2026-10-28T10:13:29.180037879Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:34.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""}]} +== 11:14:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 4.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""}]} +== 11:14:57 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 4.18088024Z","End":"2026-10-28T10:13:34.356786719Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:13:38.212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""}]} +== 11:15:08 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""}]} +== 11:15:20 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""}]} +== 11:15:31 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .212513306Z","End":"2026-10-28T10:13:38.374655405Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:08.37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""}]} +== 11:15:43 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""}]} +== 11:15:54 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""}]} +== 11:16:06 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (unhealthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .37544756Z","End":"2026-10-28T10:14:08.527083962Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:14:38.527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""}]} +== 11:16:17 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""}]} +== 11:16:29 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 527873783Z","End":"2026-10-28T10:14:38.705928629Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:08.707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""}]} +== 11:16:40 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""}]} +== 11:16:51 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""}]} +== 11:17:03 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 707162027Z","End":"2026-10-28T10:15:08.914122163Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:15:38.915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""}]} +== 11:17:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog ) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:15:45.920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""}]} +== 11:17:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""}]} +== 11:17:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 920662219Z","End":"2026-10-28T10:15:47.862020219Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:17.862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 915413381Z","End":"2026-10-28T10:15:39.082373697Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:16:09.083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""}]} +== 11:17:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""}]} +== 11:18:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 083951216Z","End":"2026-10-28T10:16:09.291349949Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:39.293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""}]} +== 11:18:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 862907774Z","End":"2026-10-28T10:16:18.276369108Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:16:48.277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""}]} +== 11:18:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""}]} +== 11:18:34 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 293504346Z","End":"2026-10-28T10:16:39.478950098Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:09.480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""}]} +== 11:18:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 277379365Z","End":"2026-10-28T10:16:48.665625136Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:18.666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""}]} +== 11:18:57 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog .666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 480186332Z","End":"2026-10-28T10:17:09.634088672Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:39.634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""}]} +== 11:19:09 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .666725223Z","End":"2026-10-28T10:17:19.047867992Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:17:49.049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""}]} +== 11:19:20 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""}]} +== 11:19:32 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 634803211Z","End":"2026-10-28T10:17:39.796114321Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:09.797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""}]} +== 11:19:43 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .049410765Z","End":"2026-10-28T10:17:49.472369201Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:19.473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""}]} +== 11:19:54 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""}]} +== 11:20:05 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog .473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 797178902Z","End":"2026-10-28T10:18:09.952553221Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:39.953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""}]} +== 11:20:17 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog .473246888Z","End":"2026-10-28T10:18:19.862602124Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:18:49.86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""}]} +== 11:20:28 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog .86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 953472276Z","End":"2026-10-28T10:18:40.113095509Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:10.114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""}]} +== 11:20:40 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog .86362755Z","End":"2026-10-28T10:18:50.218018777Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:20.219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""}]} +== 11:20:51 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""}]} +== 11:21:02 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 114672306Z","End":"2026-10-28T10:19:10.288417745Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:40.289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""}]} +== 11:21:14 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog 219414752Z","End":"2026-10-28T10:19:20.606031527Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:19:50.607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""}]} +== 11:21:25 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog 607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""}]} +== 11:21:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog 607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .289788713Z","End":"2026-10-28T10:19:40.452206443Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""}]} +== 11:21:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog 607357451Z","End":"2026-10-28T10:19:51.032025355Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:21.034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""}]} +adventurelog-frontend :10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""}]} +== 11:22:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""}]} +adventurelog-frontend :10.453089159Z","End":"2026-10-28T10:20:10.627637894Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""}]} +== 11:22:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .034014651Z","End":"2026-10-28T10:20:21.415086255Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:20:51.415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 0:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""}]} +== 11:22:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 0:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""}]} +== 11:22:34 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 0:40.628709738Z","End":"2026-10-28T10:20:40.802726269Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""}]} +== 11:22:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .415760598Z","End":"2026-10-28T10:20:51.818642606Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:21.819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 1:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""}]} +== 11:22:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 1:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""}]} +== 11:23:07 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog .819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 1:10.80387661Z","End":"2026-10-28T10:21:10.980607025Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""}]} +== 11:23:18 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog .819474847Z","End":"2026-10-28T10:21:22.213821107Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:21:52.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""}]} +adventurelog-frontend :40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""}]} +== 11:23:30 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 2.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""}]} +adventurelog-frontend :40.982315Z","End":"2026-10-28T10:21:41.155966671Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:11.15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""}]} +== 11:23:41 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 2.215294339Z","End":"2026-10-28T10:21:52.61703429Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:22.618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""}]} +== 11:23:53 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog .618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""}]} +== 11:24:04 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog .618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .15734748Z","End":"2026-10-28T10:22:11.337377734Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:41.338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""}]} +== 11:24:16 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog .618547276Z","End":"2026-10-28T10:22:23.031971029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:22:53.033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""}]} +== 11:24:27 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog .033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""}]} +== 11:24:38 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog .033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 338411496Z","End":"2026-10-28T10:22:41.493834227Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:11.495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""}]} +== 11:24:50 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog .033206301Z","End":"2026-10-28T10:22:53.429005605Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:23.429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""}]} +== 11:25:01 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog .429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 495606273Z","End":"2026-10-28T10:23:11.674423558Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:41.675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""}]} +== 11:25:12 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog .429598203Z","End":"2026-10-28T10:23:23.82319048Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:23:53.823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""}]} +== 11:25:24 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""}]} +== 11:25:36 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 675956823Z","End":"2026-10-28T10:23:41.849132175Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:11.850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""}]} +== 11:25:47 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 823912012Z","End":"2026-10-28T10:23:54.257619404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:24.259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""}]} +== 11:25:58 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""}]} +== 11:26:09 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 850492774Z","End":"2026-10-28T10:24:12.030005192Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:42.031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""}]} +== 11:26:21 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 259416948Z","End":"2026-10-28T10:24:24.648823982Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:24:54.649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""}]} +== 11:26:32 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 031356734Z","End":"2026-10-28T10:24:42.206725778Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:12.207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""}]} +== 11:26:44 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""}]} +== 11:26:55 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 649869085Z","End":"2026-10-28T10:24:55.037358969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:25.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""}]} +== 11:27:06 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 5.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 207418406Z","End":"2026-10-28T10:25:12.378208684Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:42.378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""}]} +== 11:27:17 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 14 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 14 minutes (healthy) +adventurelog 5.039271801Z","End":"2026-10-28T10:25:25.449622531Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:25:55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""}]} +== 11:27:29 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 14 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 14 minutes (healthy) +adventurelog 55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""}]} +== 11:27:40 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 14 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 14 minutes (healthy) +adventurelog 55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .378791404Z","End":"2026-10-28T10:25:42.553450157Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:12.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""}]} +== 11:27:51 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 14 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 14 minutes (healthy) +adventurelog 55.450492784Z","End":"2026-10-28T10:25:55.841062332Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""}]} +== 11:28:03 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 14 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 14 minutes (healthy) +adventurelog :25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.554516451Z","End":"2026-10-28T10:26:12.711440907Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:42.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""}]} +== 11:28:14 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 15 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 15 minutes (healthy) +adventurelog :25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""}]} +== 11:28:25 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 15 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 15 minutes (healthy) +adventurelog :25.842749702Z","End":"2026-10-28T10:26:26.230429236Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:26:56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""}]} +== 11:28:36 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 15 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 15 minutes (healthy) +adventurelog :56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.712053016Z","End":"2026-10-28T10:26:42.897042793Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:12.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""}]} +== 11:28:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 15 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 15 minutes (healthy) +adventurelog :56.2317377Z","End":"2026-10-28T10:26:56.650084029Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:26.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""}]} +== 11:28:59 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 15 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 15 minutes (healthy) +adventurelog 6.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""}]} +== 11:29:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 15 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 16 minutes (healthy) +adventurelog 6.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 2.897841995Z","End":"2026-10-28T10:27:13.08495452Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:43.08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""}]} +== 11:29:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 16 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 16 minutes (healthy) +adventurelog 6.65150188Z","End":"2026-10-28T10:27:27.062368065Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:27:57.06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""}]} +== 11:29:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 16 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 16 minutes (healthy) +adventurelog .06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .08629231Z","End":"2026-10-28T10:27:43.261102536Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:13.262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""}]} +== 11:29:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 16 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 16 minutes (healthy) +adventurelog .06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""}]} +== 11:29:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 16 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 16 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 16 minutes (healthy) +adventurelog .06416426Z","End":"2026-10-28T10:27:57.446673923Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:27.447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""}]} +== 11:30:08 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 16 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 262553559Z","End":"2026-10-28T10:28:13.415230914Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:43.416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""}]} +== 11:30:19 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 17 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 447274401Z","End":"2026-10-28T10:28:27.849756324Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:28:57.851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""}]} +== 11:30:31 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 17 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""}]} +== 11:30:42 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 17 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 416591717Z","End":"2026-10-28T10:28:43.584300614Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:13.585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""}]} +== 11:30:53 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 17 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 851222366Z","End":"2026-10-28T10:28:58.250437361Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:28.251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""}]} +== 11:31:04 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 17 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 17 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 17 minutes (healthy) +adventurelog 251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 585843561Z","End":"2026-10-28T10:29:13.764672134Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:43.765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""}]} +== 11:31:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 minutes (healthy) +adventurelog 251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""}]} +== 11:31:27 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 minutes (healthy) +adventurelog 251400114Z","End":"2026-10-28T10:29:28.646189883Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:29:58.647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""}]} +== 11:31:38 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 minutes (healthy) +adventurelog .647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .765734002Z","End":"2026-10-28T10:29:43.931893003Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:13.932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""}]} +== 11:31:50 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 minutes (healthy) +adventurelog .647698154Z","End":"2026-10-28T10:29:59.049104908Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:29.049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""}]} +== 11:32:01 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 minutes (healthy) +adventurelog .049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""}]} +== 11:32:12 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 18 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 minutes (healthy) +adventurelog .049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .932848701Z","End":"2026-10-28T10:30:14.112816405Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:44.114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""}]} +== 11:32:24 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 19 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 minutes (healthy) +adventurelog .049800225Z","End":"2026-10-28T10:30:29.530649392Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:30:59.532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""}]} +== 11:32:35 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 19 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 minutes (healthy) +adventurelog .532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .114336468Z","End":"2026-10-28T10:30:44.271851097Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:14.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""}]} +== 11:32:46 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 19 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 minutes (healthy) +adventurelog .532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 4.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""}]} +== 11:32:58 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 19 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 19 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 19 minutes (healthy) +adventurelog .532215923Z","End":"2026-10-28T10:30:59.980934571Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:29.98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 4.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""}]} +== 11:33:09 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 19 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog .98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 4.27335433Z","End":"2026-10-28T10:31:14.434706002Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:31:44.435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""}]} +== 11:33:20 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 20 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog .98256339Z","End":"2026-10-28T10:31:30.393672514Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:00.394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""}]} +== 11:33:32 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 20 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog 394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""}]} +== 11:33:43 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 20 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog 394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .435834316Z","End":"2026-10-28T10:31:44.613284206Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:14.614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""}]} +== 11:33:54 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 20 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog 394411823Z","End":"2026-10-28T10:32:00.811765358Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:30.812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""}]} +== 11:34:05 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 20 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 20 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 20 minutes (healthy) +adventurelog 812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .614294407Z","End":"2026-10-28T10:32:14.782417015Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:32:44.783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""}]} +== 11:34:16 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 21 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 21 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 21 minutes (healthy) +adventurelog 812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""}]} +== 11:34:28 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 21 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 21 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 21 minutes (healthy) +adventurelog 812900195Z","End":"2026-10-28T10:32:31.309847357Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:01.311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""}]} +== 11:34:39 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 21 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 21 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 21 minutes (healthy) +adventurelog 311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .783186602Z","End":"2026-10-28T10:32:44.93718994Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:14.938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""}]} +== 11:34:51 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 21 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 21 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 21 minutes (healthy) +adventurelog 311428677Z","End":"2026-10-28T10:33:01.695638359Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:31.697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""}]} +== 11:35:02 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 21 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 21 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 21 minutes (healthy) +adventurelog 697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:03.123824266Z","End":"2026-10-28T10:35:03.535033008Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""}]} +== 11:35:13 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 22 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 22 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 22 minutes (healthy) +adventurelog 697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:03.123824266Z","End":"2026-10-28T10:35:03.535033008Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .938484558Z","End":"2026-10-28T10:33:15.109339425Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:33:45.110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""}]} +== 11:35:25 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 22 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 22 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 22 minutes (healthy) +adventurelog 697335988Z","End":"2026-10-28T10:33:32.246740922Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:02.247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:03.123824266Z","End":"2026-10-28T10:35:03.535033008Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:15.594404206Z","End":"2026-10-28T10:35:15.756335223Z","ExitCode":0,"Output":""}]} +== 11:35:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 22 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 22 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 22 minutes (healthy) +adventurelog 247917557Z","End":"2026-10-28T10:34:02.655356301Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:32.656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:03.123824266Z","End":"2026-10-28T10:35:03.535033008Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:33.536545247Z","End":"2026-10-28T10:35:34.029617965Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .110415861Z","End":"2026-10-28T10:33:45.266734882Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:15.268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:15.594404206Z","End":"2026-10-28T10:35:15.756335223Z","ExitCode":0,"Output":""}]} diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/walk.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/walk.txt new file mode 100644 index 00000000..ceac26ac --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run3-failed-slow-start/walk.txt @@ -0,0 +1,26 @@ +11:07:42 [5] the box's drill mirror now at 301ca7108 +11:07:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'} +11:10:38 [1] deployed, controller state=unhealthy, pinned={'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'} +11:10:38 [1] NOTE: the controller's own state is 'unhealthy', not 'running' — recorded, not treated as a failure; the fixture's front-door wait is the real gate +11:10:38 gate: travel not routed right now (404) — not cached, asked again next call +11:10:43 gate: travel not routed right now (404) — not cached, asked again next call +11:10:48 gate: travel not routed right now (404) — not cached, asked again next call +11:10:53 gate: travel not routed right now (404) — not cached, asked again next call +11:10:58 gate: travel is gated — passed as the household (cookie set) +11:11:01 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}} +11:11:09 adventurelog: createsuperuser :: Superuser created successfully. +11:11:14 adventurelog: seeded superuser drilla79f0e +11:11:24 adventurelog: readback of the seeded account found=True +11:11:25 [5] drill commit 576b1b628afb: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 (push rc=0) +11:11:35 [5] the box's drill mirror now at 576b1b628 +11:11:51 [sync] the badge needed 15.6s and 2 sync+rescan rounds to catch up to ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 — R-607's window, measured +11:11:51 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'} +11:11:51 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None +11:12:10 + 18.5s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None +11:12:12 + 20.5s phase=pulling label=Új verzió letöltése… err=None hold=None +11:12:55 + 63.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None +11:13:08 + 76.9s phase=starting label=Indítás az új verzióval… err=None hold=None +11:13:14 + 83.0s phase=verifying label=Működés ellenőrzése… err=None hold=None +11:15:48 + 236.9s phase=done label=Frissítve err=None hold=None +11:16:07 [9] verdict failed -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/al3/verdict.json +11:16:07 RESULT failed — the app is 'unhealthy' after the update diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/box-verdict-adventurelog.json b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/box-verdict-adventurelog.json new file mode 100644 index 00000000..a70d8d4b --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/box-verdict-adventurelog.json @@ -0,0 +1,294 @@ +{ + "app": "adventurelog", + "walk": "security", + "box_walk_version": 1, + "verdict": "proven", + "venue": "box 9202 (drill catalog), the guarded Update", + "from": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0" + }, + "to": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1" + }, + "observables_before": { + "pinned_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose_image_lines": [ + "image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.0@sha256:0250d9cb0d745a8d768f31d3cdc68ac14bfa8b43dedfe0f550158e3861c12db7", + "image: postgis/postgis:16-3.5-alpine@sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293", + "image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0@sha256:51ee22428b4192f4372b54f84c8b90cd710311ad99993c5045f53b51717dd3f7" + ], + "docker_inspect": [ + "adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0@sha256:0250d9cb0d745a8d768f31d3cdc68ac14bfa8b43dedfe0f550158e3861c12db7 running=true restarts=0", + "adventurelog-postgres postgis/postgis:16-3.5-alpine@sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293 running=true restarts=0", + "adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0@sha256:51ee22428b4192f4372b54f84c8b90cd710311ad99993c5045f53b51717dd3f7 running=true restarts=0" + ] + }, + "setup_gate_before": { + "browser": { + "status": "302", + "redirect": "https://felhom.enkisfelhom.hu/__gate/start?…" + }, + "script": { + "status": "401", + "redirect": null + } + }, + "seed": "read_back", + "drill_commit": "b0c113ad39e2", + "sync_waited_s": 4.4, + "badge_before": { + "hu": [ + { + "title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.", + "text": "Frissítés elérhető — ma" + } + ], + "en": [ + { + "title": "A newer version of this app is available. Select the Update button to start it.", + "text": "Update available — today" + } + ] + }, + "measured_at": "2026-10-28T10:40:49Z", + "update": { + "accepted": true, + "http": "202", + "phases": [ + { + "t": 0.0, + "phase": "backing-up", + "label": "Biztonsági mentés készül a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 16.4, + "phase": "safety-dump", + "label": "Adatbázis pillanatkép…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 18.5, + "phase": "pulling", + "label": "Új verzió letöltése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 52.4, + "phase": "copying", + "label": "Az adatok másolása a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 62.6, + "phase": "starting", + "label": "Indítás az új verzióval…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 68.8, + "phase": "verifying", + "label": "Működés ellenőrzése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 230.8, + "phase": "done", + "label": "Frissítve", + "updating": false, + "error": null, + "hold": null + } + ], + "duration_s": 230.8, + "final_phase": "done", + "update_error": null, + "hold_reason": null, + "state": "running" + }, + "observables_after": { + "pinned_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog_images": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose_image_lines": [ + "image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "image: postgis/postgis:16-3.5-alpine", + "image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1" + ], + "docker_inspect": [ + "adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 running=true restarts=0", + "adventurelog-postgres postgis/postgis:16-3.5-alpine running=true restarts=0", + "adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 running=true restarts=0" + ] + }, + "badge_after": { + "hu": [ + { + "title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.", + "text": "Naprakész" + } + ], + "en": [ + { + "title": "This app is running the newest version available.", + "text": "Up to date" + } + ] + }, + "state_after": "running", + "hold_after": null, + "to_digests": { + "adventurelog": "sha256:8c45e21f95875ccd35a6e68f7da72504df9e837d6ee703379512cb8de6a67082", + "adventurelog-postgres": "sha256:47e961a569fd52ff31f0fe205ed91eeab17d9f5fff6722e6d7ea6b588748b293", + "adventurelog-frontend": "sha256:568b1be1c42f456df066a8bb55be8ce0046b2c6fc96b1650db5d2162eb4f1ce9" + }, + "four_observables": { + "pinned": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "installed": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "catalog": { + "adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "adventurelog-postgres": "postgis/postgis:16-3.5-alpine" + }, + "live_compose": [ + "ghcr.io/seanmorley15/adventurelog-backend:v0.13.1", + "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1", + "postgis/postgis:16-3.5-alpine" + ] + }, + "seed_read_after": true, + "setup_gate_after": { + "browser": { + "status": "302", + "redirect": "https://felhom.enkisfelhom.hu/__gate/start?…" + }, + "script": { + "status": "401", + "redirect": null + } + }, + "memory": { + "soak_s": 600, + "interval_s": 10, + "samples": 174, + "containers": { + "adventurelog": { + "samples": 58, + "anon_peak_bytes": 296996864, + "limit_bytes": 402653184, + "anon_peak_pct": 73.8, + "cgroup_peak_pct": 100.0, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-b3682886e473df695929158844fb8daff56868bb768c7fee3e35ca4beda34087.scope" + }, + "adventurelog-postgres": { + "samples": 58, + "anon_peak_bytes": 6950912, + "limit_bytes": 268435456, + "anon_peak_pct": 2.6, + "cgroup_peak_pct": 100.0, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-7d9e076226386b605e0ee334f77e82a9090f783b3eb3e9e6d552fb629cf7ebca.scope" + }, + "adventurelog-frontend": { + "samples": 58, + "anon_peak_bytes": 34222080, + "limit_bytes": 268435456, + "anon_peak_pct": 12.7, + "cgroup_peak_pct": 20.6, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-d2764906533d991053c5ab5a30b969d5ecba2352827a25d0cafd2dd83872f2f5.scope" + } + }, + "oom_kills": 0, + "restarts": 0, + "peak_pct": 73.8 + }, + "why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back", + "log": [ + "11:36:10 [1] removing the existing adventurelog first (scratch box)", + "11:36:14 [X] stop -> 200 {'ok': True, 'message': 'Stack adventurelog stop completed'}", + "11:36:46 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'adventurelog', 'volumes_removed': ['adventurelog_adventurelog_media', 'adventurelog_adventurelog_postgres_data'], 'hdd_paths_r", + "11:36:54 [X] after remove: deployed=False leftovers=''", + "11:37:02 [5] the box's drill mirror now at 528bc06a4", + "11:37:07 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", + "11:40:08 [1] deployed, controller state=running, pinned={'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'}", + "11:40:08 gate: travel is gated — passed as the household (cookie set)", + "11:40:12 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}", + "11:40:19 adventurelog: createsuperuser :: Superuser created successfully.", + "11:40:24 adventurelog: seeded superuser drillb042f6", + "11:40:35 adventurelog: readback of the seeded account found=True", + "11:40:36 [5] drill commit b0c113ad39e2: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 (push rc=0)", + "11:40:44 [5] the box's drill mirror now at b0c113ad3", + "11:40:49 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}", + "11:40:49 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None", + "11:41:05 + 16.4s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None", + "11:41:07 + 18.5s phase=pulling label=Új verzió letöltése… err=None hold=None", + "11:41:41 + 52.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None", + "11:41:52 + 62.6s phase=starting label=Indítás az új verzióval… err=None hold=None", + "11:41:58 + 68.8s phase=verifying label=Működés ellenőrzése… err=None hold=None", + "11:44:40 + 230.8s phase=done label=Frissítve err=None hold=None", + "11:45:08 adventurelog: readback of the seeded account found=True", + "11:45:08 [7] memory soak 600 s …", + "11:55:16 [7] soak: peak 73.8% of the limit (anon), kills 0, restarts 0" + ] +} \ No newline at end of file diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/health-every-10s.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/health-every-10s.txt new file mode 100644 index 00000000..dcadc8e3 --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/health-every-10s.txt @@ -0,0 +1,834 @@ +== 11:36:05 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 22 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 22 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 22 minutes (healthy) +adventurelog 656405886Z","End":"2026-10-28T10:34:33.122172073Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:03.123824266Z","End":"2026-10-28T10:35:03.535033008Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:33.536545247Z","End":"2026-10-28T10:35:34.029617965Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:36:04.031267873Z","End":"2026-10-28T10:36:04.440499302Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .268410209Z","End":"2026-10-28T10:34:15.438902712Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:34:45.43986902Z","End":"2026-10-28T10:34:45.593200289Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:15.594404206Z","End":"2026-10-28T10:35:15.756335223Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:35:45.757848915Z","End":"2026-10-28T10:35:45.915397928Z","ExitCode":0,"Output":""}]} +== 11:36:17 +adventurelog +adventurelog-frontend +== 11:36:28 +adventurelog +adventurelog-frontend +== 11:36:39 +adventurelog +adventurelog-frontend +== 11:36:50 +adventurelog +adventurelog-frontend +== 11:37:02 +adventurelog +adventurelog-frontend +== 11:37:13 +adventurelog +adventurelog-frontend +== 11:37:24 +adventurelog +adventurelog-frontend +== 11:37:36 +adventurelog +adventurelog-frontend +== 11:37:47 +adventurelog +adventurelog-frontend +== 11:37:59 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Created +adventurelog-postgres postgis/postgis:16-3.5-alpine Up Less than a second (health: starting) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 1 second (health: starting) +adventurelog null +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[]} +== 11:38:10 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 6 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 12 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:38:04.404017471Z","End":"2026-10-28T10:38:04.589818129Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:09.591175494Z","End":"2026-10-28T10:38:09.756952604Z","ExitCode":1,"Output":""}]} +== 11:38:21 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 18 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 23 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 24 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .404017471Z","End":"2026-10-28T10:38:04.589818129Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:09.591175494Z","End":"2026-10-28T10:38:09.756952604Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:14.758380202Z","End":"2026-10-28T10:38:14.921793177Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:19.92333484Z","End":"2026-10-28T10:38:20.098521236Z","ExitCode":1,"Output":""}]} +== 11:38:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 29 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 35 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 35 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .758380202Z","End":"2026-10-28T10:38:14.921793177Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:19.92333484Z","End":"2026-10-28T10:38:20.098521236Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:25.100146968Z","End":"2026-10-28T10:38:25.276756261Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:30.278302954Z","End":"2026-10-28T10:38:30.463771755Z","ExitCode":1,"Output":""}]} +== 11:38:44 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 41 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 46 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 47 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .278302954Z","End":"2026-10-28T10:38:30.463771755Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:35.465196818Z","End":"2026-10-28T10:38:35.657628957Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:40.659232487Z","End":"2026-10-28T10:38:40.81609282Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:45.817488768Z","End":"2026-10-28T10:38:45.973674687Z","ExitCode":1,"Output":""}]} +== 11:38:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 52 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 57 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 58 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 0.659232487Z","End":"2026-10-28T10:38:40.81609282Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:45.817488768Z","End":"2026-10-28T10:38:45.973674687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:50.974903911Z","End":"2026-10-28T10:38:51.12961236Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:56.130516209Z","End":"2026-10-28T10:38:56.284527863Z","ExitCode":1,"Output":""}]} +== 11:39:07 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 0.974903911Z","End":"2026-10-28T10:38:51.12961236Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:38:56.130516209Z","End":"2026-10-28T10:38:56.284527863Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:01.285369855Z","End":"2026-10-28T10:39:01.453309237Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:06.45448525Z","End":"2026-10-28T10:39:06.642619955Z","ExitCode":1,"Output":""}]} +== 11:39:18 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .285369855Z","End":"2026-10-28T10:39:01.453309237Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:06.45448525Z","End":"2026-10-28T10:39:06.642619955Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:11.644131261Z","End":"2026-10-28T10:39:11.800732965Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:16.801330726Z","End":"2026-10-28T10:39:16.961615165Z","ExitCode":1,"Output":""}]} +== 11:39:30 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 644131261Z","End":"2026-10-28T10:39:11.800732965Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:16.801330726Z","End":"2026-10-28T10:39:16.961615165Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:21.963010432Z","End":"2026-10-28T10:39:22.143371158Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:27.144709276Z","End":"2026-10-28T10:39:27.318165435Z","ExitCode":1,"Output":""}]} +== 11:39:41 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 963010432Z","End":"2026-10-28T10:39:22.143371158Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:27.144709276Z","End":"2026-10-28T10:39:27.318165435Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:32.319813169Z","End":"2026-10-28T10:39:32.521768019Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:37.523497657Z","End":"2026-10-28T10:39:37.695422164Z","ExitCode":1,"Output":""}]} +== 11:39:52 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .523497657Z","End":"2026-10-28T10:39:37.695422164Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:42.697307636Z","End":"2026-10-28T10:39:42.855474717Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:47.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""}]} +== 11:40:04 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:39:59.41035507Z","End":"2026-10-28T10:40:01.430483465Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .697307636Z","End":"2026-10-28T10:39:42.855474717Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:47.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:58.209516012Z","End":"2026-10-28T10:40:00.398212917Z","ExitCode":0,"Output":""}]} +== 11:40:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:39:59.41035507Z","End":"2026-10-28T10:40:01.430483465Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .697307636Z","End":"2026-10-28T10:39:42.855474717Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:47.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:58.209516012Z","End":"2026-10-28T10:40:00.398212917Z","ExitCode":0,"Output":""}]} +== 11:40:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:39:59.41035507Z","End":"2026-10-28T10:40:01.430483465Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .697307636Z","End":"2026-10-28T10:39:42.855474717Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:47.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:58.209516012Z","End":"2026-10-28T10:40:00.398212917Z","ExitCode":0,"Output":""}]} +== 11:40:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:39:59.41035507Z","End":"2026-10-28T10:40:01.430483465Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:40:31.432529372Z","End":"2026-10-28T10:40:32.016396076Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 7.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:58.209516012Z","End":"2026-10-28T10:40:00.398212917Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:40:30.398870563Z","End":"2026-10-28T10:40:30.65332897Z","ExitCode":0,"Output":""}]} +== 11:40:49 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:39:59.41035507Z","End":"2026-10-28T10:40:01.430483465Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:40:31.432529372Z","End":"2026-10-28T10:40:32.016396076Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 7.856702157Z","End":"2026-10-28T10:39:48.02486444Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:53.025873177Z","End":"2026-10-28T10:39:53.208572829Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:39:58.209516012Z","End":"2026-10-28T10:40:00.398212917Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:40:30.398870563Z","End":"2026-10-28T10:40:30.65332897Z","ExitCode":0,"Output":""}]} +== 11:41:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Created +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 seconds (health: starting) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 2 seconds (health: starting) +adventurelog null +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[]} +== 11:41:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 8 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 14 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 14 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:41:04.032432528Z","End":"2026-10-28T10:41:04.21591566Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:09.216552655Z","End":"2026-10-28T10:41:09.399962899Z","ExitCode":1,"Output":""}]} +== 11:41:23 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 20 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 25 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 25 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1347, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 4.032432528Z","End":"2026-10-28T10:41:04.21591566Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:09.216552655Z","End":"2026-10-28T10:41:09.399962899Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:14.400522578Z","End":"2026-10-28T10:41:14.579989366Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:19.58054618Z","End":"2026-10-28T10:41:19.756658995Z","ExitCode":1,"Output":""}]} +== 11:41:34 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 32 seconds (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 38 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 37 seconds (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:41:31.484923759Z","End":"2026-10-28T10:41:32.43013941Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .400522578Z","End":"2026-10-28T10:41:14.579989366Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:19.58054618Z","End":"2026-10-28T10:41:19.756658995Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:24.757298184Z","End":"2026-10-28T10:41:24.938796689Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:29.939377027Z","End":"2026-10-28T10:41:32.136664813Z","ExitCode":0,"Output":""}]} +== 11:41:46 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Exited (0) 6 seconds ago +adventurelog-postgres postgis/postgis:16-3.5-alpine Exited (0) 1 second ago +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Exited (0) 7 seconds ago +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1321, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:41:31.484923759Z","End":"2026-10-28T10:41:32.43013941Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .400522578Z","End":"2026-10-28T10:41:14.579989366Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:19.58054618Z","End":"2026-10-28T10:41:19.756658995Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:24.757298184Z","End":"2026-10-28T10:41:24.938796689Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:41:29.939377027Z","End":"2026-10-28T10:41:32.136664813Z","ExitCode":0,"Output":""}]} +== 11:41:58 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 seconds (health: starting) +adventurelog {"Status":"starting","FailingStreak":0,"Log":[]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:41:57.468753033Z","End":"2026-10-28T10:41:57.672878761Z","ExitCode":1,"Output":""}]} +== 11:42:09 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 18 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 18 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend {"Status":"starting","FailingStreak":0,"Log":[{"Start":"2026-10-28T10:41:57.468753033Z","End":"2026-10-28T10:41:57.672878761Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:02.674029366Z","End":"2026-10-28T10:42:02.836235552Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:07.837593239Z","End":"2026-10-28T10:42:08.004288201Z","ExitCode":1,"Output":""}]} +== 11:42:21 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 24 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 30 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 30 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .674029366Z","End":"2026-10-28T10:42:02.836235552Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:07.837593239Z","End":"2026-10-28T10:42:08.004288201Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:13.005685321Z","End":"2026-10-28T10:42:13.177890688Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:18.179191427Z","End":"2026-10-28T10:42:18.34762421Z","ExitCode":1,"Output":""}]} +== 11:42:32 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 35 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 41 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 41 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 13.005685321Z","End":"2026-10-28T10:42:13.177890688Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:18.179191427Z","End":"2026-10-28T10:42:18.34762421Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:23.348269822Z","End":"2026-10-28T10:42:23.515538477Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:28.51630633Z","End":"2026-10-28T10:42:28.71241422Z","ExitCode":1,"Output":""}]} +== 11:42:43 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 47 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 53 seconds (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 53 seconds (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 8.51630633Z","End":"2026-10-28T10:42:28.71241422Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:33.713141966Z","End":"2026-10-28T10:42:33.903469942Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:38.904421491Z","End":"2026-10-28T10:42:39.086064458Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:44.086839164Z","End":"2026-10-28T10:42:44.257251495Z","ExitCode":1,"Output":""}]} +== 11:42:55 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 59 seconds (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 904421491Z","End":"2026-10-28T10:42:39.086064458Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:44.086839164Z","End":"2026-10-28T10:42:44.257251495Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:49.258413972Z","End":"2026-10-28T10:42:49.434136671Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:54.435127384Z","End":"2026-10-28T10:42:54.607893921Z","ExitCode":1,"Output":""}]} +== 11:43:06 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .258413972Z","End":"2026-10-28T10:42:49.434136671Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:54.435127384Z","End":"2026-10-28T10:42:54.607893921Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:42:59.609493142Z","End":"2026-10-28T10:42:59.786489997Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:04.787641283Z","End":"2026-10-28T10:43:04.98778334Z","ExitCode":1,"Output":""}]} +== 11:43:18 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .609493142Z","End":"2026-10-28T10:42:59.786489997Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:04.787641283Z","End":"2026-10-28T10:43:04.98778334Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:09.989151887Z","End":"2026-10-28T10:43:10.165609382Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:15.166685737Z","End":"2026-10-28T10:43:15.327147871Z","ExitCode":1,"Output":""}]} +== 11:43:29 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend .166685737Z","End":"2026-10-28T10:43:15.327147871Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:20.328546103Z","End":"2026-10-28T10:43:20.49681617Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:25.498505021Z","End":"2026-10-28T10:43:25.661970536Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:30.663080358Z","End":"2026-10-28T10:43:30.934196302Z","ExitCode":1,"Output":""}]} +== 11:43:41 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up About a minute (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up About a minute (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 498505021Z","End":"2026-10-28T10:43:25.661970536Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:30.663080358Z","End":"2026-10-28T10:43:30.934196302Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:35.937078883Z","End":"2026-10-28T10:43:36.127810081Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:41.129268252Z","End":"2026-10-28T10:43:41.294430359Z","ExitCode":1,"Output":""}]} +== 11:43:53 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up About a minute (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 937078883Z","End":"2026-10-28T10:43:36.127810081Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:41.129268252Z","End":"2026-10-28T10:43:41.294430359Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:46.295430275Z","End":"2026-10-28T10:43:46.459479641Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:51.460060145Z","End":"2026-10-28T10:43:51.640040833Z","ExitCode":1,"Output":""}]} +== 11:44:04 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 295430275Z","End":"2026-10-28T10:43:46.459479641Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:51.460060145Z","End":"2026-10-28T10:43:51.640040833Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:43:56.641015511Z","End":"2026-10-28T10:43:56.813316839Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:01.814897341Z","End":"2026-10-28T10:44:02.000835528Z","ExitCode":1,"Output":""}]} +== 11:44:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 641015511Z","End":"2026-10-28T10:43:56.813316839Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:01.814897341Z","End":"2026-10-28T10:44:02.000835528Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:07.001784037Z","End":"2026-10-28T10:44:07.165320314Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:12.166267561Z","End":"2026-10-28T10:44:12.350812728Z","ExitCode":1,"Output":""}]} +== 11:44:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (health: starting) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (health: starting) +adventurelog result = func(*args) + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1360, in http_open + return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"}]} +adventurelog-frontend 166267561Z","End":"2026-10-28T10:44:12.350812728Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:17.351704951Z","End":"2026-10-28T10:44:17.517062216Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:22.518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""}]} +== 11:44:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 351704951Z","End":"2026-10-28T10:44:17.517062216Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:22.518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""}]} +== 11:44:49 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 2 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 2 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 2 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 351704951Z","End":"2026-10-28T10:44:17.517062216Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:22.518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""}]} +== 11:45:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog return self.do_open(http.client.HTTPConnection, req) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 351704951Z","End":"2026-10-28T10:44:17.517062216Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:22.518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""}]} +== 11:45:12 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""}]} +== 11:45:23 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog ^^^^^ + File \"/usr/local/lib/python3.13/urllib/request.py\", line 1334, in do_open + raise URLError(err) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 518627189Z","End":"2026-10-28T10:44:22.677344687Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:27.678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""}]} +== 11:45:34 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog rr) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""}]} +== 11:45:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 3 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 3 minutes (healthy) +adventurelog rr) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""}]} +== 11:45:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog rr) +urllib.error.URLError: +"},{"Start":"2026-10-28T10:44:30.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 678873432Z","End":"2026-10-28T10:44:27.841248416Z","ExitCode":1,"Output":""},{"Start":"2026-10-28T10:44:32.842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""}]} +== 11:46:07 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 0.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""}]} +== 11:46:19 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 0.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""}]} +== 11:46:30 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog 0.319633035Z","End":"2026-10-28T10:44:33.81157549Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:03.813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 842498244Z","End":"2026-10-28T10:44:34.777169969Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:04.778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""}]} +== 11:46:41 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 4 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 4 minutes (healthy) +adventurelog .813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""}]} +== 11:46:53 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 4 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog .813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""}]} +== 11:47:04 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog .813283184Z","End":"2026-10-28T10:45:04.231329238Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .778420841Z","End":"2026-10-28T10:45:04.948920586Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:45:34.950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""}]} +== 11:47:15 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog .232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""}]} +== 11:47:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog .232254254Z","End":"2026-10-28T10:45:34.68142591Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:04.682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .950538411Z","End":"2026-10-28T10:45:35.132297487Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:05.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""}]} +== 11:47:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""}]} +== 11:47:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 5 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 5 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 5 minutes (healthy) +adventurelog 682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""}]} +== 11:48:00 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog 682653157Z","End":"2026-10-28T10:46:05.058903841Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.133108508Z","End":"2026-10-28T10:46:05.300084129Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:46:35.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""}]} +== 11:48:11 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog 060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""}]} +== 11:48:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog 060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""}]} +== 11:48:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog 060398864Z","End":"2026-10-28T10:46:35.494494803Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.301439347Z","End":"2026-10-28T10:46:35.47781068Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:05.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""}]} +== 11:48:45 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 6 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 6 minutes (healthy) +adventurelog 495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""}]} +== 11:48:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 6 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 495510501Z","End":"2026-10-28T10:47:05.911098934Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.479831916Z","End":"2026-10-28T10:47:05.656073093Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:47:35.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""}]} +== 11:49:07 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""}]} +== 11:49:18 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""}]} +== 11:49:30 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog 912141142Z","End":"2026-10-28T10:47:36.320907863Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:06.321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 5.657665359Z","End":"2026-10-28T10:47:35.82297844Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""}]} +== 11:49:41 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 7 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 7 minutes (healthy) +adventurelog .321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""}]} +== 11:49:52 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 7 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""}]} +== 11:50:03 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .321798485Z","End":"2026-10-28T10:48:06.724193145Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 05.824674593Z","End":"2026-10-28T10:48:06.004832936Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:48:36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""}]} +== 11:50:14 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""}]} +== 11:50:26 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 36.006513569Z","End":"2026-10-28T10:48:36.20253213Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:06.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""}]} +== 11:50:37 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .725607535Z","End":"2026-10-28T10:48:37.155139667Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:07.156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""}]} +== 11:50:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 8 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 8 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 8 minutes (healthy) +adventurelog .156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""}]} +== 11:50:59 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog .156368227Z","End":"2026-10-28T10:49:07.510499404Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:37.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.203858324Z","End":"2026-10-28T10:49:06.358568765Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:49:36.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""}]} +== 11:51:10 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog 7.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""}]} +== 11:51:22 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog 7.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""}]} +== 11:51:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog 7.51145628Z","End":"2026-10-28T10:49:37.865740285Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:07.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 6.3600543Z","End":"2026-10-28T10:49:36.541627645Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:06.542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""}]} +== 11:51:44 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 9 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 9 minutes (healthy) +adventurelog 7.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""}]} +== 11:51:56 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 9 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 7.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 542984226Z","End":"2026-10-28T10:50:06.742156022Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:36.743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""}]} +== 11:52:07 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 7.866646045Z","End":"2026-10-28T10:50:08.284779604Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:50:38.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""}]} +== 11:52:18 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 8.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""}]} +== 11:52:29 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 8.286206658Z","End":"2026-10-28T10:50:38.671363078Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:08.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 743603084Z","End":"2026-10-28T10:50:36.905819268Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:06.906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""}]} +== 11:52:40 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 10 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 10 minutes (healthy) +adventurelog 8.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""}]} +== 11:52:52 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 10 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 8.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""}]} +== 11:53:03 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 8.673040034Z","End":"2026-10-28T10:51:09.05316875Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:39.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 906496095Z","End":"2026-10-28T10:51:07.065632063Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:51:37.066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""}]} +== 11:53:14 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 9.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""}]} +== 11:53:25 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 9.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 066353946Z","End":"2026-10-28T10:51:37.226798424Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:07.227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""}]} +== 11:53:36 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 9.054489695Z","End":"2026-10-28T10:51:39.41492276Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:09.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""}]} +== 11:53:48 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 11 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 11 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 11 minutes (healthy) +adventurelog 9.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""}]} +== 11:53:59 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 9.416040451Z","End":"2026-10-28T10:52:09.791574902Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:39.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 227895946Z","End":"2026-10-28T10:52:07.399287736Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:52:37.400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""}]} +== 11:54:10 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 9.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""}]} +== 11:54:21 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 9.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""}]} +== 11:54:33 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 9.792713802Z","End":"2026-10-28T10:52:40.197105403Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""}]} +adventurelog-frontend 400941168Z","End":"2026-10-28T10:52:37.564207545Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:07.565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""}]} +== 11:54:44 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 12 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 12 minutes (healthy) +adventurelog 10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:41.362608908Z","End":"2026-10-28T10:54:41.73204822Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:38.067813826Z","End":"2026-10-28T10:54:38.24035741Z","ExitCode":0,"Output":""}]} +== 11:54:55 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 12 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:41.362608908Z","End":"2026-10-28T10:54:41.73204822Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:38.067813826Z","End":"2026-10-28T10:54:38.24035741Z","ExitCode":0,"Output":""}]} +== 11:55:06 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 10.198643126Z","End":"2026-10-28T10:53:10.57800262Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:40.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:41.362608908Z","End":"2026-10-28T10:54:41.73204822Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .565641212Z","End":"2026-10-28T10:53:07.728437872Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:53:37.729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:38.067813826Z","End":"2026-10-28T10:54:38.24035741Z","ExitCode":0,"Output":""}]} +== 11:55:17 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 0.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:41.362608908Z","End":"2026-10-28T10:54:41.73204822Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:55:11.733753851Z","End":"2026-10-28T10:55:12.125759123Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:38.067813826Z","End":"2026-10-28T10:54:38.24035741Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:55:08.242082878Z","End":"2026-10-28T10:55:08.416551397Z","ExitCode":0,"Output":""}]} +== 11:55:29 +adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.1 Up 13 minutes (healthy) +adventurelog-postgres postgis/postgis:16-3.5-alpine Up 13 minutes (healthy) +adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 Up 13 minutes (healthy) +adventurelog 0.579598724Z","End":"2026-10-28T10:53:40.94121811Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:10.942414178Z","End":"2026-10-28T10:54:11.361836019Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:41.362608908Z","End":"2026-10-28T10:54:41.73204822Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:55:11.733753851Z","End":"2026-10-28T10:55:12.125759123Z","ExitCode":0,"Output":""}]} +adventurelog-frontend .729624071Z","End":"2026-10-28T10:53:37.911835701Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:07.912634619Z","End":"2026-10-28T10:54:08.066579195Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:54:38.067813826Z","End":"2026-10-28T10:54:38.24035741Z","ExitCode":0,"Output":""},{"Start":"2026-10-28T10:55:08.242082878Z","End":"2026-10-28T10:55:08.416551397Z","ExitCode":0,"Output":""}]} diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/walk.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/walk.txt new file mode 100644 index 00000000..66ccc445 --- /dev/null +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/adventurelog/run4-proven-start-period-300/walk.txt @@ -0,0 +1,27 @@ +11:36:10 [1] removing the existing adventurelog first (scratch box) +11:36:14 [X] stop -> 200 {'ok': True, 'message': 'Stack adventurelog stop completed'} +11:36:46 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'adventurelog', 'volumes_removed': ['adventurelog_adventurelog_media', 'adventurelog_adventurelog_postgres_data'], 'hdd_paths_r +11:36:54 [X] after remove: deployed=False leftovers='' +11:37:02 [5] the box's drill mirror now at 528bc06a4 +11:37:07 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'} +11:40:08 [1] deployed, controller state=running, pinned={'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'} +11:40:08 gate: travel is gated — passed as the household (cookie set) +11:40:12 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}} +11:40:19 adventurelog: createsuperuser :: Superuser created successfully. +11:40:24 adventurelog: seeded superuser drillb042f6 +11:40:35 adventurelog: readback of the seeded account found=True +11:40:36 [5] drill commit b0c113ad39e2: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.1 (push rc=0) +11:40:44 [5] the box's drill mirror now at b0c113ad3 +11:40:49 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'} +11:40:49 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None +11:41:05 + 16.4s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None +11:41:07 + 18.5s phase=pulling label=Új verzió letöltése… err=None hold=None +11:41:41 + 52.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None +11:41:52 + 62.6s phase=starting label=Indítás az új verzióval… err=None hold=None +11:41:58 + 68.8s phase=verifying label=Működés ellenőrzése… err=None hold=None +11:44:40 + 230.8s phase=done label=Frissítve err=None hold=None +11:45:08 adventurelog: readback of the seeded account found=True +11:45:08 [7] memory soak 600 s … +11:55:16 [7] soak: peak 73.8% of the limit (anon), kills 0, restarts 0 +11:55:16 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/al4/verdict.json +11:55:16 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/box-verdict-dawarich.json b/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/box-verdict-dawarich.json index 74fd48c3..65040bd3 100644 --- a/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/box-verdict-dawarich.json +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/box-verdict-dawarich.json @@ -2,7 +2,7 @@ "app": "dawarich", "walk": "security", "box_walk_version": 1, - "verdict": "inconclusive", + "verdict": "proven", "venue": "box 9202 (drill catalog), the guarded Update", "from": { "dawarich": "freikin/dawarich:1.15.3", @@ -44,6 +44,181 @@ ] }, "setup_gate_before": { + "browser": { + "status": "302", + "redirect": "https://felhom.enkisfelhom.hu/__gate/start?…" + }, + "script": { + "status": "401", + "redirect": null + } + }, + "seed": "read_back", + "drill_commit": "301ca71080d3", + "sync_waited_s": 4.5, + "badge_before": { + "hu": [ + { + "title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.", + "text": "Frissítés elérhető — ma" + } + ], + "en": [ + { + "title": "A newer version of this app is available. Select the Update button to start it.", + "text": "Update available — today" + } + ] + }, + "measured_at": "2026-10-28T09:52:40Z", + "update": { + "accepted": true, + "http": "202", + "phases": [ + { + "t": 0.0, + "phase": "backing-up", + "label": "Biztonsági mentés készül a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 55.3, + "phase": "safety-dump", + "label": "Adatbázis pillanatkép…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 59.4, + "phase": "pulling", + "label": "Új verzió letöltése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 111.6, + "phase": "copying", + "label": "Az adatok másolása a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 128.0, + "phase": "starting", + "label": "Indítás az új verzióval…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 171.0, + "phase": "verifying", + "label": "Működés ellenőrzése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 176.2, + "phase": "done", + "label": "Frissítve", + "updating": false, + "error": null, + "hold": null + } + ], + "duration_s": 176.2, + "final_phase": "done", + "update_error": null, + "hold_reason": null, + "state": "running" + }, + "observables_after": { + "pinned_images": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "installed_images": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "catalog_images": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "live_compose_image_lines": [ + "image: freikin/dawarich:1.19.0", + "image: freikin/dawarich:1.19.0", + "image: postgis/postgis:17-3.5-alpine", + "image: redis:7.4-alpine" + ], + "docker_inspect": [ + "dawarich-sidekiq freikin/dawarich:1.19.0 running=true restarts=0", + "dawarich freikin/dawarich:1.19.0 running=true restarts=0", + "dawarich-db postgis/postgis:17-3.5-alpine running=true restarts=0", + "dawarich-redis redis:7.4-alpine running=true restarts=0" + ] + }, + "badge_after": { + "hu": [ + { + "title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.", + "text": "Naprakész" + } + ], + "en": [ + { + "title": "This app is running the newest version available.", + "text": "Up to date" + } + ] + }, + "state_after": "running", + "hold_after": null, + "to_digests": { + "dawarich": "sha256:d9385242202ae385a5d8064f41a59a0b58218399e60e7e499d2a6afb449bc304", + "dawarich-sidekiq": "sha256:d9385242202ae385a5d8064f41a59a0b58218399e60e7e499d2a6afb449bc304", + "dawarich-db": "sha256:894f570c0cf0664ed5576a8fd5d5bfb8fb1b19d592885b686c3a88c8bd90c41f", + "dawarich-redis": "sha256:6ba19c50b56777f5c11c58eff8ddb69d0d5f27ba131cffb63f180ccfd43c66af" + }, + "four_observables": { + "pinned": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "installed": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "catalog": { + "dawarich": "freikin/dawarich:1.19.0", + "dawarich-db": "postgis/postgis:17-3.5-alpine", + "dawarich-redis": "redis:7.4-alpine", + "dawarich-sidekiq": "freikin/dawarich:1.19.0" + }, + "live_compose": [ + "freikin/dawarich:1.19.0", + "postgis/postgis:17-3.5-alpine", + "redis:7.4-alpine" + ] + }, + "seed_read_after": true, + "setup_gate_after": { "browser": { "status": "404", "redirect": null @@ -53,17 +228,86 @@ "redirect": null } }, - "seed": "read_back", - "drill_commit": null, - "why": "the drill could not be moved FROM -> TO", + "memory": { + "soak_s": 600, + "interval_s": 10, + "samples": 228, + "containers": { + "dawarich-sidekiq": { + "samples": 57, + "anon_peak_bytes": 291639296, + "limit_bytes": 1073741824, + "anon_peak_pct": 27.2, + "cgroup_peak_pct": 37.8, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-e662a6461d398d98e924f598b29df426108e493135acbb655349a7ca85e7bac7.scope" + }, + "dawarich": { + "samples": 57, + "anon_peak_bytes": 310546432, + "limit_bytes": 1073741824, + "anon_peak_pct": 28.9, + "cgroup_peak_pct": 59.4, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-269ba6973ec9ece909d4fd99ab1611cb21be5502d0b8275dc438850c0ba10ac8.scope" + }, + "dawarich-db": { + "samples": 57, + "anon_peak_bytes": 119009280, + "limit_bytes": 536870912, + "anon_peak_pct": 22.2, + "cgroup_peak_pct": 39.1, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-c9ced1d77e3add6838bce5b19f098da1d97c07d285233b0c5935a2ab2ea75065.scope" + }, + "dawarich-redis": { + "samples": 57, + "anon_peak_bytes": 8167424, + "limit_bytes": 134217728, + "anon_peak_pct": 6.1, + "cgroup_peak_pct": 20.3, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-f4865bec0c894b2bc7bd94149356d749e421c5e42e0539da798846bf8a7ed2f3.scope" + } + }, + "oom_kills": 0, + "restarts": 0, + "peak_pct": 28.9 + }, + "why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back", "log": [ - "09:56:12 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']", - "09:56:13 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", - "09:58:38 [1] deployed, controller state=running, pinned={'dawarich': 'freikin/dawarich:1.15.3', 'dawarich-db': 'postgis/postgis:17-3.5-alpine', 'dawarich-redis': 'redis:7.4-alpine', 'dawarich-sidekiq': 'freikin/dawarich:1.15.3'}", - "09:58:38 gate: timeline is gated — passed as the household (cookie set)", - "09:58:42 [2] setup gate as installed: {'browser': {'status': '404', 'redirect': None}, 'script': {'status': '404', 'redirect': None}}", - "09:58:52 dawarich: POST /api/v1/overland/batches http=201 (47.5663,19.1102 at 2026-09-11T11:37:00Z)", - "09:59:01 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range [])", - "09:59:01 [5] FROM ref not found in compose: freikin/dawarich:1.15.3" + "10:49:07 [5] the box's drill mirror now at 2af95d7c3", + "10:49:11 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']", + "10:49:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", + "10:52:02 [1] deployed, controller state=running, pinned={'dawarich': 'freikin/dawarich:1.15.3', 'dawarich-db': 'postgis/postgis:17-3.5-alpine', 'dawarich-redis': 'redis:7.4-alpine', 'dawarich-sidekiq': 'freikin/dawarich:1.15.3'}", + "10:52:02 gate: timeline is gated — passed as the household (cookie set)", + "10:52:07 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}", + "10:52:16 dawarich: POST /api/v1/overland/batches http=201 (47.4436,19.1707 at 2026-09-12T22:48:00Z)", + "10:52:25 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range [])", + "10:52:27 [5] drill commit 301ca71080d3: dawarich freikin/dawarich:1.15.3,freikin/dawarich:1.15.3 -> freikin/dawarich:1.19.0,freikin/dawarich:1.19.0 (push rc=0)", + "10:52:36 [5] the box's drill mirror now at 301ca7108", + "10:52:40 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}", + "10:52:41 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None", + "10:53:36 + 55.3s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None", + "10:53:40 + 59.4s phase=pulling label=Új verzió letöltése… err=None hold=None", + "10:54:32 + 111.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None", + "10:54:48 + 128.0s phase=starting label=Indítás az új verzióval… err=None hold=None", + "10:55:31 + 171.0s phase=verifying label=Működés ellenőrzése… err=None hold=None", + "10:55:37 + 176.2s phase=done label=Frissítve err=None hold=None", + "10:56:05 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range [])", + "10:56:05 [7] memory soak 600 s …", + "11:06:14 [7] soak: peak 28.9% of the limit (anon), kills 0, restarts 0" ] } \ No newline at end of file diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/walk.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/walk.txt index 600b7678..23a1ae4d 100644 --- a/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/walk.txt +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/walk.txt @@ -1,13 +1,22 @@ -09:56:12 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD'] -09:56:13 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'} -09:58:38 [1] deployed, controller state=running, pinned={'dawarich': 'freikin/dawarich:1.15.3', 'dawarich-db': 'postgis/postgis:17-3.5-alpine', 'dawarich-redis': 'redis:7.4-alpine', 'dawarich-sidekiq': 'freikin/dawarich:1.15.3'} -09:58:38 gate: timeline is gated — passed as the household (cookie set) -09:58:42 [2] setup gate as installed: {'browser': {'status': '404', 'redirect': None}, 'script': {'status': '404', 'redirect': None}} -09:58:52 dawarich: POST /api/v1/overland/batches http=201 (47.5663,19.1102 at 2026-09-11T11:37:00Z) -09:59:01 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range []) -09:59:01 [5] FROM ref not found in compose: freikin/dawarich:1.15.3 -09:59:01 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/runtime-fixes-2026-10-28/walks/dawarich/verdict.json -09:59:01 RESULT inconclusive — the drill could not be moved FROM -> TO -09:59:09 [X] stop -> 200 {'ok': True, 'message': 'Stack dawarich stop completed'} -09:59:41 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'dawarich', 'volumes_removed': ['dawarich_dawarich_db_data', 'dawarich_dawarich_public', 'dawarich_dawarich_redis', 'dawarich_d -09:59:50 [X] after remove: deployed=False leftovers='' +# rebuilt from box-verdict-dawarich.json "log" (the live walk.txt was emptied by a git autostash while the walk ran, 2026-10-28) +10:49:07 [5] the box's drill mirror now at 2af95d7c3 +10:49:11 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD'] +10:49:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'} +10:52:02 [1] deployed, controller state=running, pinned={'dawarich': 'freikin/dawarich:1.15.3', 'dawarich-db': 'postgis/postgis:17-3.5-alpine', 'dawarich-redis': 'redis:7.4-alpine', 'dawarich-sidekiq': 'freikin/dawarich:1.15.3'} +10:52:02 gate: timeline is gated — passed as the household (cookie set) +10:52:07 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}} +10:52:16 dawarich: POST /api/v1/overland/batches http=201 (47.4436,19.1707 at 2026-09-12T22:48:00Z) +10:52:25 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range []) +10:52:27 [5] drill commit 301ca71080d3: dawarich freikin/dawarich:1.15.3,freikin/dawarich:1.15.3 -> freikin/dawarich:1.19.0,freikin/dawarich:1.19.0 (push rc=0) +10:52:36 [5] the box's drill mirror now at 301ca7108 +10:52:40 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'} +10:52:41 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None +10:53:36 + 55.3s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None +10:53:40 + 59.4s phase=pulling label=Új verzió letöltése… err=None hold=None +10:54:32 + 111.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None +10:54:48 + 128.0s phase=starting label=Indítás az új verzióval… err=None hold=None +10:55:31 + 171.0s phase=verifying label=Működés ellenőrzése… err=None hold=None +10:55:37 + 176.2s phase=done label=Frissítve err=None hold=None +10:56:05 dawarich: readback http=200 found=True (controls: no key 401, wrong 401, empty range []) +10:56:05 [7] memory soak 600 s … +11:06:14 [7] soak: peak 28.9% of the limit (anon), kills 0, restarts 0 diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/papra/box-verdict-papra.json b/documentation/audits/runtime-fixes-2026-10-28/walks/papra/box-verdict-papra.json index ebb9dbaf..030475c0 100644 --- a/documentation/audits/runtime-fixes-2026-10-28/walks/papra/box-verdict-papra.json +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/papra/box-verdict-papra.json @@ -2,7 +2,7 @@ "app": "papra", "walk": "security", "box_walk_version": 1, - "verdict": "inconclusive", + "verdict": "proven", "venue": "box 9202 (drill catalog), the guarded Update", "from": { "papra": "ghcr.io/papra-hq/papra:26.6.2-rootless" @@ -35,13 +35,185 @@ "redirect": null } }, - "why": "C1: the fixture could not seed and read back before the update", + "seed": "read_back", + "drill_commit": "2af95d7c3b98", + "sync_waited_s": 4.6, + "badge_before": { + "hu": [ + { + "title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.", + "text": "Frissítés elérhető — ma" + } + ], + "en": [ + { + "title": "A newer version of this app is available. Select the Update button to start it.", + "text": "Update available — today" + } + ] + }, + "measured_at": "2026-10-28T09:36:34Z", + "update": { + "accepted": true, + "http": "202", + "phases": [ + { + "t": 0.0, + "phase": "backing-up", + "label": "Biztonsági mentés készül a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 3.1, + "phase": "pulling", + "label": "Új verzió letöltése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 58.4, + "phase": "copying", + "label": "Az adatok másolása a frissítés előtt…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 63.5, + "phase": "starting", + "label": "Indítás az új verzióval…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 64.5, + "phase": "verifying", + "label": "Működés ellenőrzése…", + "updating": true, + "error": null, + "hold": null + }, + { + "t": 74.8, + "phase": "done", + "label": "Frissítve", + "updating": false, + "error": null, + "hold": null + } + ], + "duration_s": 74.8, + "final_phase": "done", + "update_error": null, + "hold_reason": null, + "state": "running" + }, + "observables_after": { + "pinned_images": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "installed_images": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "catalog_images": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "live_compose_image_lines": [ + "image: ghcr.io/papra-hq/papra:26.7.1-rootless" + ], + "docker_inspect": [ + "papra ghcr.io/papra-hq/papra:26.7.1-rootless running=true restarts=0" + ] + }, + "badge_after": { + "hu": [ + { + "title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.", + "text": "Naprakész" + } + ], + "en": [ + { + "title": "This app is running the newest version available.", + "text": "Up to date" + } + ] + }, + "state_after": "running", + "hold_after": null, + "to_digests": { + "papra": "sha256:d1f596a35332ad04d8a69d88a5e19bc82acd47f2bc2fe687dd2145b1ef5a8b19" + }, + "four_observables": { + "pinned": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "installed": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "catalog": { + "papra": "ghcr.io/papra-hq/papra:26.7.1-rootless" + }, + "live_compose": [ + "ghcr.io/papra-hq/papra:26.7.1-rootless" + ] + }, + "seed_read_after": true, + "setup_gate_after": { + "browser": { + "status": "302", + "redirect": "https://felhom.enkisfelhom.hu/__gate/start?…" + }, + "script": { + "status": "401", + "redirect": null + } + }, + "memory": { + "soak_s": 600, + "interval_s": 10, + "samples": 60, + "containers": { + "papra": { + "samples": 60, + "anon_peak_bytes": 130662400, + "limit_bytes": 805306368, + "anon_peak_pct": 16.2, + "cgroup_peak_pct": 22.2, + "oom_kill_delta": 0, + "oom_killed_flag": false, + "restarts_delta": 0, + "running_all_samples": true, + "cgroup": "/sys/fs/cgroup/system.slice/docker-9dacb72b118e427c1e7ba2826edf7d364bad1e6e9ec5e8b8e945837bf1713f74.scope" + } + }, + "oom_kills": 0, + "restarts": 0, + "peak_pct": 16.2 + }, + "why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back", "log": [ - "08:56:56 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", - "08:58:06 [1] deployed, controller state=running, pinned={'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}", - "08:58:06 gate: papra is gated — passed as the household (cookie set)", - "08:58:10 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}", - "08:58:10 papra: sign-up http=403", - "08:58:10 papra: refused {\"message\":\"Missing or null Origin\",\"code\":\"MISSING_OR_NULL_ORIGIN\"}" + "10:35:01 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}", + "10:36:16 [1] deployed, controller state=running, pinned={'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}", + "10:36:16 gate: papra is gated — passed as the household (cookie set)", + "10:36:19 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}", + "10:36:19 papra: sign-up http=200", + "10:36:20 papra: sign-in as the seeded account http=200 ok=True", + "10:36:21 [5] drill commit 2af95d7c3b98: papra ghcr.io/papra-hq/papra:26.6.2-rootless -> ghcr.io/papra-hq/papra:26.7.1-rootless (push rc=0)", + "10:36:29 [5] the box's drill mirror now at 2af95d7c3", + "10:36:34 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}", + "10:36:34 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None", + "10:36:37 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None", + "10:37:33 + 58.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None", + "10:37:38 + 63.5s phase=starting label=Indítás az új verzióval… err=None hold=None", + "10:37:39 + 64.5s phase=verifying label=Működés ellenőrzése… err=None hold=None", + "10:37:49 + 74.8s phase=done label=Frissítve err=None hold=None", + "10:38:08 papra: sign-in as the seeded account http=200 ok=True", + "10:38:08 [7] memory soak 600 s …", + "10:48:13 [7] soak: peak 16.2% of the limit (anon), kills 0, restarts 0" ] } \ No newline at end of file diff --git a/documentation/audits/runtime-fixes-2026-10-28/walks/papra/walk.txt b/documentation/audits/runtime-fixes-2026-10-28/walks/papra/walk.txt index fb39ddc3..7db1b460 100644 --- a/documentation/audits/runtime-fixes-2026-10-28/walks/papra/walk.txt +++ b/documentation/audits/runtime-fixes-2026-10-28/walks/papra/walk.txt @@ -15,3 +15,9 @@ 10:37:49 + 74.8s phase=done label=Frissítve err=None hold=None 10:38:08 papra: sign-in as the seeded account http=200 ok=True 10:38:08 [7] memory soak 600 s … +10:48:13 [7] soak: peak 16.2% of the limit (anon), kills 0, restarts 0 +10:48:13 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/runtime-fixes-2026-10-28/walks/papra/verdict.json +10:48:13 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back +10:48:14 [X] stop -> 200 {'ok': True, 'message': 'Stack papra stop completed'} +10:48:46 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'papra', 'volumes_removed': ['papra_papra_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá +10:48:54 [X] after remove: deployed=False leftovers='' diff --git a/documentation/backlog/CLOSED-ITEMS.md b/documentation/backlog/CLOSED-ITEMS.md index 7f58dcb2..04788502 100644 --- a/documentation/backlog/CLOSED-ITEMS.md +++ b/documentation/backlog/CLOSED-ITEMS.md @@ -26,13 +26,14 @@ --- -## 2026-10-28 (day) — R-1313, R-1322 and R-1327 closed: Wanderer hidden, Immich's lane step live, the runtime watch fills its own cache in CI (full text of the rows: `git show 9b4b5fe5:documentation/backlog/OPEN-ITEMS.md`) +## 2026-10-28 (day) — R-1313, R-1322, R-1327 and R-1332 closed: Wanderer hidden, Immich's lane step live, the runtime watch fills its own cache in CI, the 20 runtime apps classified (full text of the rows: `git show 9b4b5fe5:documentation/backlog/OPEN-ITEMS.md`) | Row | What | Closed | Evidence | |---|---|---|---| | **R-1313** | **Wanderer (v0.20.0): a critical notice with no login — any remote ActivityPub server can overwrite its records (GHSA-fprh-3pp9-68m9); the fix is v0.21.2, a big step.** (P2) | CLOSED 2026-10-28 — D59 (`09` §3 decision 275) live: catalog `b5b78f6` sets `lifecycle: hidden` (CI job 2447 green); no box runs Wanderer. The big step v0.21.2 (with the fixed Node) carries on in R-1335. | `audits/http2shell-2026-10-27/wanderer-hidden.patch`, drill `ee18bff` | | **R-1322** | **Immich v3.2.4 (server + ML): the Node.js October 2026 runtime notice (CVE-2026-111497); the lane step to v3.3.5.** (P3) | CLOSED 2026-10-28 — the security-fix step v3.2.4 → v3.3.5 live: catalog `0158b50` (CI gates job 2448 green), on the operator's yes. Box 9202 `proven` (2026-10-27 night); the power-cut repair re-proven on v3.3.5 the same morning (4 of 4 rebuilt, 0 of 52 controls changed, the lost original reported) — `unclean-boot-images` had refused the step without it. | `audits/http2shell-2026-10-27/walks/immich/`, `audits/runtime-fixes-2026-10-28/immich-repair/` | | **R-1327** | **The security watch could not see a bug in the RUNTIME under an app (HTTP2Shell, CVE-2026-111497) — Home Assistant and RomM ran the bad code on the test boxes unseen.** (P2) | CLOSED 2026-10-28 — the watch reads every pin's runtime from the image (built 2026-10-27 night) and since `a3247d9f` reads zstd layers IN CI by itself (a hash-pinned `zstandard` 0.25.0 wheel, `09` §3 decision 278; no DooPlex change). The close condition held: the first full CI night (job 2446, 03:40) named Home Assistant 2026.9.4 and RomM 5.4.1 as ADVISORY (runtime) and audiobookshelf 2.37.2 as current. The self-fill: CI dry run job 2450 with HA 2026.9.4 and RomM 5.4.1 taken out of the cache read Home Assistant 2026.10.4 (zstd) in 87 s and RomM 5.4.1 (gzip) in 25 s, and answered audiobookshelf from the cache; the job took 3 min 34 s. Left to see: tonight's run is the first that COMMITS CI-read entries (a dry run does not) — STATUS asks for one look; Docker Hub's 429 is R-1334. | CI jobs 2446, 2449, 2450; `scripts/CHANGELOG.md` 2026-10-28; `08` §11 | +| **R-1332** | **Twenty catalog apps ship a runtime with HTTP2Shell (CVE-2026-111497) inside their image — the first runtime read of the whole catalog.** (P2) | CLOSED 2026-10-28 — every app is in one of three states, each fixed runtime READ FROM THE IMAGE: **10 live as security-fix steps** on the operator's yes per batch (home-assistant `b5b78f6`, immich `0158b50`; ghost, metube, zipline `abf3db3`; karakeep, tandoor `71e3fdf`; papra, dawarich `651a991`; adventurelog `0829994` — each box walk `proven` on 9202, CI green by hash); **4 need a new main version**, each on its big-step row (homepage R-1320, termix R-1311, wanderer R-1335, seerr R-1317); **6 have no fixed release**, each on its row with the exposure (actualbudget R-1336, calcom R-1329, calibre-web R-1337, paperless R-1331, romm R-1330, sparkyfitness R-785). The file manager (a box program) does not load libbrotli on any box (R-1305). | `audits/runtime-fixes-2026-10-28/TABLE.md`, `walks/` | ## 2026-10-27 (late evening) — R-1326 closed: the hub gets time to start (full text of the row: `git show 503692a1:documentation/backlog/OPEN-ITEMS.md`) diff --git a/documentation/backlog/OPEN-ITEMS.md b/documentation/backlog/OPEN-ITEMS.md index 77ccc255..757b87f5 100644 --- a/documentation/backlog/OPEN-ITEMS.md +++ b/documentation/backlog/OPEN-ITEMS.md @@ -124,7 +124,7 @@ stopping line that lies. | **R-494** | Install & onboarding | P4 | **NARROWED 2026-09-14 by operator ruling → [P3-LOW] the hub COULD create the tunnel at customer creation, for a domain already on Cloudflare. Not blocking: every customer has their own domain and the operator creates the tunnel per day-0 A.1 (`architecture/01-topology-and-trust.md`).** *Original finding, kept:* **[P1-HIGH] A new customer's dashboard has NO reachable address unless the operator hand-makes a Cloudflare tunnel — the link in the setup-code mail is dead.** MEASURED 2026-09-14 on a fresh install from the public ISO (drill intervention **I1**): the claim mail points at `https://felhom.drill0242.felhom.eu`; that name has **no A and no AAAA** record (`dig @1.1.1.1`, control `felhom.enkisfelhom.hu` resolves); the hub has **no tunnel- or DNS-creation code** (`hub/internal/cloudflare/` holds only geo-rule removal; `cf_tunnel_token` is a pasted, optional form field, `configs.go:1478`) — day-0 runbook A.1 makes it a manual Cloudflare-dashboard step that nothing on the customer-create page asks for; the box's own split-horizon resolver on the appliance LAN IP answered `google.com` but not the dashboard name at 13:27:39Z; the agent applied the record at **13:27:44Z** (`lanresolver: applied split-horizon record … ip=192.168.0.158`, 3 m 46 s after the controller started), so the box CAN answer the name — **but only to a device that uses the box as its DNS server, and no document, screen or mail tells a household to do that**; the router and the installer-offered DNS answer nothing. The page was reachable only at the guest's LAN address with the name forced (`curl --resolve …:443:192.168.0.158`). **A volunteer could not have done that.** **What it needs:** an operator ruling — the hub creates the tunnel and DNS at customer creation, or the product gives a household a LAN address that works with no DNS change. | **READY — rank P3-LOW; owner: CC** **Re-ranked 2026-10-03: P3→P4: operator-side automation; the operator creates the tunnel by hand per the day-0 runbook.** | — | — | CC | | **R-504** | Install & onboarding | P4 | **[P3-LOW] `iso.felhom.eu` cannot show an index page on its own — its root returns 404, and the download page lives on the website instead.** MEASURED 2026-09-14: `https://iso.felhom.eu/` and `/index.html` → 404; only named objects answer. The host is an R2 bucket behind a custom domain; whether R2 would serve an uploaded `index.html` at `/` was **not measured** (uploading anything to the public bucket is a publication). The ISO v1.27.0 task puts the Hungarian download page at `felhom.eu/letoltes` (published with the ISO, after the operator's yes). **Remaining:** a redirect from `iso.felhom.eu/` to that page needs a Cloudflare rule the session has no credential for. | **WAITING-ON-OPERATOR — rank P3-LOW; owner: operator (Cloudflare rule)** **Re-ranked 2026-10-03: P3→P4: households are sent to the website's download page; the bare address is cosmetic.** | — | — | operator | -## Apps & catalog — 25 rows (P2 2, P3 12, P4 11) +## Apps & catalog — 24 rows (P2 1, P3 12, P4 11) | ID | Category | Sev | What | State | Blocked on | Next action | Owner | |---|---|---|---|---|---|---|---| @@ -150,7 +150,6 @@ stopping line that lies. | **R-1329** | Apps & catalog | P3 | **cal.com runs on Node.js 20, which gets no security fixes any more** — v6.2.0 carries Node 20.20.0 (no fixed release on the 20 line for CVE-2026-111497) and Debian 12's unpatched `libbrotli1` 1.0.9-2+b6 (fixed: 1.0.9-2+deb12u1); the same image runs in the catalog and on DooPlex. Read from the image 2026-10-27; 2026-10-28: v6.2.0 is still the newest tag, no Node 22/24 image (`audits/runtime-fixes-2026-10-28/TABLE.md`). | OPEN | — | a cal.com release on Node 22/24 (a big step: its own walk); until then the watch lists it nightly | CC | | **R-1330** | Apps & catalog | P2 | **RomM's newest release (5.4.1) still ships Node.js 24.18.1 (CVE-2026-111497, fixed 24.22.1)** — no newer RomM exists (tags read 2026-10-27). Exposure: Node is IN the image but no Node process runs (RomM serves through Python gunicorn/rq and nginx — `ps` on demo-hp 9201), and RomM sits behind the setup gate. | OPEN — **RULED D61 = keep RomM offered** (operator 2026-10-28, starting the day brief; `09` §3 decision 277): the first RomM release with Node ≥ 24.22.1 is a lane step. 2026-10-28: 5.4.1 is still the newest tag (read from the registry). Earlier: CC's pick 2026-10-27 night | — | the watch flags it nightly (R-1327); the step when RomM ships | CC | | **R-1331** | Apps & catalog | P3 | **Paperless-ngx 2.20.15 carries Python Brotli 1.1.0 (CVE-2026-111497, fixed 1.1.1/1.2.1)** — its web side only COMPRESSES (whitenoise, compression_middleware); the DECODERS are urllib3's and httpx's, for replies to requests Paperless itself makes (its own outbound calls), never for what a visitor sends. Read in the running container on demo-hp 9201, 2026-10-27. 2026-10-28: the newest release 3.3.4 still carries Brotli 1.2.0 and is a new main version — no fixed release yet (`audits/runtime-fixes-2026-10-28/TABLE.md`). | OPEN — no step tonight (decided by CC unattended — operator may reverse): the bad path needs a hostile server Paperless calls | — | take the first Paperless release with Brotli ≥ 1.2.1 as a normal step | CC | -| **R-1332** | Apps & catalog | P2 | **Twenty catalog apps ship a runtime with HTTP2Shell (CVE-2026-111497) inside their image — the first runtime read of the whole catalog, 2026-10-27 night (R-1327):** actualbudget 26.9.0 (Node.js 24.20.0 → 24.22.1); adventurelog v0.13.0 (Node.js 26.3.0 → 26.12.1); calcom v6.2.0 (Node.js 20.20.0 → 22.23.4); calibre-web v4.0.8 (py-Brotli 1.2.0 → 1.2.1); dawarich 1.15.3 (Node.js 20.19.2 → 22.23.4); ghost 6.67.0-alpine (Node.js 22.23.3 → 22.23.4); home-assistant 2026.9.4 (py-Brotli 1.2.0 → 1.2.1); homepage v1.13.2 (Node.js 22.22.3 → 22.23.4); immich v3.2.4 (Node.js 24.21.0 → 24.22.1); karakeep 0.33.2 (Node.js 24.18.1 → 24.22.1); metube 2026.09.29 (py-Brotli 1.2.0 → 1.2.1); paperless-ngx 2.20.15 (py-Brotli 1.1.0 → 1.1.1); papra 26.6.2-rootless (Node.js 26.4.0 → 26.12.1); romm 5.4.1 (Node.js 24.18.1 → 24.22.1); seerr 2.7.3 (Node.js 22.18.0 → 22.23.4); sparkyfitness v0.17.3 (Node.js 24.18.0 → 24.22.1); tandoor 2.6.15 (Node.js 24.18.1 → 24.22.1); termix 2.8.0 (Node.js 26.9.0 → 26.12.1); wanderer v0.20.0 (Node.js 22.23.1 → 22.23.4); zipline 4.8.0 (Node.js 24.21.0 → 24.22.1). Plus one BOX program: the file manager `gtstef/filebrowser:1.5.8-stable` carries Alpine `brotli-libs` 1.2.0-r1 (a controller release when upstream rebuilds). None of these has a notice of its own. | OPEN — home-assistant and immich: lane steps walked tonight (drill, the live push waits for the operator); romm: R-1330; calcom: R-1329; paperless: R-1331; the rest: each app's next release whose image carries the fixed runtime, walked as a lane step — the watch lists them every night until then | — | per app: the first upstream image with Node ≥ 22.23.4 / 24.22.1 / 26.12.1 or Brotli ≥ 1.2.1, a lane step; close when the watch's runtime list is empty | CC | | **R-1336** | Apps & catalog | P3 | **ActualBudget has no release with the HTTP2Shell fix (CVE-2026-111497): 26.9.0 carries Node.js 24.20.0 and the newest 26.10.0 still Node.js 24.21.0 (fixed: 24.22.1), read from both images.** `node app.js` serves the app; the setup gate covers it until the first account exists, then its own password. No box runs it. `audits/runtime-fixes-2026-10-28/TABLE.md` | OPEN — filed 2026-10-28 (runtime fixes) | upstream: an image with Node ≥ 24.22.1 | the watch lists it nightly (R-1327); take that release as a lane step | CC | | **R-1337** | Apps & catalog | P3 | **Calibre-Web (v4.0.8, the newest) loads a bad Brotli decoder: its `cps.py` maps Python Brotli 1.2.0 (fixed 1.2.1), Pillow's libbrotlidec 1.2.0 and Debian's libbrotlidec 1.1.0** — read from the process's maps on demo-hp 9201 (`audits/runtime-fixes-2026-10-28/calibre-web-brotli.txt`). Exposure: the Python decoder is urllib3's, for replies to the app's own outbound calls (book metadata), not for what a visitor sends — the Paperless shape (R-1331). No fixed release exists. `audits/runtime-fixes-2026-10-28/TABLE.md` | OPEN — filed 2026-10-28 (runtime fixes) | upstream: an image with Brotli ≥ 1.2.1 | take that release as a lane step; Debian's libbrotli1 fixed version is not known (R-1327's table has no Debian line) | CC | diff --git a/scripts/CHANGELOG.md b/scripts/CHANGELOG.md index dbd93e72..9dec4ee9 100644 --- a/scripts/CHANGELOG.md +++ b/scripts/CHANGELOG.md @@ -6,6 +6,7 @@ both). A memory written before this is copied once to the DooPlex key, so the first night after the change mails nothing again. Found while classifying the 20 runtime apps (R-1332); fixed in the session, no row. - Tests: `test_security_watch.py` W13 (5 checks; 4 red on the image-only key) — 64 checks. +- `image_runtime.py`: two comments no longer say the cache is filled on DooPlex (CI fills it, R-1327). ## 2026-10-28 — the security watch reads zstd layers in CI by itself (R-1327) diff --git a/scripts/image_runtime.py b/scripts/image_runtime.py index ebc58feb..cf51e333 100644 --- a/scripts/image_runtime.py +++ b/scripts/image_runtime.py @@ -45,7 +45,7 @@ ACCEPT = ", ".join([ "application/vnd.oci.image.index.v1+json", "application/vnd.docker.distribution.manifest.list.v2+json", "application/vnd.oci.image.manifest.v1+json", "application/vnd.docker.distribution.manifest.v2+json"]) DEFAULT_BUDGET = int(__import__("os").environ.get("IMAGE_RUNTIME_BUDGET_MB", "1500")) * 1024 * 1024 -# ^ bytes of compressed layers one image may stream before the rest is unchecked (the filling run on DooPlex raises it) +# ^ bytes of compressed layers one image may stream before the rest is unchecked (IMAGE_RUNTIME_BUDGET_MB raises it for a by-hand read) NODE_H = re.compile(r"(^|/)usr/(local/)?include/node/node_version\.h$") PYDIST = re.compile(r"site-packages/(brotli|Brotli|brotlicffi)-([0-9][0-9A-Za-z.\-+]*)\.dist-info/(METADATA|RECORD)$") @@ -197,7 +197,7 @@ class Registry: hdr = {} if reg == "docker.io": url = "https://auth.docker.io/token?service=registry.docker.io&scope=repository:%s:pull" % path - # Optional Docker Hub login (the filling run on DooPlex: a login has its own pull limit; CI stays anonymous). + # Optional Docker Hub login (a by-hand read: a login has its own pull limit; CI stays anonymous and fills the cache itself, R-1327). # The NAMES of the variables are read here; the values are never printed. import base64 import os