Commit Graph

21 Commits

Author SHA1 Message Date
Dorian
0bef26badd fix: filebrowser registry, CI cleanup, autologin, auth debug logging
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 18m25s
- CI: configure root podman with insecure registry so FileBrowser
  image can be pulled during ISO build
- CI: chmod u+rwX on workspace and act cache to fix cleanup failure
- ISO: auto-login on tty1 (no password prompt on console)
- Frontend: add console.log debug output for onboarding routing,
  health checks, and 401 redirects to diagnose session issues

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 11:13:01 +00:00
Dorian
ab48266353 fix: CI chown act cache to prevent false build failure
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 21m21s
The checkout action post-cleanup fails on root-owned files in the
workspace, marking the build as failed even though the ISO was built.
Chown the entire act cache dir so cleanup succeeds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 22:02:43 +00:00
Dorian
3db9ff9216 feat: add build report and first-boot diagnostics
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
CI build report: checks rootfs contents (nginx, SSL, keyboard, kiosk,
lid config, backend, frontend) and ISO contents after build. Reports
in the Actions log so build issues are immediately visible.

First-boot diagnostics: one-shot systemd service runs 30s after first
boot, logs service status, nginx test, SSL certs, LUKS, podman,
kiosk, console-setup, disk, network, and journal errors to
/var/log/archipelago-first-boot-diag.log. Only runs once (ConditionPathExists).

SSH in and cat the log to debug any fresh install issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:54:32 +00:00
Dorian
bda8b38a95 fix: CI pass absolute ARCHIPELAGO_BIN path through sudo
All checks were successful
Build Archipelago ISO / build-iso (push) Successful in 18m38s
sudo doesn't inherit env vars. Use absolute path and pass it
explicitly so the ISO build finds the freshly built binary
instead of falling through to podman build from source.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:48:36 +00:00
Dorian
9354a27909 fix: CI fix 'local' outside function and root-owned file cleanup
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 20m1s
- Remove 'local' keyword in ISO build script (not in a function)
- Add workspace permission fix step so runner can clean up after sudo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:24:30 +00:00
Dorian
1eea46542e fix: CI cache Debian Live ISO to avoid 1.4GB re-download
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 16m55s
Copy the Debian Live ISO from the server's existing build cache
into the CI workspace before running the ISO build. Saves ~10 min.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:03:49 +00:00
Dorian
1d9fe06f97 fix: CI don't replace live binary, pass build path to ISO script
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
Remove the cp to /usr/local/bin that caused 'Text file busy'.
The ISO build script now accepts ARCHIPELAGO_BIN env var to find
the freshly built binary instead of requiring it installed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:28:43 +00:00
Dorian
9aaf8d4b95 fix: CI rm binary before cp to avoid 'Text file busy'
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
On Linux, rm on a running binary works (process keeps its fd).
Then cp creates a new inode. Restart service after.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:26:18 +00:00
Dorian
ea222895be fix: CI add debug output for frontend build step
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 12m39s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 15:04:22 +00:00
Dorian
27f1b8d21b fix: CI stop archipelago service before replacing binary
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 13m58s
The running binary locks the file, causing 'Text file busy' on cp.
Stop the service, copy, then restart.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:44:32 +00:00
Dorian
d71eae1815 fix: CI increase timeout, cleared stale git lock on runner
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 12m14s
Stale shallow.lock was blocking checkout. Removed it on the runner.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:30:21 +00:00
Dorian
3daf889f74 fix: CI use actions/checkout@v4 (Gitea proxies to GitHub)
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
The full URL form was 404. The short form lets Gitea resolve from
its configured action sources (GitHub proxy). This worked for build #7.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:26:57 +00:00
Dorian
e96acc9023 fix: CI checkout cd to home before cleanup to avoid cwd error
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
The runner cwd is the workspace itself, so deleting it removes the
shell's cwd. cd to home first, then clean workspace before clone.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:24:24 +00:00
Dorian
2d47fd800e fix: CI checkout with token auth for private repo
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 0s
Manual git clone needs GITHUB_TOKEN injected for private repos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:21:48 +00:00
Dorian
008573b6ac fix: CI checkout uses manual git clone instead of missing action
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
The actions/checkout@v4 action was 404 on git.tx1138.com causing
instant build failures. Use manual git clone for reliability with
host-mode runner.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:16:13 +00:00
Dorian
1f9124789f fix: CI workflow use Gitea checkout action, unbundled only
Some checks failed
Build Archipelago ISO / build-iso (push) Failing after 11m44s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:34:11 +00:00
Dorian
99e32b877f chore: CI builds unbundled ISO only (with FileBrowser)
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:26:40 +00:00
Dorian
5af4c71ab7 chore: remove disabled workflows, keep only build-iso
Some checks failed
Build Archipelago ISO / build-frontend (push) Has been cancelled
Build Archipelago ISO / build-bundled-iso (push) Has been cancelled
Build Archipelago ISO / build-backend (push) Has been cancelled
Build Archipelago ISO / build-unbundled-iso (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:20:12 +00:00
Dorian
059913d3dd feat: CI/CD builds both bundled and unbundled ISOs
Some checks failed
Build Archipelago ISO / build-backend (push) Has been cancelled
Build Archipelago ISO / build-bundled-iso (push) Has been cancelled
Build Archipelago ISO / build-unbundled-iso (push) Has been cancelled
Build Archipelago ISO / build-frontend (push) Has been cancelled
Workflow builds both variants on push to main. Manual trigger
lets you choose bundled, unbundled, or both. ISOs auto-copied
to FileBrowser /Builds/ folder for easy download.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:13:31 +00:00
Dorian
08bb2c80d4 feat: LUKS2 encryption, boot sequence fixes, onboarding auth, CI/CD
Some checks failed
Build Archipelago ISO / build-iso (push) Has been cancelled
- LUKS2 full-partition encryption for /var/lib/archipelago/ (TASK-42)
  4-partition layout: BIOS + EFI + root (30GB) + encrypted data
  AES-256-XTS with AES-NI detection, ChaCha20 fallback for ARM
  Auto-unlock via crypttab + random key file

- Fix EFI boot errors: remove shim-signed, clean shim artifacts
- Fix first-boot sequence: always show boot animation before onboarding
- Fix stale localStorage causing login instead of onboarding (BUG-47)

- Add auth.setup + auth.isSetup RPC handlers for password on clean install
- Add onboarding methods to UNAUTHENTICATED_METHODS (DID sign 403 fix)

- FileBrowser bundled in unbundled ISO, fix auto-login Secure cookie (BUG-46)
- Kiosk mode: xorg/chromium in rootfs, toggle script, MOTD instructions

- Add Gitea Actions CI/CD workflow for automatic ISO builds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 09:12:16 +00:00
Dorian
07e46dce56 feat: add YAML frontmatter, bitcoin-conventions skill, path rules, and Gitea CI
- Added YAML frontmatter to all 8 polish-* skills and sweep skill
  so Claude can auto-invoke them
- New bitcoin-conventions skill with PROUX UX methodology, sats display,
  address validation, Tor preferences, Lightning patterns
- Path-specific rules for containers (security hardening) and frontend
  (Vue/glassmorphism conventions)
- Gitea Actions: nightly security review and weekly dependency audit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:35:17 +00:00