From 1b571abddd4d433030148a955d30a0ad0f5a2c9b Mon Sep 17 00:00:00 2001 From: Spendlik Date: Tue, 11 Aug 2026 09:22:50 +0000 Subject: [PATCH] =?UTF-8?q?Mark=20Phase=205=20(app=20deploy)=20complete=20?= =?UTF-8?q?for=20CT=20114=20=E2=80=94=20app=20confirmed=20healthy=20via=20?= =?UTF-8?q?docker=20compose=20ps=20+=20curl=20-sv,=20fixed=20misleading=20?= =?UTF-8?q?verify=20command,=20documented=20deprecation=20log=20spam=20and?= =?UTF-8?q?=20chown-NFS=20as=20known-harmless?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 114_koillection_deployment.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/114_koillection_deployment.md b/114_koillection_deployment.md index b8c567f..93498e1 100644 --- a/114_koillection_deployment.md +++ b/114_koillection_deployment.md @@ -1,6 +1,6 @@ # 114 โ€” Koillection Deployment Guide -> Status: **IN PROGRESS** โ€” CT created 2026-08-11, base setup + Docker + NAS mount done, app deploy pending (Phase 5+) +> Status: **IN PROGRESS** โ€” CT created 2026-08-11, app stack deployed and running, nginx/SSL/DNS/Authelia pending (Phase 6+) > CT ID: 114 ยท IP: 192.168.1.114 > Domain: `collections.spendlik.sk` > Last updated: 2026-08-11 @@ -18,7 +18,7 @@ Koillection is a self-hosted collection manager for tracking physical collection - ๐Ÿ“š Comics (title, issue, publisher, language, condition) - ๐Ÿ“„ Paper Models (designer, scale, subject, format โ€” physical printed copies) -Stack: `koillection/koillection` (PHP/Symfony + Vue.js) + PostgreSQL 16. Uploads (item photos) bind-mounted to NAS for data safety. +Stack: `koillection/koillection` (PHP/Symfony + Vue.js, served via FrankenPHP/Caddy) + PostgreSQL 16. Uploads (item photos) bind-mounted to NAS for data safety. --- @@ -142,7 +142,7 @@ Confirmed: `/uploads` mounted, `777 nobody:nogroup`, empty โ€” ready for the app --- -## Phase 5 โ€” Deploy Koillection +## Phase 5 โ€” Deploy Koillection โœ… DONE (2026-08-11) ```bash mkdir -p /opt/koillection @@ -217,12 +217,17 @@ docker compose up -d docker compose logs -f ``` -Wait until the koillection container logs settle (Symfony app startup). Then verify locally: +Wait until the koillection container logs settle (Symfony/FrankenPHP startup โ€” you'll see deprecation.INFO notices about API Platform `#[ApiResource]` shortName deduplication; these are harmless upstream framework warnings on this image version, not errors). Then verify with a proper status check, **not** a text grep against the homepage (the homepage is just a redirect, so grepping for "koillection" in it will always come back empty and looks like a false failure): ```bash -curl -s http://localhost:8080 | grep -i koillection +docker compose ps +curl -sv http://localhost:8080 ``` +Expect both containers `healthy`, and the curl to show `HTTP/1.1 302 Found` with `Location: /first-connection` โ€” that's Koillection's normal first-run redirect, confirming the app is up and reachable. + +> โ„น๏ธ `chown: Invalid argument` lines for `/uploads` in the startup logs are expected and harmless โ€” same NAS-bind-mount ownership limitation already known from Paperless. Doesn't affect functionality. + --- ## Phase 6 โ€” nginx Reverse Proxy (CT 101) @@ -434,3 +439,5 @@ mkdir -p /opt/koillection/backups | DNS record type | Use CNAME โ†’ `spendlik.sk`, never a per-subdomain A record (see Phase 8) | | Wrong template filename | Verify exact template string with `pveam list local` before `pct create` โ€” versions bump periodically | | Wrong NAS host mount path | Storage ID is `spendlik-nas`, mounted at `/mnt/pve/spendlik-nas` โ€” verify with `ls /mnt/pve/` before trusting any guide's hardcoded path | +| `curl \| grep koillection` shows nothing | Not a failure โ€” the app root just 302-redirects to `/first-connection`, whose HTML doesn't contain the word "koillection". Use `docker compose ps` (expect `healthy`) and `curl -sv` (expect `302` + `Location: /first-connection`) instead | +| `deprecation.INFO` API Platform log spam on startup | Harmless upstream framework warnings (duplicate `#[ApiResource]` shortName), not errors โ€” ignore |