Gitea 28.2.0 live (R-1315 closed; D57 -> decision 280: imports only from GitHub/Codeberg/GitLab); R-1338: the Meilisearch cap helps on the bench, not on 9202 — measured, not pushed; STATUS, CONTEXT, evidence
gates / gates (push) Successful in 1m52s

This commit is contained in:
admin committed 2026-10-28 21:35:56 +01:00
1 parent 1be7aa87dc
commit 05595ecff6
53 files changed
+4731 -4

No files matched your search

+7
View File
@@ -16,6 +16,13 @@
> and holds nothing of its own; this file does hold its own content, namely the standing rulings below.
> **2026-10-28 (evening, attended) — Gitea 28.2.0; Wanderer's search memory measured, not changed.** Gitea 1.27.3 → 28.2.0
> live `0baf8f9` (bench + box + undo; 1.27.3 refuses a 28-migrated database, the undo copy restores it). D57 → decision
> 280: imports only from github.com/codeberg.org/gitlab.com (`[migrations] EGRESS_MODE=strict` + `ALLOWED_HOST_LIST`, the
> 28.x names — 1.x's ALLOWED_DOMAINS is gone; the security review's „wrong key" notice is pre-28). The Gitea fixture posts
> every installer field (28 renamed the form). R-1338: `MEILI_MAX_INDEXING_MEMORY`=128 MiB helped on the bench (17.7 %)
> but NOT on 9202 (95.7 %, steady) → not pushed; the ladder has no entry type for a same-digest re-measure.
> **2026-10-28 (afternoon, attended at the STOPs) — Docker Hub stops refusing the watch; the four big steps.** R-1334:
> measured first — the 429s were the BURST (211 tag-list requests in ~2 min from six workers), not the count; `fe677bae`
> spaces Docker Hub requests (1/s), retries a 429 (Retry-After; NOT CHECKED after the 4th try) and caches tag lists 24 h
+1 -1
View File
@@ -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 (evening).** On your yes, the four big updates are live with their undo tested: Wanderer v0.21.2 (offered again, D59 ended; federation from other servers stays off), Termix 26.10.5 (D58 ended), Homepage v2.7.0 and Seerr v3.5.1. Docker Hub no longer refuses the security watch in test runs, with no login; tonight's run is the check.
**Updated 2026-10-28 (evening).** On your yes, the four big updates are live with their undo tested: Wanderer v0.21.2 (offered again, D59 ended; federation from other servers stays off), Termix 26.10.5 (D58 ended), Homepage v2.7.0 and Seerr v3.5.1. Gitea 28.2.0 too (imports only from GitHub, Codeberg, GitLab); Docker Hub no longer refuses the watch in test runs — tonight's run is the check.
## What works
- **The Plex attack (10-17 → 10-23) did not reach Felhom's secrets** (R-1241).
@@ -1153,6 +1153,15 @@ its length, and both fixes cost something the household would notice — operato
major gets automated by accident). Why A: the brief („a normal step if it counts as a main version in our ladder
rules, else the lane") and the one-comparator rule; the box walk + soak is the guard either way.
### 2026-10-28 (evening, attended) — D57 judged again in Gitea's big step: imports from three hosts only
280. **Gitea's repository import is limited to github.com, codeberg.org and gitlab.com** (`[migrations] EGRESS_MODE=strict`,
`ALLOWED_HOST_LIST`, Gitea 28's own egress rules) — this replaces D57's „keep import on, unrestricted" (decision 273).
Measured on 9202 with 28.2.0: the default (`lax`) already refuses home-network and Docker addresses (422); the
allow-list also refuses every other public host (gitea.com 422) and lets GitHub import (201). Options: the allow-list
(cost: an import from a self-hosted forge or Bitbucket is refused) or 28's default (cost: the box fetches any public
address a family member names). *Operator, 2026-10-28, at the Gitea STOP; CC's pick.*
### 2026-10-28 (afternoon, attended) — the four big steps; D59 ends; Wanderer's inbound federation stays off
279. **D59 ends: Wanderer is offered again** after its big step v0.20.0 → v0.21.2 went live (catalog `1825247`), and
@@ -0,0 +1,3 @@
"verdict": "failed",
rc=0
@@ -0,0 +1,118 @@
[17:49:38] scratch drive folders cleared before FROM (R-656): none existed
[17:49:38] MV-gitea: deploying gitea at FROM {'gitea': 'gitea/gitea:1.27.3'}
[17:50:22] FROM settled=True in 30.9s :: {"gitea": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[17:50:22] fixture: the BOX walk's own (Gitea), through upgrade_boxport
[17:50:29] gitea: first-run installer POST / http=200
[17:50:35] gitea: installed through its own first-run form; the admin authenticates
[17:50:36] gitea: create repo http=201
[17:50:36] gitea: one commit (drill.txt) http=201
[17:50:36] gitea: the committed file read back http=200 same=True
[17:50:36] gitea: readback of the seeded repo http=200 ok=True
[17:50:36] C1 (seed reads back BEFORE): True
[17:50:37] MV-gitea: swapping to TO {'gitea': 'gitea/gitea:28.2.0'}
[17:50:52] TO up -d rc=0
[17:51:23] TO settled=True in 30.8s :: {"gitea": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[17:51:23] migration lines observed: 6
[17:51:23] gitea: the committed file read back http=200 same=True
[17:51:23] gitea: readback of the seeded repo http=200 ok=True
[17:51:23] RESULT (seed reads back AFTER): True
[17:51:24] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[17:51:39] + 15s gitea=332M/512M peak=333M kills=0 rs=0 reqs=300
[17:51:54] + 30s gitea=346M/512M peak=346M kills=0 rs=0 reqs=600
[17:52:09] + 45s gitea=352M/512M peak=353M kills=0 rs=0 reqs=900
[17:52:24] + 60s gitea=353M/512M peak=355M kills=0 rs=0 reqs=1196
[17:52:39] + 76s gitea=353M/512M peak=355M kills=0 rs=0 reqs=1496
[17:52:54] + 91s gitea=354M/512M peak=355M kills=0 rs=0 reqs=1796
[17:53:10] + 106s gitea=353M/512M peak=355M kills=0 rs=0 reqs=2092
[17:53:25] + 121s gitea=353M/512M peak=356M kills=0 rs=0 reqs=2392
[17:53:40] + 136s gitea=358M/512M peak=358M kills=0 rs=0 reqs=2692
[17:53:55] + 151s gitea=357M/512M peak=360M kills=0 rs=0 reqs=2988
[17:54:10] + 166s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3288
[17:54:25] + 182s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3588
[17:54:40] + 197s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3884
[17:54:55] + 212s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4184
[17:55:11] + 227s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4484
[17:55:26] + 242s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4784
[17:55:41] + 257s gitea=359M/512M peak=360M kills=0 rs=0 reqs=5080
[17:55:56] + 272s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5380
[17:56:11] + 287s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5680
[17:56:26] + 302s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5976
[17:56:41] + 318s gitea=359M/512M peak=361M kills=0 rs=0 reqs=6276
[17:56:56] + 333s gitea=359M/512M peak=361M kills=0 rs=0 reqs=6572
[17:57:12] + 348s gitea=358M/512M peak=361M kills=0 rs=0 reqs=6872
[17:57:27] + 363s gitea=359M/512M peak=361M kills=0 rs=0 reqs=7172
[17:57:42] + 378s gitea=359M/512M peak=361M kills=0 rs=0 reqs=7472
[17:57:57] + 393s gitea=358M/512M peak=361M kills=0 rs=0 reqs=7768
[17:58:12] + 408s gitea=358M/512M peak=361M kills=0 rs=0 reqs=8068
[17:58:27] + 423s gitea=359M/512M peak=361M kills=0 rs=0 reqs=8368
[17:58:42] + 438s gitea=359M/512M peak=361M kills=0 rs=0 reqs=8664
[17:58:57] + 454s gitea=358M/512M peak=361M kills=0 rs=0 reqs=8964
[17:59:13] + 469s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9264
[17:59:28] + 484s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9560
[17:59:43] + 499s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9860
[17:59:58] + 514s gitea=360M/512M peak=361M kills=0 rs=0 reqs=10160
[18:00:13] + 529s gitea=359M/512M peak=361M kills=0 rs=0 reqs=10456
[18:00:28] + 544s gitea=359M/512M peak=361M kills=0 rs=0 reqs=10756
[18:00:43] + 560s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11056
[18:00:58] + 575s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11353
[18:01:13] + 590s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11652
[18:01:29] + 605s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11952
[18:01:29] memory watch: killed=False tight=[] requests=11952 codes={'200': 11952}
[18:01:29] MV-gitea: ABORT — putting the FROM images back
[18:04:34] ABORT: the app did NOT come back (rc=0, 184.8s)
{
"harness_version": 5,
"edge": "MV-gitea",
"app": "gitea",
"note": "night 2026-09-23 within-a-major move: gitea=gitea/gitea:28.2.0",
"from": {
"gitea": "gitea/gitea:1.27.3"
},
"to": {
"gitea": "gitea/gitea:28.2.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kgitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[343]: Add max_parallel column to action_run_job",
"abort": "refuses",
"abort_detail": "ules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts\n\u001b[2Kgitea | 2026/10/28 19:04:26 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.\n\u001b[2Kgitea | 2026/10/28 19:04:26 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...\n\u001b[2Kgitea | 2026/10/28 19:04:26 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3\n\u001b[2Kgitea | 2026/10/28 19:04:26 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).\n\u001b[2Kgitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).\n\u001b[2Kgitea | Received signal 15; terminating.",
"engine_state_after": null,
"memory": {
"soak_s": 605.1,
"requested_s": 600,
"requests": 11952,
"codes": {
"200": 11952
},
"first_kill": null,
"containers": {
"gitea": {
"limit": 536870912,
"peak": 379576320,
"peak_pct": 0.707,
"anon_peak_sampled": 137670656,
"anon_peak_pct": 0.256,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"venue_swap_bytes": 0,
"load": "reached"
},
"marks": [],
"bench_overrides": null,
"duration_s": 30.8,
"measured_at": "2026-10-28T18:04:34Z",
"evidence": "evidence/MV-gitea",
"scratch_cleared": [],
"files_changed": [],
"files_changed_detail": [],
"files_ignored": [],
"total_s": 896.8
}
@@ -0,0 +1,40 @@
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:03:25 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:03:25 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:03:25 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:03:25 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:04:25 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:04:25 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:04:25 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:04:25 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:04:25 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:04:25 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:04:26 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:04:26 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:04:26 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:04:26 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
@@ -0,0 +1,8 @@
{
"gitea": {
"status": "restarting",
"health": "unhealthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,396 @@
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:33 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:01:33 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:33 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:33 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:33 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:33 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:33 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:33 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:33 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:33 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:33 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:33 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:33 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:33 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:34 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:01:34 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:34 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:34 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:34 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:34 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:34 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:34 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:34 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:34 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:34 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:34 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:34 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:34 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:34 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:35 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:01:35 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:35 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:35 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:35 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:35 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:35 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:35 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:35 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:35 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:35 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:36 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:36 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:36 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:36 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:37 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 19
gitea | 2026/10/28 19:01:37 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:37 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:37 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:37 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:37 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:37 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:37 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:37 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:37 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:37 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:37 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:37 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:37 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:37 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:38 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 19:01:38 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:38 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:38 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:38 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:38 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:38 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:38 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:38 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:38 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:38 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:38 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:38 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:38 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:39 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:41 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 19:01:41 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:41 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:41 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:41 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:41 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:41 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:41 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:41 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:41 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:41 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:41 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:41 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:41 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:41 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:45 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 19:01:45 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:45 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:45 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:45 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:45 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:45 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:45 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:45 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:45 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:45 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:45 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:45 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:45 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:45 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:01:52 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 19:01:52 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:01:52 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:01:52 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:01:52 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:01:52 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:01:52 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:01:52 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:01:52 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:01:52 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:01:52 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:01:52 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:01:52 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:01:52 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:01:52 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:02:06 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:02:06 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:02:06 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:02:06 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:02:06 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:02:06 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:02:06 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:02:06 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:02:06 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:02:06 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:02:06 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:02:06 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:02:06 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:02:06 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:02:06 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:02:32 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 19:02:32 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:02:32 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:02:32 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:02:32 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:02:32 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:02:32 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:02:32 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:02:32 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:02:33 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:02:33 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:02:33 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:02:33 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:02:33 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:02:33 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:03:24 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:03:25 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:03:25 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:03:25 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:03:25 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:03:25 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:03:25 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:03:25 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:03:25 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:03:25 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:03:25 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:03:25 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:03:25 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:03:25 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:03:25 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 19:04:25 cmd/web.go:263:runWeb() [I] Starting Gitea on PID: 18
gitea | 2026/10/28 19:04:25 cmd/web.go:115:showWebStartupMessage() [I] Gitea version: 1.27.3 built with go1.26.7-X:jsonv2 : bindata, timetzdata,
gitea | 2026/10/28 19:04:25 cmd/web.go:116:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 19:04:25 cmd/web.go:117:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:118:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:119:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 19:04:25 cmd/web.go:120:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 19:04:25 cmd/web.go:121:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 19:04:25 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:227:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:217:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:243:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:237:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:249:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:259:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:270:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 19:04:26 modules/storage/storage.go:274:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 19:04:26 modules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 19:04:26 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 19:04:26 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 19:04:26 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 19:04:26 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).
gitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).
gitea | Received signal 15; terminating.
@@ -0,0 +1,762 @@
[
{
"t": 15.1,
"containers": {
"gitea": {
"limit": 536870912,
"current": 348405760,
"peak": 349184000,
"anon": 108822528,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 300
},
{
"t": 30.2,
"containers": {
"gitea": {
"limit": 536870912,
"current": 363274240,
"peak": 363601920,
"anon": 123871232,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 600
},
{
"t": 45.4,
"containers": {
"gitea": {
"limit": 536870912,
"current": 369954816,
"peak": 370712576,
"anon": 130334720,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 900
},
{
"t": 60.5,
"containers": {
"gitea": {
"limit": 536870912,
"current": 370634752,
"peak": 372416512,
"anon": 130977792,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1196
},
{
"t": 75.6,
"containers": {
"gitea": {
"limit": 536870912,
"current": 370450432,
"peak": 372416512,
"anon": 131108864,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1496
},
{
"t": 90.8,
"containers": {
"gitea": {
"limit": 536870912,
"current": 371404800,
"peak": 373010432,
"anon": 131551232,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1796
},
{
"t": 105.9,
"containers": {
"gitea": {
"limit": 536870912,
"current": 371093504,
"peak": 373010432,
"anon": 131743744,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2092
},
{
"t": 121.0,
"containers": {
"gitea": {
"limit": 536870912,
"current": 370917376,
"peak": 373522432,
"anon": 131805184,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2392
},
{
"t": 136.1,
"containers": {
"gitea": {
"limit": 536870912,
"current": 375734272,
"peak": 376250368,
"anon": 135852032,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2692
},
{
"t": 151.2,
"containers": {
"gitea": {
"limit": 536870912,
"current": 375377920,
"peak": 377606144,
"anon": 135880704,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2988
},
{
"t": 166.3,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376414208,
"peak": 377606144,
"anon": 136265728,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3288
},
{
"t": 181.5,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376217600,
"peak": 377782272,
"anon": 136589312,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3588
},
{
"t": 196.6,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376242176,
"peak": 377782272,
"anon": 136609792,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3884
},
{
"t": 211.7,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376684544,
"peak": 378523648,
"anon": 136810496,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4184
},
{
"t": 226.8,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376680448,
"peak": 378523648,
"anon": 136818688,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4484
},
{
"t": 242.0,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377028608,
"peak": 378523648,
"anon": 136859648,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4784
},
{
"t": 257.1,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376479744,
"peak": 378523648,
"anon": 136867840,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5080
},
{
"t": 272.2,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376782848,
"peak": 379387904,
"anon": 136916992,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5380
},
{
"t": 287.3,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376823808,
"peak": 379387904,
"anon": 136937472,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5680
},
{
"t": 302.4,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376590336,
"peak": 379387904,
"anon": 136941568,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5976
},
{
"t": 317.6,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376852480,
"peak": 379387904,
"anon": 136986624,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6276
},
{
"t": 332.7,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376635392,
"peak": 379387904,
"anon": 136994816,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6572
},
{
"t": 347.8,
"containers": {
"gitea": {
"limit": 536870912,
"current": 375865344,
"peak": 379387904,
"anon": 137007104,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6872
},
{
"t": 362.9,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376954880,
"peak": 379387904,
"anon": 137060352,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7172
},
{
"t": 378.0,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377217024,
"peak": 379387904,
"anon": 137068544,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7472
},
{
"t": 393.2,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376217600,
"peak": 379576320,
"anon": 137097216,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7768
},
{
"t": 408.3,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376217600,
"peak": 379576320,
"anon": 137101312,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8068
},
{
"t": 423.4,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376840192,
"peak": 379576320,
"anon": 137211904,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8368
},
{
"t": 438.5,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376881152,
"peak": 379576320,
"anon": 137506816,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8664
},
{
"t": 453.7,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376393728,
"peak": 379576320,
"anon": 137515008,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8964
},
{
"t": 468.8,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377413632,
"peak": 379576320,
"anon": 137523200,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9264
},
{
"t": 483.9,
"containers": {
"gitea": {
"limit": 536870912,
"current": 376918016,
"peak": 379576320,
"anon": 137523200,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9560
},
{
"t": 499.0,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377409536,
"peak": 379576320,
"anon": 137527296,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9860
},
{
"t": 514.1,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377962496,
"peak": 379576320,
"anon": 137539584,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10160
},
{
"t": 529.3,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377221120,
"peak": 379576320,
"anon": 137551872,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10456
},
{
"t": 544.4,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377204736,
"peak": 379576320,
"anon": 137572352,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10756
},
{
"t": 559.5,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377233408,
"peak": 379576320,
"anon": 137588736,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11056
},
{
"t": 574.6,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377249792,
"peak": 379576320,
"anon": 137617408,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11353
},
{
"t": 589.8,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377065472,
"peak": 379576320,
"anon": 137662464,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11652
},
{
"t": 604.9,
"containers": {
"gitea": {
"limit": 536870912,
"current": 377286656,
"peak": 379576320,
"anon": 137670656,
"swap": 0,
"swap_peak": 0,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11952
}
]
@@ -0,0 +1,6 @@
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[343]: Add max_parallel column to action_run_job
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[344]: Add deferred-matrix columns to ActionRunJob
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[345]: Add block on CODEOWNERS reviews branch protection
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[346]: Add license_path column to repo_license and backfill
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[347]: Add watch options
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[348]: Recreate email_hash table for SHA256 avatar hashes
@@ -0,0 +1,62 @@
[17:49:38] scratch drive folders cleared before FROM (R-656): none existed
[17:49:38] MV-gitea: deploying gitea at FROM {'gitea': 'gitea/gitea:1.27.3'}
[17:50:22] FROM settled=True in 30.9s :: {"gitea": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[17:50:22] fixture: the BOX walk's own (Gitea), through upgrade_boxport
[17:50:29] gitea: first-run installer POST / http=200
[17:50:35] gitea: installed through its own first-run form; the admin authenticates
[17:50:36] gitea: create repo http=201
[17:50:36] gitea: one commit (drill.txt) http=201
[17:50:36] gitea: the committed file read back http=200 same=True
[17:50:36] gitea: readback of the seeded repo http=200 ok=True
[17:50:36] C1 (seed reads back BEFORE): True
[17:50:37] MV-gitea: swapping to TO {'gitea': 'gitea/gitea:28.2.0'}
[17:50:52] TO up -d rc=0
[17:51:23] TO settled=True in 30.8s :: {"gitea": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[17:51:23] migration lines observed: 6
[17:51:23] gitea: the committed file read back http=200 same=True
[17:51:23] gitea: readback of the seeded repo http=200 ok=True
[17:51:23] RESULT (seed reads back AFTER): True
[17:51:24] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[17:51:39] + 15s gitea=332M/512M peak=333M kills=0 rs=0 reqs=300
[17:51:54] + 30s gitea=346M/512M peak=346M kills=0 rs=0 reqs=600
[17:52:09] + 45s gitea=352M/512M peak=353M kills=0 rs=0 reqs=900
[17:52:24] + 60s gitea=353M/512M peak=355M kills=0 rs=0 reqs=1196
[17:52:39] + 76s gitea=353M/512M peak=355M kills=0 rs=0 reqs=1496
[17:52:54] + 91s gitea=354M/512M peak=355M kills=0 rs=0 reqs=1796
[17:53:10] + 106s gitea=353M/512M peak=355M kills=0 rs=0 reqs=2092
[17:53:25] + 121s gitea=353M/512M peak=356M kills=0 rs=0 reqs=2392
[17:53:40] + 136s gitea=358M/512M peak=358M kills=0 rs=0 reqs=2692
[17:53:55] + 151s gitea=357M/512M peak=360M kills=0 rs=0 reqs=2988
[17:54:10] + 166s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3288
[17:54:25] + 182s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3588
[17:54:40] + 197s gitea=358M/512M peak=360M kills=0 rs=0 reqs=3884
[17:54:55] + 212s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4184
[17:55:11] + 227s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4484
[17:55:26] + 242s gitea=359M/512M peak=360M kills=0 rs=0 reqs=4784
[17:55:41] + 257s gitea=359M/512M peak=360M kills=0 rs=0 reqs=5080
[17:55:56] + 272s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5380
[17:56:11] + 287s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5680
[17:56:26] + 302s gitea=359M/512M peak=361M kills=0 rs=0 reqs=5976
[17:56:41] + 318s gitea=359M/512M peak=361M kills=0 rs=0 reqs=6276
[17:56:56] + 333s gitea=359M/512M peak=361M kills=0 rs=0 reqs=6572
[17:57:12] + 348s gitea=358M/512M peak=361M kills=0 rs=0 reqs=6872
[17:57:27] + 363s gitea=359M/512M peak=361M kills=0 rs=0 reqs=7172
[17:57:42] + 378s gitea=359M/512M peak=361M kills=0 rs=0 reqs=7472
[17:57:57] + 393s gitea=358M/512M peak=361M kills=0 rs=0 reqs=7768
[17:58:12] + 408s gitea=358M/512M peak=361M kills=0 rs=0 reqs=8068
[17:58:27] + 423s gitea=359M/512M peak=361M kills=0 rs=0 reqs=8368
[17:58:42] + 438s gitea=359M/512M peak=361M kills=0 rs=0 reqs=8664
[17:58:57] + 454s gitea=358M/512M peak=361M kills=0 rs=0 reqs=8964
[17:59:13] + 469s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9264
[17:59:28] + 484s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9560
[17:59:43] + 499s gitea=359M/512M peak=361M kills=0 rs=0 reqs=9860
[17:59:58] + 514s gitea=360M/512M peak=361M kills=0 rs=0 reqs=10160
[18:00:13] + 529s gitea=359M/512M peak=361M kills=0 rs=0 reqs=10456
[18:00:28] + 544s gitea=359M/512M peak=361M kills=0 rs=0 reqs=10756
[18:00:43] + 560s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11056
[18:00:58] + 575s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11353
[18:01:13] + 590s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11652
[18:01:29] + 605s gitea=359M/512M peak=361M kills=0 rs=0 reqs=11952
[18:01:29] memory watch: killed=False tight=[] requests=11952 codes={'200': 11952}
[18:01:29] MV-gitea: ABORT — putting the FROM images back
[18:04:34] ABORT: the app did NOT come back (rc=0, 184.8s)
@@ -0,0 +1,57 @@
gitea | Server listening on :: port 22.
gitea | Server listening on 0.0.0.0 port 22.
gitea | 2026/10/28 18:50:58 cmd/web.go:273:runWeb() [I] Starting Gitea on PID: 17
gitea | 2026/10/28 18:50:58 cmd/web.go:117:showWebStartupMessage() [I] Gitea version: 28.2.0 built with go1.27.2 : bindata, timetzdata,
gitea | 2026/10/28 18:50:58 cmd/web.go:118:showWebStartupMessage() [I] * RunMode: prod
gitea | 2026/10/28 18:50:58 cmd/web.go:119:showWebStartupMessage() [I] * AppPath: /usr/local/bin/gitea
gitea | 2026/10/28 18:50:58 cmd/web.go:120:showWebStartupMessage() [I] * WorkPath: /data/gitea
gitea | 2026/10/28 18:50:58 cmd/web.go:121:showWebStartupMessage() [I] * CustomPath: /data/gitea
gitea | 2026/10/28 18:50:58 cmd/web.go:122:showWebStartupMessage() [I] * ConfigFile: /data/gitea/conf/app.ini
gitea | 2026/10/28 18:50:58 cmd/web.go:123:showWebStartupMessage() [I] Prepare to run web server
gitea | 2026/10/28 18:50:58 routers/init.go:117:InitWebInstalled() [I] Git version: 2.54.0 (home: /data/gitea/home)
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:241:initAttachments() [I] Initialising Attachment storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:231:initAvatars() [I] Initialising Avatar storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:257:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:251:initLFS() [I] Initialising LFS storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:263:initRepoArchives() [I] Initialising Repository Archive storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:273:initPackages() [I] Initialising Packages storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:284:initActions() [I] Initialising Actions storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log
gitea | 2026/10/28 18:50:58 modules/storage/storage.go:288:initActions() [I] Initialising ActionsArtifacts storage with type: local
gitea | 2026/10/28 18:50:58 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts
gitea | 2026/10/28 18:50:58 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.
gitea | 2026/10/28 18:50:58 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...
gitea | 2026/10/28 18:50:58 cmd/web.go:207:serveInstalled() [I] PING DATABASE sqlite3
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[343]: Add max_parallel column to action_run_job
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[344]: Add deferred-matrix columns to ActionRunJob
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[345]: Add block on CODEOWNERS reviews branch protection
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[346]: Add license_path column to repo_license and backfill
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[347]: Add watch options
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[348]: Recreate email_hash table for SHA256 avatar hashes
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[349]: Expand action_schedule content column
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[350]: Add published_unix column to release
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[351]: Track transfer recipient access grants
gitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[352]: Add token columns to deploy_key
gitea | 2026/10/28 18:50:59 modelmigration/migrations.go:557:Migrate() [I] Migration[353]: Add audit event table
gitea | 2026/10/28 18:50:59 modelmigration/migrations.go:557:Migrate() [I] Migration[354]: Add Actions job queue indexes
gitea | 2026/10/28 18:50:59 modelmigration/migrations.go:557:Migrate() [I] Migration[355]: Add AutoMerge merged_commit_id column
gitea | 2026/10/28 18:50:59 modelmigration/migrations.go:557:Migrate() [I] Migration[356]: Add index on action_run commit_sha
gitea | 2026/10/28 18:50:59 modelmigration/migrations.go:557:Migrate() [I] Migration[357]: Normalize legacy team authorize values
gitea | 2026/10/28 18:50:59 routers/init.go:138:InitWebInstalled() [I] ORM engine initialization successful!
gitea | 2026/10/28 18:50:59 .../indexer/issues/indexer.go:78:InitIssueIndexer.1() [I] PID 17: Initializing Issue Indexer: bleve
gitea | 2026/10/28 18:50:59 .../indexer/stats/indexer.go:41:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories
gitea | 2026/10/28 18:50:59 .../indexer/stats/indexer.go:87:populateRepoIndexer() [I] Done (re)populating the repo stats indexer with existing repositories
gitea | 2026/10/28 18:50:59 .../indexer/issues/indexer.go:155:InitIssueIndexer.2() [I] Issue Indexer Initialization took 1.212019ms
gitea | 2026/10/28 18:50:59 cmd/web.go:233:serveInstalled() [I] Audit record output: disabled
gitea | 2026/10/28 18:50:59 cmd/web.go:339:listen() [I] Listen: http://0.0.0.0:3000
gitea | 2026/10/28 18:50:59 cmd/web.go:343:listen() [I] AppURL(ROOT_URL): https://git.gate.invalid/
gitea | 2026/10/28 18:50:59 cmd/web.go:346:listen() [I] LFS server enabled
gitea | 2026/10/28 18:50:59 modules/graceful/server.go:53:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 17
gitea | 2026/10/28 18:51:22 .../src/net/http/server.go:2358:HandlerFunc.ServeHTTP() [I] PING DATABASE sqlite3
gitea | 2026/10/28 18:51:22 HTTPRequest [I] router: completed GET /api/healthz for 127.0.0.1:39138, 200 OK in 1.2ms @ healthcheck/check.go:76(healthcheck.Check)
@@ -0,0 +1,8 @@
{
"gitea": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,56 @@
{
"harness_version": 5,
"edge": "MV-gitea",
"app": "gitea",
"note": "night 2026-09-23 within-a-major move: gitea=gitea/gitea:28.2.0",
"from": {
"gitea": "gitea/gitea:1.27.3"
},
"to": {
"gitea": "gitea/gitea:28.2.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kgitea | 2026/10/28 18:50:58 modelmigration/migrations.go:557:Migrate() [I] Migration[343]: Add max_parallel column to action_run_job",
"abort": "refuses",
"abort_detail": "ules/storage/local.go:48:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts\n\u001b[2Kgitea | 2026/10/28 19:04:26 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.\n\u001b[2Kgitea | 2026/10/28 19:04:26 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...\n\u001b[2Kgitea | 2026/10/28 19:04:26 cmd/web.go:205:serveInstalled() [I] PING DATABASE sqlite3\n\u001b[2Kgitea | 2026/10/28 19:04:26 .../migrations/migrations.go:532:Migrate() [F] Migration Error: Your database (migration version: 358) is for a newer Gitea, you can not use the newer database for this old Gitea release (343).\n\u001b[2Kgitea | Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data).\n\u001b[2Kgitea | Received signal 15; terminating.",
"engine_state_after": null,
"memory": {
"soak_s": 605.1,
"requested_s": 600,
"requests": 11952,
"codes": {
"200": 11952
},
"first_kill": null,
"containers": {
"gitea": {
"limit": 536870912,
"peak": 379576320,
"peak_pct": 0.707,
"anon_peak_sampled": 137670656,
"anon_peak_pct": 0.256,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"venue_swap_bytes": 0,
"load": "reached"
},
"marks": [],
"bench_overrides": null,
"duration_s": 30.8,
"measured_at": "2026-10-28T18:04:34Z",
"evidence": "evidence/MV-gitea",
"scratch_cleared": [],
"files_changed": [],
"files_changed_detail": [],
"files_ignored": [],
"total_s": 896.8
}
@@ -0,0 +1,216 @@
{
"app": "gitea",
"walk": "security",
"box_walk_version": 1,
"verdict": "proven",
"venue": "box 9202 (drill catalog), the guarded Update",
"from": {
"gitea": "gitea/gitea:1.27.3"
},
"to": {
"gitea": "gitea/gitea:28.2.0"
},
"observables_before": {
"pinned_images": {
"gitea": "gitea/gitea:1.27.3"
},
"installed_images": {
"gitea": "gitea/gitea:1.27.3"
},
"catalog_images": null,
"live_compose_image_lines": [
"image: gitea/gitea:1.27.3@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef"
],
"docker_inspect": [
"gitea gitea/gitea:1.27.3@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef 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": "f8723a77e7ca",
"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-28T17:51:48Z",
"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": 5.2,
"phase": "pulling",
"label": "Új verzió letöltése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 10.3,
"phase": "copying",
"label": "Az adatok másolása a frissítés előtt…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 15.4,
"phase": "verifying",
"label": "Működés ellenőrzése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 20.6,
"phase": "done",
"label": "Frissítve",
"updating": false,
"error": null,
"hold": null
}
],
"duration_s": 20.6,
"final_phase": "done",
"update_error": null,
"hold_reason": null,
"state": "running"
},
"observables_after": {
"pinned_images": {
"gitea": "gitea/gitea:28.2.0"
},
"installed_images": {
"gitea": "gitea/gitea:28.2.0"
},
"catalog_images": {
"gitea": "gitea/gitea:28.2.0"
},
"live_compose_image_lines": [
"image: gitea/gitea:28.2.0"
],
"docker_inspect": [
"gitea gitea/gitea:28.2.0 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": {
"gitea": "sha256:30777c91280d973fa02be48b1ade735bd6859e8f6f7af3b4444d519437852504"
},
"four_observables": {
"pinned": {
"gitea": "gitea/gitea:28.2.0"
},
"installed": {
"gitea": "gitea/gitea:28.2.0"
},
"catalog": {
"gitea": "gitea/gitea:28.2.0"
},
"live_compose": [
"gitea/gitea:28.2.0"
]
},
"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": {
"gitea": {
"samples": 60,
"anon_peak_bytes": 101941248,
"limit_bytes": 536870912,
"anon_peak_pct": 19.0,
"cgroup_peak_pct": 44.0,
"oom_kill_delta": 0,
"oom_killed_flag": false,
"restarts_delta": 0,
"running_all_samples": true,
"cgroup": "/sys/fs/cgroup/system.slice/docker-d7279449787499a35edb23419edd8e0ec9710c107347ff8e99ba3ec4bf7b1de6.scope"
}
},
"oom_kills": 0,
"restarts": 0,
"peak_pct": 19.0
},
"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": [
"18:50:45 [5] the box's drill mirror now at dff3cb84fc",
"18:50:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
"18:51:14 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:1.27.3'}",
"18:51:14 gate: git is gated — passed as the household (cookie set)",
"18:51:18 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
"18:51:24 gitea: first-run installer POST / http=200",
"18:51:33 gitea: installed through its own first-run form; the admin authenticates",
"18:51:33 gitea: create repo http=201",
"18:51:33 gitea: one commit (drill.txt) http=201",
"18:51:34 gitea: the committed file read back http=200 same=True",
"18:51:34 gitea: readback of the seeded repo http=200 ok=True",
"18:51:35 [5] drill commit f8723a77e7ca: gitea gitea/gitea:1.27.3 -> gitea/gitea:28.2.0 (push rc=0)",
"18:51:43 [5] the box's drill mirror now at f8723a77e7",
"18:51:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
"18:51:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
"18:51:53 + 5.2s phase=pulling label=Új verzió letöltése… err=None hold=None",
"18:51:58 + 10.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
"18:52:04 + 15.4s phase=verifying label=Működés ellenőrzése… err=None hold=None",
"18:52:09 + 20.6s phase=done label=Frissítve err=None hold=None",
"18:52:27 gitea: the committed file read back http=200 same=True",
"18:52:27 gitea: readback of the seeded repo http=200 ok=True",
"18:52:27 [7] memory soak 600 s …",
"19:02:33 [7] soak: peak 19.0% of the limit (anon), kills 0, restarts 0"
]
}
@@ -0,0 +1,25 @@
18:50:45 [5] the box's drill mirror now at dff3cb84fc
18:50:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
18:51:14 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:1.27.3'}
18:51:14 gate: git is gated — passed as the household (cookie set)
18:51:18 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
18:51:24 gitea: first-run installer POST / http=200
18:51:33 gitea: installed through its own first-run form; the admin authenticates
18:51:33 gitea: create repo http=201
18:51:33 gitea: one commit (drill.txt) http=201
18:51:34 gitea: the committed file read back http=200 same=True
18:51:34 gitea: readback of the seeded repo http=200 ok=True
18:51:35 [5] drill commit f8723a77e7ca: gitea gitea/gitea:1.27.3 -> gitea/gitea:28.2.0 (push rc=0)
18:51:43 [5] the box's drill mirror now at f8723a77e7
18:51:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
18:51:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
18:51:53 + 5.2s phase=pulling label=Új verzió letöltése… err=None hold=None
18:51:58 + 10.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
18:52:04 + 15.4s phase=verifying label=Működés ellenőrzése… err=None hold=None
18:52:09 + 20.6s phase=done label=Frissítve err=None hold=None
18:52:27 gitea: the committed file read back http=200 same=True
18:52:27 gitea: readback of the seeded repo http=200 ok=True
18:52:27 [7] memory soak 600 s …
19:02:33 [7] soak: peak 19.0% of the limit (anon), kills 0, restarts 0
19:02:33 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/p3/box/gitea/verdict.json
19:02:33 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
@@ -0,0 +1,3 @@
{
"label": "28.2.0-default"
}
@@ -0,0 +1,15 @@
19:02:43 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:03:15 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:03:23 [X] after remove: deployed=False leftovers=''
19:03:32 [5] the box's drill mirror now at f8723a77e7
19:03:36 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
19:04:01 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:28.2.0'}
19:04:02 gate: git is gated — passed as the household (cookie set)
19:04:02 gitea: first-run installer POST / http=200
19:06:03 gitea: installer POST / -> 200; the admin never authenticated (last 404) :: <!DOCTYPE html> <html lang="en-US" data-theme="gitea-auto"> <head> <meta http-equiv="Content-Security-Policy" content="default-src * data: blob:;script-src * 'n
seed failed
19:06:03 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:06:35 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:06:43 [X] after remove: deployed=False leftovers=''
19:06:35 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:06:43 [X] after remove: deployed=False leftovers=''
@@ -0,0 +1,28 @@
{
"label": "28.2.0-allowlist",
"image": "gitea/gitea:28.2.0",
"egress_env": [
"GITEA__migrations__ALLOWED_HOST_LIST=github.com,codeberg.org,gitlab.com",
"GITEA__migrations__EGRESS_MODE=strict"
],
"lan": {
"url": "http://192.168.0.1/x.git",
"http": "422",
"message": "You can not import from disallowed hosts."
},
"docker_internal": {
"url": "http://172.18.0.2/x.git",
"http": "422",
"message": "You can not import from disallowed hosts."
},
"github": {
"url": "https://github.com/octocat/Hello-World.git",
"http": "201",
"message": ""
},
"not_listed_public": {
"url": "https://gitea.com/gitea/act_runner.git",
"http": "422",
"message": "You can not import from disallowed hosts."
}
}
@@ -0,0 +1,25 @@
{
"label": "28.2.0-default",
"image": "gitea/gitea:28.2.0",
"egress_env": [],
"lan": {
"url": "http://192.168.0.1/x.git",
"http": "422",
"message": "You can not import from disallowed hosts."
},
"docker_internal": {
"url": "http://172.18.0.2/x.git",
"http": "422",
"message": "You can not import from disallowed hosts."
},
"github": {
"url": "https://github.com/octocat/Hello-World.git",
"http": "201",
"message": ""
},
"not_listed_public": {
"url": "https://gitea.com/gitea/act_runner.git",
"http": "201",
"message": ""
}
}
@@ -0,0 +1,17 @@
19:11:20 [5] the box's drill mirror now at d35407cd1e
19:11:24 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
19:11:44 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:28.2.0'}
19:11:44 gate: git is gated — passed as the household (cookie set)
19:11:51 gitea: first-run installer POST / http=200
19:11:57 gitea: installed through its own first-run form; the admin authenticates
19:11:57 gitea: create repo http=201
19:11:57 gitea: one commit (drill.txt) http=201
lan 422 You can not import from disallowed hosts.
docker_internal 422 You can not import from disallowed hosts.
github 201
not_listed_public 422 You can not import from disallowed hosts.
19:12:11 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:12:43 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:12:51 [X] after remove: deployed=False leftovers=''
19:12:43 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:12:51 [X] after remove: deployed=False leftovers=''
@@ -0,0 +1,20 @@
19:08:18 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:08:50 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:08:58 [X] after remove: deployed=False leftovers=''
19:09:07 [5] the box's drill mirror now at f8723a77e7
19:09:11 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
19:09:41 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:28.2.0'}
19:09:41 gate: git is gated — passed as the household (cookie set)
19:09:49 gitea: first-run installer POST / http=200
19:09:55 gitea: installed through its own first-run form; the admin authenticates
19:09:55 gitea: create repo http=201
19:09:56 gitea: one commit (drill.txt) http=201
lan 422 You can not import from disallowed hosts.
docker_internal 422 You can not import from disallowed hosts.
github 201
not_listed_public 201
19:10:17 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:10:49 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:10:57 [X] after remove: deployed=False leftovers=''
19:10:49 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:10:57 [X] after remove: deployed=False leftovers=''
@@ -0,0 +1,29 @@
19:13:12 [5] the box's drill mirror now at 51630aaf5f
19:13:17 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
19:13:32 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:1.27.3'}
19:13:32 gate: git is gated — passed as the household (cookie set)
19:13:38 gitea: first-run installer POST / http=200
19:13:44 gitea: installed through its own first-run form; the admin authenticates
19:13:45 gitea: create repo http=201
19:13:45 gitea: one commit (drill.txt) http=201
19:13:45 gitea: the committed file read back http=200 same=True
19:13:45 gitea: readback of the seeded repo http=200 ok=True
19:13:46 drill commit 59f9cdff434a: gitea TO with failing checks
19:13:55 [5] the box's drill mirror now at 59f9cdf
19:13:59 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
19:13:59 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
19:14:05 + 5.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
19:14:06 + 6.2s phase=pulling label=Új verzió letöltése… err=None hold=None
19:14:10 + 10.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
19:14:16 + 16.4s phase=verifying label=Működés ellenőrzése… err=None hold=None
19:19:19 + 319.6s phase=undoing label=Visszaállítás az előző változatra… err=None hold=None
19:19:26 + 326.7s phase=undone label=Visszaállítva az előző változatra err=None hold=None
19:19:52 gitea: the committed file read back http=200 same=True
19:19:52 gitea: readback of the seeded repo http=200 ok=True
19:19:52 RESULT proven — TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back
19:19:52 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
19:20:24 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
19:20:33 [X] after remove: deployed=False leftovers=''
19:20:43 [5] the box's drill mirror now at 2bb94c27
19:20:43 drill revert 59f9cdff434a: rc=0
19:20:43 drill templates/gitea equal to before: True
@@ -0,0 +1,180 @@
{
"app": "gitea",
"from": {
"gitea": "gitea/gitea:1.27.3"
},
"to": {
"gitea": "gitea/gitea:28.2.0"
},
"started": "2026-10-28T18:13:03Z",
"drill_head_before": "51630aaf5f7d132bac746742f3c5c1fd2ecf2e73",
"failing_compose_main_healthcheck": [
"test: [\"CMD\", \"false\"]"
],
"failing_probe": true,
"update": {
"accepted": true,
"http": "202",
"phases": [
{
"t": 0.0,
"phase": "backing-up",
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 5.1,
"phase": "safety-dump",
"label": "Adatb\u00e1zis pillanatk\u00e9p\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 6.2,
"phase": "pulling",
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 10.3,
"phase": "copying",
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 16.4,
"phase": "verifying",
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 319.6,
"phase": "undoing",
"label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026",
"updating": true,
"error": null,
"hold": null
},
{
"t": 326.7,
"phase": "undone",
"label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra",
"updating": false,
"error": null,
"hold": null
}
],
"duration_s": 326.8,
"final_phase": "undone",
"update_error": null,
"hold_reason": null,
"state": "running"
},
"to_log_while_verifying": [
"2026/10/28 19:14:19 modules/storage/storage.go:257:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars",
"2026/10/28 19:14:19 modules/storage/storage.go:251:initLFS() [I] Initialising LFS storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs",
"2026/10/28 19:14:19 modules/storage/storage.go:263:initRepoArchives() [I] Initialising Repository Archive storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive",
"2026/10/28 19:14:19 modules/storage/storage.go:273:initPackages() [I] Initialising Packages storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages",
"2026/10/28 19:14:19 modules/storage/storage.go:284:initActions() [I] Initialising Actions storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_log",
"2026/10/28 19:14:19 modules/storage/storage.go:288:initActions() [I] Initialising ActionsArtifacts storage with type: local",
"2026/10/28 19:14:19 modules/storage/local.go:49:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/actions_artifacts",
"2026/10/28 19:14:19 routers/common/db.go:22:InitDBEngine() [I] Beginning ORM engine initialization.",
"2026/10/28 19:14:19 routers/common/db.go:29:InitDBEngine() [I] ORM engine initialization attempt #1/10...",
"2026/10/28 19:14:19 cmd/web.go:207:serveInstalled() [I] PING DATABASE sqlite3",
"2026/10/28 19:14:19 modelmigration/migrations.go:557:Migrate() [I] Migration[343]: Add max_parallel column to action_run_job",
"2026/10/28 19:14:19 modelmigration/migrations.go:557:Migrate() [I] Migration[344]: Add deferred-matrix columns to ActionRunJob",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[345]: Add block on CODEOWNERS reviews branch protection",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[346]: Add license_path column to repo_license and backfill",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[347]: Add watch options",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[348]: Recreate email_hash table for SHA256 avatar hashes",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[349]: Expand action_schedule content column",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[350]: Add published_unix column to release",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[351]: Track transfer recipient access grants",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[352]: Add token columns to deploy_key",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[353]: Add audit event table",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[354]: Add Actions job queue indexes",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[355]: Add AutoMerge merged_commit_id column",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[356]: Add index on action_run commit_sha",
"2026/10/28 19:14:20 modelmigration/migrations.go:557:Migrate() [I] Migration[357]: Normalize legacy team authorize values",
"2026/10/28 19:14:20 routers/init.go:138:InitWebInstalled() [I] ORM engine initialization successful!",
"2026/10/28 19:14:20 .../indexer/issues/indexer.go:78:InitIssueIndexer.1() [I] PID 17: Initializing Issue Indexer: bleve",
"2026/10/28 19:14:20 .../indexer/stats/indexer.go:41:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories",
"2026/10/28 19:14:20 .../indexer/stats/indexer.go:87:populateRepoIndexer() [I] Done (re)populating the repo stats indexer with existing repositories",
"2026/10/28 19:14:20 .../indexer/issues/indexer.go:155:InitIssueIndexer.2() [I] Issue Indexer Initialization took 1.151364ms",
"2026/10/28 19:14:20 cmd/web.go:233:serveInstalled() [I] Audit record output: disabled",
"2026/10/28 19:14:20 cmd/web.go:339:listen() [I] Listen: http://0.0.0.0:3000",
"2026/10/28 19:14:20 cmd/web.go:343:listen() [I] AppURL(ROOT_URL): https://git.enkisfelhom.hu/",
"2026/10/28 19:14:20 cmd/web.go:346:listen() [I] LFS server enabled",
"2026/10/28 19:14:20 modules/graceful/server.go:53:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 17"
],
"observables_after": {
"pinned_images": {
"gitea": "gitea/gitea:1.27.3"
},
"installed_images": {
"gitea": "gitea/gitea:1.27.3"
},
"catalog_images": {
"gitea": "gitea/gitea:28.2.0"
},
"live_compose_image_lines": [
"image: gitea/gitea:1.27.3@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef"
],
"docker_inspect": [
"gitea gitea/gitea:1.27.3@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef running=true restarts=0"
]
},
"running_images_after": {
"gitea": "gitea/gitea:1.27.3@sha256:87a67ee09d3ae0d1df5fda5dcda3e2a1f9236a45b0a59025d6e00e46adc43bef"
},
"seed_after_undo": true,
"verdict": "proven",
"why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
"drill_head_after": "2bb94c27a5745f17730d602722d48a1cfa47b18a",
"drill_tree_equal_to_before": true,
"log": [
"19:13:12 [5] the box's drill mirror now at 51630aaf5f",
"19:13:17 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
"19:13:32 [1] deployed, controller state=running, pinned={'gitea': 'gitea/gitea:1.27.3'}",
"19:13:32 gate: git is gated \u2014 passed as the household (cookie set)",
"19:13:38 gitea: first-run installer POST / http=200",
"19:13:44 gitea: installed through its own first-run form; the admin authenticates",
"19:13:45 gitea: create repo http=201",
"19:13:45 gitea: one commit (drill.txt) http=201",
"19:13:45 gitea: the committed file read back http=200 same=True",
"19:13:45 gitea: readback of the seeded repo http=200 ok=True",
"19:13:46 drill commit 59f9cdff434a: gitea TO with failing checks",
"19:13:55 [5] the box's drill mirror now at 59f9cdf",
"19:13:59 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
"19:13:59 + 0.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
"19:14:05 + 5.1s phase=safety-dump label=Adatb\u00e1zis pillanatk\u00e9p\u2026 err=None hold=None",
"19:14:06 + 6.2s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
"19:14:10 + 10.3s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
"19:14:16 + 16.4s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
"19:19:19 + 319.6s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None",
"19:19:26 + 326.7s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None",
"19:19:52 gitea: the committed file read back http=200 same=True",
"19:19:52 gitea: readback of the seeded repo http=200 ok=True",
"19:19:52 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
"19:19:52 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}",
"19:20:24 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmaz\u00e1",
"19:20:33 [X] after remove: deployed=False leftovers=''",
"19:20:43 [5] the box's drill mirror now at 2bb94c27",
"19:20:43 drill revert 59f9cdff434a: rc=0",
"19:20:43 drill templates/gitea equal to before: True"
]
}
@@ -0,0 +1,46 @@
#!/usr/bin/env python3
"""gitea_egress.py LABEL — D57 on 9202: what may Gitea's repository import (migration) reach? Installs Gitea from the
drill through the product (the box fixture's own first-run installer = the admin), then asks POST /api/v1/repos/migrate
for: a LAN address (192.168.0.1), a docker-internal one (traefik on 172.18.0.x), a small public GitHub repo, and a public
host that an allow-list would not name (gitea.com). Prints and writes egress-LABEL.json; removes the app at the end.
usage: SC=<dir with .ctlpw> TARGET=9202 EV=<dir> python3 gitea_egress.py LABEL"""
import json, os, secrets, sys
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
import box_walk as w
import upgrade_fixtures_box as fb
label, EV = sys.argv[1], os.environ["EV"]
os.makedirs(EV, exist_ok=True)
sub = "git"
w.login()
res = {"label": label}
try:
if w.stack("gitea").get("deployed"):
w.remove("gitea")
w.refresh_box_mirror(); w.sync_rescan()
if not w.deploy("gitea", sub):
print("install failed"); sys.exit(1)
t = fb.Gitea().seed(w, sub, w.say)
if not t:
print("seed failed"); sys.exit(1)
res["image"] = w.guest("docker inspect -f '{{.Config.Image}}' gitea").strip()
res["egress_env"] = [l for l in w.guest("docker inspect -f '{{range .Config.Env}}{{println .}}{{end}}' gitea").split("\n")
if "migrations" in l or "EGRESS" in l]
traefik = w.guest("docker inspect -f '{{with index .NetworkSettings.Networks \"traefik-public\"}}{{.IPAddress}}{{end}}' traefik").strip()
targets = {"lan": "http://192.168.0.1/x.git", "docker_internal": f"http://{traefik}/x.git",
"github": "https://github.com/octocat/Hello-World.git", "not_listed_public": "https://gitea.com/gitea/act_runner.git"}
for k, url in targets.items():
rc, code, body = w.app_curl(sub, "/api/v1/repos/migrate", "-u", f"{t['user']}:{t['pw']}",
"-H", "Content-Type: application/json",
data=json.dumps({"clone_addr": url, "repo_name": "mig" + k.replace("_", "") + secrets.token_hex(2),
"service": "git", "private": True}), method="POST", timeout=180)
try:
msg = json.loads(body).get("message", "")[:160]
except ValueError:
msg = (body or "")[:160]
res[k] = {"url": url, "http": code, "message": msg}
print(k, code, msg)
finally:
json.dump(res, open(os.path.join(EV, f"egress-{label}.json"), "w"), indent=1)
if w.stack("gitea").get("deployed"):
w.remove("gitea")
print("\n".join(w.LOG[-2:]))
@@ -0,0 +1,16 @@
RESTORED-IDENTICAL
26: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
2026/10/28 20:34:37 sync.go:535: [INFO] [sync] Updated wanderer/docker-compose.yml
2026/10/28 20:34:37 sync.go:535: [INFO] [sync] Updated zipline/docker-compose.yml
2026/10/28 20:34:37 sync.go:535: [INFO] [sync] Updated zipline/.felhom.yml
2026/10/28 20:34:37 sync.go:261: [INFO] [sync] catalog moved 320cff5d0a1a -> 0baf8f948575 (0 new, 15 stack dir(s) changed)
2026/10/28 20:34:37 sync.go:299: [INFO] [sync] Catalog sync complete
2026/10/28 20:34:37 sync.go:142: [INFO] [sync] Initial sync: Sablonok frissítve — frissítve: adventurelog, dawarich, ghost, gitea, home-assistant, homepage, immich, karakeep, metube, papra, seerr,
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 320cff5d
cache HEAD 0baf8f9
https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
@@ -0,0 +1,143 @@
[18:13:24] scratch drive folders cleared before FROM (R-656): none existed
[18:13:24] MV-wanderer: deploying wanderer at FROM {'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
[18:14:37] FROM settled=True in 36.5s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[18:14:37] fixture: the BOX walk's own (Wanderer), through upgrade_boxport
[18:14:38] wanderer: sign-up http=200
[18:14:38] wanderer: seeded user drillba47be08 and private list Drill-b7cd18c6bf http=200 id=True
[18:14:38] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:14:38] C1 (seed reads back BEFORE): True
[18:14:39] MV-wanderer: swapping to TO {'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
[18:15:12] TO up -d rc=0
[18:15:48] TO settled=True in 36.4s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[18:15:49] migration lines observed: 0
[18:15:49] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:15:49] RESULT (seed reads back AFTER): True
[18:15:49] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[18:16:05] + 15s wanderer=136M/512M peak=140M kills=0 rs=0 wanderer-db=19M/256M peak=19M kills=0 rs=0 wanderer-search=76M/384M peak=78M kills=0 rs=0 reqs=248
[18:16:20] + 30s wanderer=136M/512M peak=142M kills=0 rs=0 wanderer-db=21M/256M peak=21M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=500
[18:16:35] + 46s wanderer=138M/512M peak=142M kills=0 rs=0 wanderer-db=23M/256M peak=24M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=743
[18:16:50] + 61s wanderer=138M/512M peak=144M kills=0 rs=0 wanderer-db=28M/256M peak=29M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=973
[18:17:05] + 76s wanderer=140M/512M peak=145M kills=0 rs=0 wanderer-db=30M/256M peak=30M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1221
[18:17:20] + 91s wanderer=138M/512M peak=145M kills=0 rs=0 wanderer-db=30M/256M peak=31M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1467
[18:17:36] + 106s wanderer=140M/512M peak=145M kills=0 rs=0 wanderer-db=32M/256M peak=34M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1714
[18:17:51] + 122s wanderer=138M/512M peak=145M kills=0 rs=0 wanderer-db=34M/256M peak=34M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=1964
[18:18:06] + 137s wanderer=138M/512M peak=150M kills=0 rs=0 wanderer-db=35M/256M peak=37M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2200
[18:18:21] + 152s wanderer=140M/512M peak=150M kills=0 rs=0 wanderer-db=37M/256M peak=38M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2448
[18:18:36] + 167s wanderer=138M/512M peak=150M kills=0 rs=0 wanderer-db=40M/256M peak=40M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2705
[18:18:52] + 182s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=40M/256M peak=41M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=2946
[18:19:07] + 197s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=42M/256M peak=43M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3192
[18:19:22] + 212s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=44M/256M peak=44M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3436
[18:19:37] + 228s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=44M/256M peak=45M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3672
[18:19:52] + 243s wanderer=138M/512M peak=153M kills=0 rs=0 wanderer-db=46M/256M peak=47M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=3919
[18:20:07] + 258s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=48M/256M peak=49M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4160
[18:20:23] + 273s wanderer=143M/512M peak=153M kills=0 rs=0 wanderer-db=49M/256M peak=51M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4393
[18:20:38] + 288s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=51M/256M peak=52M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4629
[18:20:53] + 304s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=52M/256M peak=53M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4860
[18:21:08] + 319s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=54M/256M peak=55M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5116
[18:21:23] + 334s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=57M/256M peak=58M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5360
[18:21:39] + 349s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=60M/256M peak=60M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5613
[18:21:54] + 364s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=60M/256M peak=61M kills=0 rs=0 wanderer-search=78M/384M peak=80M kills=0 rs=0 reqs=5849
[18:22:09] + 380s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=62M/256M peak=64M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6085
[18:22:24] + 395s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=65M/256M peak=65M kills=0 rs=0 wanderer-search=78M/384M peak=80M kills=0 rs=0 reqs=6335
[18:22:39] + 410s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=67M/256M peak=68M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6586
[18:22:54] + 425s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=69M/256M peak=70M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6836
[18:23:10] + 440s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=72M/256M peak=72M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=7090
[18:23:25] + 455s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=73M/256M peak=74M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=7350
[18:23:40] + 471s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=75M/256M peak=76M kills=0 rs=0 wanderer-search=82M/384M peak=82M kills=0 rs=0 reqs=7599
[18:23:55] + 486s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=78M/256M peak=78M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=7853
[18:24:10] + 501s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=80M/256M peak=80M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8115
[18:24:25] + 516s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=81M/256M peak=82M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8362
[18:24:41] + 531s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=84M/256M peak=85M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8607
[18:24:56] + 546s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=85M/256M peak=86M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8873
[18:25:11] + 562s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=88M/256M peak=89M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9108
[18:25:26] + 577s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=90M/256M peak=91M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9369
[18:25:41] + 592s wanderer=143M/512M peak=153M kills=0 rs=0 wanderer-db=92M/256M peak=93M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9610
[18:25:57] + 607s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=94M/256M peak=94M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9853
[18:25:57] memory watch: killed=False tight=[] requests=9854 codes={'200': 9854}
[18:25:57] MV-wanderer: ABORT — putting the FROM images back
[18:27:07] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:27:07] ABORT: app came back in 36.5s; data present=True
{
"harness_version": 5,
"edge": "MV-wanderer",
"app": "wanderer",
"note": "definition step to wanderer-meili",
"from": {
"wanderer": "flomp/wanderer-web:v0.21.2",
"wanderer-db": "flomp/wanderer-db:v0.21.2",
"wanderer-search": "getmeili/meilisearch:v1.36.0"
},
"to": {
"wanderer": "flomp/wanderer-web:v0.21.2",
"wanderer-db": "flomp/wanderer-db:v0.21.2",
"wanderer-search": "getmeili/meilisearch:v1.36.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": null,
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": {
"soak_s": 607.6,
"requested_s": 600,
"requests": 9854,
"codes": {
"200": 9854
},
"first_kill": null,
"containers": {
"wanderer": {
"limit": 536870912,
"peak": 161411072,
"peak_pct": 0.301,
"anon_peak_sampled": 140115968,
"anon_peak_pct": 0.261,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"wanderer-db": {
"limit": 268435456,
"peak": 99348480,
"peak_pct": 0.37,
"anon_peak_sampled": 57409536,
"anon_peak_pct": 0.214,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"wanderer-search": {
"limit": 402653184,
"peak": 88600576,
"peak_pct": 0.22,
"anon_peak_sampled": 71450624,
"anon_peak_pct": 0.177,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"venue_swap_bytes": 0,
"load": "reached"
},
"marks": [],
"bench_overrides": null,
"duration_s": 36.4,
"measured_at": "2026-10-28T18:27:07Z",
"evidence": "evidence/MV-wanderer",
"scratch_cleared": [],
"files_changed": [],
"files_changed_detail": [],
"files_ignored": [],
"total_s": 822.6
}
@@ -0,0 +1,20 @@
{
"wanderer": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"wanderer-db": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"wanderer-search": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,75 @@
wanderer |
wanderer | > wanderer@0.21.2 start
wanderer | > node watcher.js & node server.js
wanderer |
wanderer | [File Watcher] Service active. Watching: /app/uploads
wanderer | Listening on http://0.0.0.0:3000
wanderer-search |
wanderer-search | 888b d888 d8b 888 d8b 888
wanderer-search | 8888b d8888 Y8P 888 Y8P 888
wanderer-search | 88888b.d88888 888 888
wanderer-search | 888Y88888P888 .d88b. 888 888 888 .d8888b .d88b. 8888b. 888d888 .d8888b 88888b.
wanderer-search | 888 Y888P 888 d8P Y8b 888 888 888 88K d8P Y8b "88b 888P" d88P" 888 "88b
wanderer-db | 2026/10/28 18:26:14 Settings synced for index [trails]
wanderer-db | 2026/10/28 18:26:14 Settings synced for index [lists]
wanderer-db | 2026/10/28 18:26:14 Settings synced for index [actors]
wanderer-db | 2026/10/28 18:26:14 backfill polyline started
wanderer-search | 888 Y8P 888 88888888 888 888 888 "Y8888b. 88888888 .d888888 888 888 888 888
wanderer-search | 888 " 888 Y8b. 888 888 888 X88 Y8b. 888 888 888 Y88b. 888 888
wanderer-search | 888 888 "Y8888 888 888 888 88888P' "Y8888 "Y888888 888 "Y8888P 888 888
wanderer-search |
wanderer-search | Config file path: "none"
wanderer-search | Database path: "./data.ms"
wanderer-search | Server listening on: "http://0.0.0.0:7700"
wanderer-search | Environment: "development"
wanderer-search | Commit SHA: "2458d44f2173e26e33356482b5e26787e4e45319"
wanderer-search | Commit date: "unknown"
wanderer-search | Package version: "1.36.0"
wanderer-search | Anonymous telemetry: "Disabled"
wanderer-db | 2026/10/28 18:26:14 backfill polyline completed: processed=0 failed=0
wanderer-db | 2026/10/28 18:26:14 Server started at http://0.0.0.0:8090
wanderer-db | ├─ REST API: http://0.0.0.0:8090/api/
wanderer-search |
wanderer-search | A master key has been set. Requests to Meilisearch won't be authorized unless you provide an authentication key.
wanderer-search |
wanderer-search | Check out Meilisearch Cloud! https://www.meilisearch.com/cloud?utm_campaign=oss&utm_source=engine&utm_medium=cli
wanderer-search | Documentation: https://www.meilisearch.com/docs
wanderer-search | Source code: https://github.com/meilisearch/meilisearch
wanderer-search | Discord: https://discord.meilisearch.com
wanderer-search |
wanderer-search | 2026-10-28T18:25:58.931713Z  INFO actix_server::builder: starting 6 workers
wanderer-search | 2026-10-28T18:25:58.931763Z  INFO actix_server::server: Actix runtime found; starting in Actix runtime
wanderer-db | └─ Dashboard: http://0.0.0.0:8090/_/
wanderer-search | 2026-10-28T18:25:58.931771Z  INFO actix_server::server: starting service: "actix-web-service-0.0.0.0:7700", workers: 6, listening on: 0.0.0.0:7700
wanderer-db |
wanderer-db | (!) Launch the URL below in the browser if it hasn't been open already to create your first superuser account:
wanderer-search | 2026-10-28T18:26:13.988149Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=479µs time.idle=20.1µs
wanderer-search | 2026-10-28T18:26:14.824975Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=594µs time.idle=462µs
wanderer-search | 2026-10-28T18:26:14.829969Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/trails/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=245µs time.idle=3.83ms
wanderer-search | 2026-10-28T18:26:14.831561Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=343µs time.idle=118µs
wanderer-search | 2026-10-28T18:26:14.836470Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/lists/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=125µs time.idle=4.27ms
wanderer-search | 2026-10-28T18:26:14.837390Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=318µs time.idle=113µs
wanderer-search | 2026-10-28T18:26:14.846106Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:26:14.846114Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/actors/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=126µs time.idle=8.17ms
wanderer-search | 2026-10-28T18:26:14.847490Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/health query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=73.0µs time.idle=96.0µs
wanderer-search | 2026-10-28T18:26:14.848165Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=87.0µs time.idle=111µs
wanderer-db | http://0.0.0.0:8090/_/#/pbinstall/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb2xsZWN0aW9uSWQiOiJwYmNfMzE0MjYzNTgyMyIsImV4cCI6MTc5MzIxMzc3NCwiaWQiOiI0cXhsdDJldnVuenc5aTciLCJyZWZyZXNoYWJsZSI6ZmFsc2UsInR5cGUiOiJhdXRoIn0.WtycyiQLGDSS4kXFlhx7yONdEaoDIIa2mxC4F1fKlu0
wanderer-db | (you can also create your first superuser by running: /pocketbase superuser upsert EMAIL PASS)
wanderer-db |
wanderer-search | 2026-10-28T18:26:14.848795Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=130µs time.idle=132µs
wanderer-search | 2026-10-28T18:26:14.849597Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=90.4µs time.idle=111µs
wanderer-search | 2026-10-28T18:26:14.850587Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=111µs time.idle=128µs
wanderer-search | 2026-10-28T18:26:14.851294Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=80.2µs time.idle=126µs
wanderer-search | 2026-10-28T18:26:14.851891Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=83.3µs time.idle=119µs
wanderer-search | 2026-10-28T18:26:14.860679Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:26:14.870912Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:26:29.047526Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=61.5µs time.idle=17.1µs
wanderer-search | 2026-10-28T18:26:44.102373Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=111µs time.idle=17.7µs
wanderer-search | 2026-10-28T18:26:59.176374Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=59.9µs time.idle=18.1µs
wanderer-search | 2026-10-28T18:27:00.741206Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=173µs time.idle=386µs
wanderer-search | 2026-10-28T18:27:00.836677Z  INFO HTTP request{method=POST host="wanderer-search:7700" route=/indexes/trails/search query_parameters= user_agent=node status_code=200}: meilisearch: close time.busy=535µs time.idle=1.16ms
wanderer-search | 2026-10-28T18:27:07.087704Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=109µs time.idle=337µs
wanderer-search | 2026-10-28T18:27:07.136138Z  INFO HTTP request{method=POST host="wanderer-search:7700" route=/indexes/trails/search query_parameters= user_agent=node status_code=200}: meilisearch: close time.busy=360µs time.idle=1.04ms
wanderer-search | 2026-10-28T18:27:07.204339Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=83.2µs time.idle=261µs
wanderer-search | 2026-10-28T18:27:07.311119Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=75.2µs time.idle=233µs
wanderer-search | 2026-10-28T18:27:07.413841Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=80.5µs time.idle=271µs
@@ -0,0 +1,59 @@
[18:13:24] scratch drive folders cleared before FROM (R-656): none existed
[18:13:24] MV-wanderer: deploying wanderer at FROM {'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
[18:14:37] FROM settled=True in 36.5s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[18:14:37] fixture: the BOX walk's own (Wanderer), through upgrade_boxport
[18:14:38] wanderer: sign-up http=200
[18:14:38] wanderer: seeded user drillba47be08 and private list Drill-b7cd18c6bf http=200 id=True
[18:14:38] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:14:38] C1 (seed reads back BEFORE): True
[18:14:39] MV-wanderer: swapping to TO {'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
[18:15:12] TO up -d rc=0
[18:15:48] TO settled=True in 36.4s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[18:15:49] migration lines observed: 0
[18:15:49] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:15:49] RESULT (seed reads back AFTER): True
[18:15:49] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[18:16:05] + 15s wanderer=136M/512M peak=140M kills=0 rs=0 wanderer-db=19M/256M peak=19M kills=0 rs=0 wanderer-search=76M/384M peak=78M kills=0 rs=0 reqs=248
[18:16:20] + 30s wanderer=136M/512M peak=142M kills=0 rs=0 wanderer-db=21M/256M peak=21M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=500
[18:16:35] + 46s wanderer=138M/512M peak=142M kills=0 rs=0 wanderer-db=23M/256M peak=24M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=743
[18:16:50] + 61s wanderer=138M/512M peak=144M kills=0 rs=0 wanderer-db=28M/256M peak=29M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=973
[18:17:05] + 76s wanderer=140M/512M peak=145M kills=0 rs=0 wanderer-db=30M/256M peak=30M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1221
[18:17:20] + 91s wanderer=138M/512M peak=145M kills=0 rs=0 wanderer-db=30M/256M peak=31M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1467
[18:17:36] + 106s wanderer=140M/512M peak=145M kills=0 rs=0 wanderer-db=32M/256M peak=34M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=1714
[18:17:51] + 122s wanderer=138M/512M peak=145M kills=0 rs=0 wanderer-db=34M/256M peak=34M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=1964
[18:18:06] + 137s wanderer=138M/512M peak=150M kills=0 rs=0 wanderer-db=35M/256M peak=37M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2200
[18:18:21] + 152s wanderer=140M/512M peak=150M kills=0 rs=0 wanderer-db=37M/256M peak=38M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2448
[18:18:36] + 167s wanderer=138M/512M peak=150M kills=0 rs=0 wanderer-db=40M/256M peak=40M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=2705
[18:18:52] + 182s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=40M/256M peak=41M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=2946
[18:19:07] + 197s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=42M/256M peak=43M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3192
[18:19:22] + 212s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=44M/256M peak=44M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3436
[18:19:37] + 228s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=44M/256M peak=45M kills=0 rs=0 wanderer-search=76M/384M peak=79M kills=0 rs=0 reqs=3672
[18:19:52] + 243s wanderer=138M/512M peak=153M kills=0 rs=0 wanderer-db=46M/256M peak=47M kills=0 rs=0 wanderer-search=77M/384M peak=79M kills=0 rs=0 reqs=3919
[18:20:07] + 258s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=48M/256M peak=49M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4160
[18:20:23] + 273s wanderer=143M/512M peak=153M kills=0 rs=0 wanderer-db=49M/256M peak=51M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4393
[18:20:38] + 288s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=51M/256M peak=52M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4629
[18:20:53] + 304s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=52M/256M peak=53M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=4860
[18:21:08] + 319s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=54M/256M peak=55M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5116
[18:21:23] + 334s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=57M/256M peak=58M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5360
[18:21:39] + 349s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=60M/256M peak=60M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=5613
[18:21:54] + 364s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=60M/256M peak=61M kills=0 rs=0 wanderer-search=78M/384M peak=80M kills=0 rs=0 reqs=5849
[18:22:09] + 380s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=62M/256M peak=64M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6085
[18:22:24] + 395s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=65M/256M peak=65M kills=0 rs=0 wanderer-search=78M/384M peak=80M kills=0 rs=0 reqs=6335
[18:22:39] + 410s wanderer=140M/512M peak=153M kills=0 rs=0 wanderer-db=67M/256M peak=68M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6586
[18:22:54] + 425s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=69M/256M peak=70M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=6836
[18:23:10] + 440s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=72M/256M peak=72M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=7090
[18:23:25] + 455s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=73M/256M peak=74M kills=0 rs=0 wanderer-search=77M/384M peak=80M kills=0 rs=0 reqs=7350
[18:23:40] + 471s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=75M/256M peak=76M kills=0 rs=0 wanderer-search=82M/384M peak=82M kills=0 rs=0 reqs=7599
[18:23:55] + 486s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=78M/256M peak=78M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=7853
[18:24:10] + 501s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=80M/256M peak=80M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8115
[18:24:25] + 516s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=81M/256M peak=82M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8362
[18:24:41] + 531s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=84M/256M peak=85M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8607
[18:24:56] + 546s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=85M/256M peak=86M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=8873
[18:25:11] + 562s wanderer=141M/512M peak=153M kills=0 rs=0 wanderer-db=88M/256M peak=89M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9108
[18:25:26] + 577s wanderer=139M/512M peak=153M kills=0 rs=0 wanderer-db=90M/256M peak=91M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9369
[18:25:41] + 592s wanderer=143M/512M peak=153M kills=0 rs=0 wanderer-db=92M/256M peak=93M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9610
[18:25:57] + 607s wanderer=142M/512M peak=153M kills=0 rs=0 wanderer-db=94M/256M peak=94M kills=0 rs=0 wanderer-search=81M/384M peak=84M kills=0 rs=0 reqs=9853
[18:25:57] memory watch: killed=False tight=[] requests=9854 codes={'200': 9854}
[18:25:57] MV-wanderer: ABORT — putting the FROM images back
[18:27:07] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
[18:27:07] ABORT: app came back in 36.5s; data present=True
@@ -0,0 +1,70 @@
wanderer-db | 2026/10/28 18:14:56 Settings synced for index [actors]
wanderer-search |
wanderer-search | 888b d888 d8b 888 d8b 888
wanderer-search | 8888b d8888 Y8P 888 Y8P 888
wanderer-search | 88888b.d88888 888 888
wanderer-search | 888Y88888P888 .d88b. 888 888 888 .d8888b .d88b. 8888b. 888d888 .d8888b 88888b.
wanderer-search | 888 Y888P 888 d8P Y8b 888 888 888 88K d8P Y8b "88b 888P" d88P" 888 "88b
wanderer-db | 2026/10/28 18:14:56 Settings synced for index [trails]
wanderer-search | 888 Y8P 888 88888888 888 888 888 "Y8888b. 88888888 .d888888 888 888 888 888
wanderer-search | 888 " 888 Y8b. 888 888 888 X88 Y8b. 888 888 888 Y88b. 888 888
wanderer-search | 888 888 "Y8888 888 888 888 88888P' "Y8888 "Y888888 888 "Y8888P 888 888
wanderer-search |
wanderer-search | Config file path: "none"
wanderer-db | 2026/10/28 18:14:56 Settings synced for index [lists]
wanderer-db | 2026/10/28 18:14:56 backfill polyline started
wanderer-search | Database path: "./data.ms"
wanderer-db | 2026/10/28 18:14:56 backfill polyline completed: processed=0 failed=0
wanderer-search | Server listening on: "http://0.0.0.0:7700"
wanderer-db | 2026/10/28 18:14:56 Server started at http://0.0.0.0:8090
wanderer-search | Environment: "development"
wanderer-search | Commit SHA: "2458d44f2173e26e33356482b5e26787e4e45319"
wanderer-search | Commit date: "unknown"
wanderer-search | Package version: "1.36.0"
wanderer-db | ├─ REST API: http://0.0.0.0:8090/api/
wanderer-search | Anonymous telemetry: "Disabled"
wanderer-db | └─ Dashboard: http://0.0.0.0:8090/_/
wanderer-db |
wanderer-search |
wanderer-db | (!) Launch the URL below in the browser if it hasn't been open already to create your first superuser account:
wanderer-db | http://0.0.0.0:8090/_/#/pbinstall/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb2xsZWN0aW9uSWQiOiJwYmNfMzE0MjYzNTgyMyIsImV4cCI6MTc5MzIxMzA5NiwiaWQiOiI0cXhsdDJldnVuenc5aTciLCJyZWZyZXNoYWJsZSI6ZmFsc2UsInR5cGUiOiJhdXRoIn0.CmhwshB1RudmmYUySFl4R3uCsVGiFkR1Rlst7tOquI4
wanderer-db | (you can also create your first superuser by running: /pocketbase superuser upsert EMAIL PASS)
wanderer-db |
wanderer-search | A master key has been set. Requests to Meilisearch won't be authorized unless you provide an authentication key.
wanderer-search |
wanderer-search | Check out Meilisearch Cloud! https://www.meilisearch.com/cloud?utm_campaign=oss&utm_source=engine&utm_medium=cli
wanderer-search | Documentation: https://www.meilisearch.com/docs
wanderer-search | Source code: https://github.com/meilisearch/meilisearch
wanderer-search | Discord: https://discord.meilisearch.com
wanderer-search |
wanderer-search | 2026-10-28T18:14:40.718064Z  INFO actix_server::builder: starting 6 workers
wanderer-search | 2026-10-28T18:14:40.718113Z  INFO actix_server::server: Actix runtime found; starting in Actix runtime
wanderer-search | 2026-10-28T18:14:40.718122Z  INFO actix_server::server: starting service: "actix-web-service-0.0.0.0:7700", workers: 6, listening on: 0.0.0.0:7700
wanderer-search | 2026-10-28T18:14:55.790110Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=500µs time.idle=20.5µs
wanderer-search | 2026-10-28T18:14:56.576952Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=548µs time.idle=413µs
wanderer-search | 2026-10-28T18:14:56.583899Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/actors/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=216µs time.idle=5.61ms
wanderer-search | 2026-10-28T18:14:56.585043Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=326µs time.idle=111µs
wanderer-search | 2026-10-28T18:14:56.591541Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/trails/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=157µs time.idle=5.84ms
wanderer-search | 2026-10-28T18:14:56.592551Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=317µs time.idle=102µs
wanderer-search | 2026-10-28T18:14:56.598464Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:14:56.598533Z  INFO HTTP request{method=PATCH host="wanderer-search:7700" route=/indexes/lists/settings query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=202}: meilisearch: close time.busy=148µs time.idle=5.38ms
wanderer-search | 2026-10-28T18:14:56.600004Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/health query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=64.5µs time.idle=86.5µs
wanderer-search | 2026-10-28T18:14:56.601290Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=91.9µs time.idle=124µs
wanderer-search | 2026-10-28T18:14:56.602028Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/trails/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=113µs time.idle=115µs
wanderer-search | 2026-10-28T18:14:56.602846Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=84.5µs time.idle=108µs
wanderer-search | 2026-10-28T18:14:56.603397Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/lists/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=89.9µs time.idle=109µs
wanderer-search | 2026-10-28T18:14:56.604003Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=75.3µs time.idle=99.7µs
wanderer-search | 2026-10-28T18:14:56.604526Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/indexes/actors/stats query_parameters= user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=78.0µs time.idle=120µs
wanderer-search | 2026-10-28T18:14:56.616303Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:14:56.631166Z  INFO index_scheduler::scheduler: A batch of tasks was successfully completed with 1 successful tasks and 0 failed tasks.
wanderer-search | 2026-10-28T18:15:10.862067Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=63.1µs time.idle=19.3µs
wanderer-search | 2026-10-28T18:15:25.921623Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=89.9µs time.idle=17.1µs
wanderer-search | 2026-10-28T18:15:40.987140Z  INFO HTTP request{method=GET host="127.0.0.1:7700" route=/health query_parameters= user_agent=curl/8.14.1 status_code=200}: meilisearch: close time.busy=62.7µs time.idle=17.5µs
wanderer-search | 2026-10-28T18:15:42.581678Z  INFO HTTP request{method=GET host="wanderer-search:7700" route=/keys query_parameters=limit=20 user_agent=Meilisearch Go (v0.36.2) status_code=200}: meilisearch: close time.busy=186µs time.idle=388µs
wanderer-search | 2026-10-28T18:15:42.679891Z  INFO HTTP request{method=POST host="wanderer-search:7700" route=/indexes/trails/search query_parameters= user_agent=node status_code=200}: meilisearch: close time.busy=473µs time.idle=968µs
wanderer |
wanderer | > wanderer@0.21.2 start
wanderer | > node watcher.js & node server.js
wanderer |
wanderer | [File Watcher] Service active. Watching: /app/uploads
wanderer | Listening on http://0.0.0.0:3000
@@ -0,0 +1,20 @@
{
"wanderer": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"wanderer-db": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"wanderer-search": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,84 @@
{
"harness_version": 5,
"edge": "MV-wanderer",
"app": "wanderer",
"note": "definition step to wanderer-meili",
"from": {
"wanderer": "flomp/wanderer-web:v0.21.2",
"wanderer-db": "flomp/wanderer-db:v0.21.2",
"wanderer-search": "getmeili/meilisearch:v1.36.0"
},
"to": {
"wanderer": "flomp/wanderer-web:v0.21.2",
"wanderer-db": "flomp/wanderer-db:v0.21.2",
"wanderer-search": "getmeili/meilisearch:v1.36.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": null,
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": {
"soak_s": 607.6,
"requested_s": 600,
"requests": 9854,
"codes": {
"200": 9854
},
"first_kill": null,
"containers": {
"wanderer": {
"limit": 536870912,
"peak": 161411072,
"peak_pct": 0.301,
"anon_peak_sampled": 140115968,
"anon_peak_pct": 0.261,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"wanderer-db": {
"limit": 268435456,
"peak": 99348480,
"peak_pct": 0.37,
"anon_peak_sampled": 57409536,
"anon_peak_pct": 0.214,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"wanderer-search": {
"limit": 402653184,
"peak": 88600576,
"peak_pct": 0.22,
"anon_peak_sampled": 71450624,
"anon_peak_pct": 0.177,
"swap_peak": 0,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"venue_swap_bytes": 0,
"load": "reached"
},
"marks": [],
"bench_overrides": null,
"duration_s": 36.4,
"measured_at": "2026-10-28T18:27:07Z",
"evidence": "evidence/MV-wanderer",
"scratch_cleared": [],
"files_changed": [],
"files_changed_detail": [],
"files_ignored": [],
"total_s": 822.6
}
@@ -0,0 +1,11 @@
21:12:16 [5] the box's drill mirror now at 320cff5d
21:12:21 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:13:36 [1] deployed, controller state=running, pinned={'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
21:13:40 wanderer: sign-up http=200
21:13:40 wanderer: seeded user drill2af50efa and private list Drill-eed96c7839 http=200 id=True
21:23:49 wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
21:23:50 [X] stop -> 200 {'ok': True, 'message': 'Stack wanderer stop completed'}
21:24:22 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'wanderer', 'volumes_removed': ['wanderer_wanderer_data', 'wanderer_wanderer_meili_data', 'wanderer_wanderer_plugins', 'wandere
21:24:30 [X] after remove: deployed=False leftovers=''
cap: ['MEILI_MAX_INDEXING_MEMORY=134217728'] | read back: True
{'wanderer': (22.0, 0, 0), 'wanderer-db': (7.0, 0, 0), 'wanderer-search': (95.7, 0, 0)}
@@ -0,0 +1,17 @@
{
"samples": [
"20:26:52 anon=367M current=382M",
"20:27:25 anon=361M current=375M",
"20:27:59 anon=363M current=377M",
"20:28:32 anon=363M current=377M",
"20:29:06 anon=363M current=378M",
"20:29:39 anon=363M current=377M",
"20:30:13 anon=363M current=378M",
"20:30:46 anon=363M current=378M",
"20:31:20 anon=363M current=377M",
"20:31:53 anon=363M current=378M",
"20:32:27 anon=363M current=377M",
"20:33:00 anon=363M current=377M"
],
"meili_start_log": []
}
@@ -0,0 +1,61 @@
{
"cap_in_container": [
"MEILI_MAX_INDEXING_MEMORY=134217728"
],
"seed": true,
"memory": {
"soak_s": 600,
"interval_s": 10,
"samples": 174,
"containers": {
"wanderer": {
"samples": 58,
"anon_peak_bytes": 117911552,
"limit_bytes": 536870912,
"anon_peak_pct": 22.0,
"cgroup_peak_pct": 29.1,
"oom_kill_delta": 0,
"oom_killed_flag": false,
"restarts_delta": 0,
"running_all_samples": true,
"cgroup": "/sys/fs/cgroup/system.slice/docker-f6ea11f024fbac5f56f205bf3b610b789a598b4a0b5bed56f874fdb35838a89f.scope"
},
"wanderer-db": {
"samples": 58,
"anon_peak_bytes": 18743296,
"limit_bytes": 268435456,
"anon_peak_pct": 7.0,
"cgroup_peak_pct": 10.0,
"oom_kill_delta": 0,
"oom_killed_flag": false,
"restarts_delta": 0,
"running_all_samples": true,
"cgroup": "/sys/fs/cgroup/system.slice/docker-2e5ccd3f6974addc19b0a04583e9e36660b7ecf3cb4168962b27ff92628a505b.scope"
},
"wanderer-search": {
"samples": 58,
"anon_peak_bytes": 385347584,
"limit_bytes": 402653184,
"anon_peak_pct": 95.7,
"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-602946afe69fe870a78cb4e147e18012d4ecd45d851f5be1ee0aa8e25045b54a.scope"
}
},
"oom_kills": 0,
"restarts": 0,
"peak_pct": 95.7
},
"read_back": true,
"log": [
"21:12:16 [5] the box's drill mirror now at 320cff5d",
"21:12:21 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
"21:13:36 [1] deployed, controller state=running, pinned={'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}",
"21:13:40 wanderer: sign-up http=200",
"21:13:40 wanderer: seeded user drill2af50efa and private list Drill-eed96c7839 http=200 id=True",
"21:23:49 wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True"
]
}
@@ -0,0 +1,148 @@
# Wanderer - Túra tervező és nyomkövetéssel
# Domain: ${SUBDOMAIN}.${DOMAIN} (web only — PocketBase is internal since 2026-10-28)
# Database: PocketBase (wanderer-db) + Meilisearch (kereső)
# RAM: ~350M (mem_limit: 1024M összesen) | Pi-compatible: Yes
#
# RE-PINNED 2026-07-21. The old template pinned a SINGLE image `ghcr.io/flomp/wanderer:0.16.0`,
# which does not resolve — upstream split the app into two images AND moved registry:
# ghcr.io/flomp/wanderer → docker.io/flomp/wanderer-web + docker.io/flomp/wanderer-db
# (the GitHub org also renamed Flomp → open-wanderer). The project is alive: v0.20.0, 2026-07-07.
# Structure below follows upstream's own docker-compose.yml at tag v0.20.0.
#
# Environment variables:
# DOMAIN - Your domain (e.g., demo-felhom.eu)
# SUBDOMAIN - the web hostname
# MEILI_MASTER_KEY - Keresőmotor kulcs (auto-generated)
# POCKETBASE_ENCRYPTION_KEY - PocketBase adatbázis kulcs (auto-generated, PONTOSAN 32 karakter)
#
# ONE HOSTNAME (2026-10-28, felhom.eu R-1335): PocketBase is NOT routed to the internet any more. The web server is the
# only caller of `PUBLIC_POCKETBASE_URL` — files reach the browser through the web's own `/api/v1/files/...` route (read
# in the v0.20.0 and v0.21.2 sources) — and upstream says since v0.21.1 that the db service must not be reachable from
# outside (its sample binds it to 127.0.0.1). The old public `hike-db` name also served PocketBase's admin page.
# NO POCKETBASE_PROXY_SECRET, on purpose: v0.21+ authenticates inbound ActivityPub deliveries between web and db with
# it, and without it inbound federation is REJECTED (fail closed, upstream's own docs). A household's Wanderer is a
# family instance; a stranger's server pushing into it is exactly what GHSA-fprh-3pp9-68m9 abused (D59).
services:
wanderer:
# container_name MUST equal the stack dir name — the controller's health probe finds the
# Traefik-exposed container by that exact name (REUSE.md §2).
image: flomp/wanderer-web:v0.21.2
container_name: wanderer
restart: unless-stopped
depends_on:
wanderer-search:
condition: service_healthy
wanderer-db:
condition: service_healthy
environment:
- TZ=Europe/Budapest
- MEILI_URL=http://wanderer-search:7700
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
- ORIGIN=https://${SUBDOMAIN}.${DOMAIN}
- PUBLIC_POCKETBASE_URL=http://wanderer-db:8090
- BODY_SIZE_LIMIT=Infinity
# decision 47/48: open until the household closes sign-up (after_setup / close sign-up now)
- PUBLIC_DISABLE_SIGNUP=${SIGNUP_CLOSED:-false}
- UPLOAD_FOLDER=/app/uploads
- PUBLIC_MAP_MAX_POLYLINES=100
- OVERPASS_API_URL=https://overpass-api.de
- VALHALLA_URL=https://valhalla1.openstreetmap.de
- NOMINATIM_URL=https://nominatim.openstreetmap.org
volumes:
- wanderer_uploads:/app/uploads
networks:
- traefik-public
- wanderer-internal
deploy:
resources:
limits:
memory: 512M
healthcheck:
# The web image ships curl on PATH. No dedicated /health route exists — upstream probes root.
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3000/"]
interval: 30s
timeout: 5s
retries: 3
start_period: 40s
labels:
- "traefik.enable=true"
- "traefik.http.routers.wanderer.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.wanderer.entrypoints=websecure"
- "traefik.http.routers.wanderer.tls=true"
- "traefik.http.routers.wanderer.tls.certresolver=letsencrypt"
- "traefik.http.services.wanderer.loadbalancer.server.port=3000"
wanderer-db:
# PocketBase (custom upstream build). Built FROM scratch — no shell, no package manager; a
# static curl is baked in at /curl, which is why the healthcheck calls that absolute path.
image: flomp/wanderer-db:v0.21.2
container_name: wanderer-db
restart: unless-stopped
depends_on:
wanderer-search:
condition: service_healthy
environment:
- TZ=Europe/Budapest
- MEILI_URL=http://wanderer-search:7700
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
- POCKETBASE_ENCRYPTION_KEY=${POCKETBASE_ENCRYPTION_KEY}
- ORIGIN=https://${SUBDOMAIN}.${DOMAIN}
volumes:
- wanderer_data:/pb_data
# /data/plugins is NEW and REQUIRED as of v0.20.0 — the Strava/Komoot/Hammerhead
# integrations moved into a WASM plugin sandbox that lives here.
- wanderer_plugins:/data/plugins
networks:
- wanderer-internal
deploy:
resources:
limits:
memory: 256M
healthcheck:
test: ["CMD", "/curl", "--fail", "http://127.0.0.1:8090/health"]
interval: 15s
timeout: 5s
retries: 10
start_period: 20s
wanderer-search:
# Pinned to upstream's own v0.20.0 compose (R-42 ruling: a sidecar pin follows the app
# template's proposed pin, never the newest tag independently). Campaign 7 had bumped this to
# v1.49 while the app image was dead; upstream specifies v1.36.0.
image: getmeili/meilisearch:v1.36.0
container_name: wanderer-search
restart: unless-stopped
environment:
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
- MEILI_NO_ANALYTICS=true
# Meilisearch sizes its indexing memory from the memory it sees (2/3 by default), so it filled 92-100 % of 256M and
# 88.8 % of 384M (felhom.eu R-1338). A third of the 384M limit caps the indexer; search itself stays outside it.
- MEILI_MAX_INDEXING_MEMORY=134217728 # 128 MiB, in bytes
volumes:
- wanderer_meili_data:/meili_data
networks:
- wanderer-internal
deploy:
resources:
limits:
# 384M, not 256M (2026-10-28, felhom.eu R-1335): at 256M Meilisearch peaked at 92-100 % of its limit on the
# bench and on 9202 (the step's memory_tight mark); test-record-move asks for the room and a new memory watch.
memory: 384M
healthcheck:
test: ["CMD", "curl", "--fail", "http://127.0.0.1:7700/health"]
interval: 15s
timeout: 5s
retries: 10
start_period: 20s
volumes:
wanderer_data:
wanderer_plugins:
wanderer_uploads:
wanderer_meili_data:
networks:
traefik-public:
external: true
wanderer-internal:
@@ -0,0 +1,29 @@
#!/usr/bin/env python3
"""wanderer_mem.py — R-1338 on 9202: a fresh Wanderer from the drill (v0.21.2 + MEILI_MAX_INDEXING_MEMORY), the cap read
back from the running search container, the fixture's seed, box_walk's own 600 s memory soak, the seed read back, removed."""
import json, os, sys
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
import box_walk as w
import upgrade_fixtures_box as fb
EV = os.environ["EV"]; os.makedirs(EV, exist_ok=True)
rec = {}
w.login()
try:
if w.stack("wanderer").get("deployed"):
w.remove("wanderer")
w.refresh_box_mirror(); w.sync_rescan()
if not w.deploy("wanderer", "hike"):
print("install failed"); sys.exit(1)
rec["cap_in_container"] = [l for l in w.guest("docker inspect -f '{{range .Config.Env}}{{println .}}{{end}}' wanderer-search").split("\n") if "MAX_INDEXING" in l]
t = fb.Wanderer().seed(w, "hike", w.say)
rec["seed"] = bool(t)
rec["memory"] = w.soak("wanderer", 600)
rec["read_back"] = bool(t) and fb.Wanderer().verify(w, "hike", t, w.say)
finally:
rec["log"] = w.LOG
json.dump(rec, open(os.path.join(EV, "wanderer-mem-9202.json"), "w"), indent=1, default=str)
if w.stack("wanderer").get("deployed"):
w.remove("wanderer")
c = (rec.get("memory") or {}).get("containers") or {}
print("cap:", rec.get("cap_in_container"), "| read back:", rec.get("read_back"))
print({k: (v.get("anon_peak_pct"), v.get("oom_kill_delta"), v.get("restarts_delta")) for k, v in c.items()})
@@ -0,0 +1,21 @@
import json, os, sys, time
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
import box_walk as w
import upgrade_fixtures_box as fb
w.login()
out = {"samples": []}
try:
w.refresh_box_mirror(); w.sync_rescan()
w.deploy("wanderer", "hike")
t = fb.Wanderer().seed(w, "hike", w.say)
out["meili_start_log"] = [l[:200] for l in w.guest("docker logs wanderer-search 2>&1 | head -40").split("\n") if "ndexing" in l or "memory" in l.lower()]
for i in range(12):
s = w.guest("cid=$(docker inspect -f '{{.Id}}' wanderer-search); f=$(find /sys/fs/cgroup -maxdepth 4 -type d -name \"*$cid*\" | head -1); "
"echo $(date +%T) anon=$(awk '/^anon /{print int($2/1048576)}' $f/memory.stat)M current=$(( $(cat $f/memory.current)/1048576 ))M")
out["samples"].append(s.strip()); print(s.strip(), flush=True)
time.sleep(30)
finally:
json.dump(out, open(os.path.join(os.environ["EV"], "wanderer-mem-9202-timeline.json"), "w"), indent=1)
if w.stack("wanderer").get("deployed"):
w.remove("wanderer")
print(out.get("meili_start_log"))
+6
View File
@@ -26,6 +26,12 @@
---
## 2026-10-28 (evening) — R-1315 closed: Gitea's big step (full text of the row: `git show 1be7aa87:documentation/backlog/OPEN-ITEMS.md`)
| Row | What | Closed | Evidence |
|---|---|---|---|
| **R-1315** | **Gitea 1.27.3: two critical notices for signed-in users and two with no login; the fix is 28.2.0 (1.28 was renamed 28.0.0).** (P2) | CLOSED 2026-10-28 — a normal ladder step live on the operator's yes (`0baf8f9`, CI 2469): bench + box 9202 + the undo proven (28.2.0 ran migrations 343+; 1.27.3 refuses that database, the box's undo copy brought it back with the repository and its commit). D57 judged again: 28's default egress (`lax`) already refuses home-network and Docker addresses for imports (measured: 422); on the operator's word imports are limited to github.com, codeberg.org and gitlab.com (`[migrations] EGRESS_MODE=strict` + `ALLOWED_HOST_LIST`; measured: GitHub 201, gitea.com 422). The Gitea fixture commits a file and posts the installer form as a browser does (28.x renamed its fields). | `audits/gitea-wanderer-2026-10-28/gitea/` |
## 2026-10-28 (afternoon) — the big steps: R-1335, R-1311, R-1320 and R-1317 closed (full text of the rows: `git show ac95ca4f:documentation/backlog/OPEN-ITEMS.md`)
| Row | What | Closed | Evidence |
+2 -3
View File
@@ -152,14 +152,13 @@ stopping line that lies.
| **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-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 |
| **R-1338** | Apps & catalog | P3 | **Wanderer's Meilisearch fills whatever memory limit it gets: 92–100 % anon of 256 MB (bench and 9202), still 88.8 % of 384 MB on the bench (2026-10-28)** — it sizes its indexing memory from the memory it sees (its default: 2/3 of the available RAM), so a higher limit alone does not end the `memory_tight` mark of Wanderer's step. No kill in any run. `audits/dockerhub-bigsteps-2026-10-28/wanderer/` | OPEN — filed 2026-10-28 (big steps) | — | set `MEILI_MAX_INDEXING_MEMORY` (e.g. a third of the limit) in the template, measure on the bench, a re-test entry | CC |
| **R-1338** | Apps & catalog | P3 | **Wanderer's Meilisearch fills whatever memory limit it gets: 92–100 % anon of 256 MB (bench and 9202), still 88.8 % of 384 MB on the bench (2026-10-28)** — it sizes its indexing memory from the memory it sees (its default: 2/3 of the available RAM), so a higher limit alone does not end the `memory_tight` mark of Wanderer's step. No kill in any run. `audits/dockerhub-bigsteps-2026-10-28/wanderer/` | OPEN — **2026-10-28 evening: `MEILI_MAX_INDEXING_MEMORY` = 128 MiB (a third of 384 MB) measured, NOT pushed** (`audits/gitea-wanderer-2026-10-28/wanderer-meili/`): on the bench, under the harness's load, the search container peaked at 17.7 % (84 MB; 88.8 % without the cap, same load); on 9202 the cap was in the container (read back) and it still held 95.7 % anon (363 MB steady over 6 min, no kill). The box result decides: not shown to help, so not pushed. Also: the catalog's ladder has no entry type for a re-measure of a definition change at the SAME digests (`ladder.py`: a re-test whose digest equals its digest_from tests nothing new), so the v0.21.2 entry's `memory_tight` mark cannot be replaced without an image move. | — | find why the box and the bench differ (9202 has 512 MB swap, the bench none; Meilisearch's other memory settings); then decide the cap — the mark changes with the next Wanderer image move | CC |
## App updates — 11 rows (P2 2, P3 9)
## App updates — 10 rows (P2 1, P3 9)
| ID | Category | Sev | What | State | Blocked on | Next action | Owner |
|---|---|---|---|---|---|---|---|
| **R-1315** | App updates | P2 | **Gitea 1.27.3: two critical notices for any signed-in user (7cq7, 6pv5) and two with no login (c3cr, hf55); the fix is 28.2.0 (1.28 was renamed 28.0.0 — no 1.27.4 exists).** 28.0 routes git traffic through a new proxy with egress settings. GHSA-rqhx (SSRF through migration) has no fix at all (`PICKS.md` pick 2). No box runs Gitea. `audits/security-app-updates-2026-10-27/TRIAGE.md` | OPEN — **RULED D57 = keep repository import on** (operator 2026-10-27 21:33, `09` §3 decision 273) — judged again in the big step. — filed 2026-10-27 (security app updates, Part 3: not done today) | — | the big step 28.2.0: read the 28.0 proxy settings against our template; bench + 9202 + undo; a STOP | CC |
| **R-1316** | App updates | P3 | **Gokapi v1.9.6: GHSA-3c22 (high, self-XSS for the only account); the fix is v2.x, a big step** — a user system with no downgrade, and our first-boot config seed must be captured again. No box runs Gokapi. `audits/security-app-updates-2026-10-27/TRIAGE.md` | OPEN — filed 2026-10-27 (security app updates, Part 3: not done today) | — | the big step v2.2.4 with a new first-boot seed; bench + 9202 + undo; a STOP | CC |
| **R-1318** | App updates | P3 | **Karakeep 0.33.2 + chrome 151: two CISA-KEV V8 bugs in the crawler's Chromium (runs `--no-sandbox`), reached by content the household saves; the fix is 0.34.1 + chrome 154.0.8037.57-r1** — an auth library swap (everyone signed out, e-mails lowercased) and a chrome rebuilt on full Chrome (memory limit and healthcheck to measure again). No box runs it. `audits/security-app-updates-2026-10-27/TRIAGE.md` | OPEN — filed 2026-10-27 (security app updates, Part 3: not done today) | — | the big step: measure chrome 154's memory; bench + 9202 + undo; a STOP | CC |
| **R-1319** | App updates | P3 | **Paperless-ngx 2.20.15: GHSA-2jhj (low; needs a setting we do not set — not reachable); the fix is 3.3.4, a big step** (encryption and API v1 removed, the search index rebuilt). It runs on all four test boxes. Not urgent. `audits/security-app-updates-2026-10-27/TRIAGE.md` | OPEN — filed 2026-10-27 (security app updates, Part 3: not done today) | — | the big step 3.3.4 when the catalog takes Paperless 3 for other reasons; read our API v1 use first | CC |