-
26.1-alpha
Pre-releasereleased this
2026-04-16 16:12:12 +02:00 | 51 commits to main since this releaseAdded
-
Furtka self-update (Phase 2). Tagging a release on main fires
.forgejo/workflows/release.yml, which packagesfurtka/+apps/+ a root-levelVERSIONfile asfurtka-<tag>.tar.gz, uploads it plus a.sha256+release.jsonto the Forgejo releases page, and makes the release available to running boxes. New CLI:furtka update [--check]+furtka rollback. New endpoints:POST /api/furtka/update/check+/apply+GET /api/furtka/update/status. UI: "Furtka updates" card on/settingsshows installed vs latest, Update button runs the apply flow detached viasystemd-run, progress polls/update-state.jsonserved by Caddy so the mid-update API restart doesn't interrupt reporting. Atomic/opt/furtka/currentsymlink flip, auto-rollback on health-check failure post-restart, SHA256-verified downloads. -
Per-app container image updates (Phase 1).
POST /api/apps/<name>/updaterunsdocker compose pull, compares the running container's image digest to the just-pulled local image digest per service, and only restarts containers whose image actually changed. Update button on each installed-app row in/apps. Keepsimage: :latestpins simple — no compose-file mutations. -
Per-version install layout on
/opt/furtka/. Install now extracts the resource-manager payload to/opt/furtka/versions/<VERSION>/and creates/opt/furtka/currentas an atomic symlink; updates flip the symlink in place andsystemctl linkevery unit from the shippedassets/systemd/tree. Runtime JSON (status.json,furtka.json,update-state.json) moved to/var/lib/furtka/so self-updates never clobber it. -
On-box UI uplevel across three pages sharing one design system (
/style.cssserved by Caddy). Redesigned landing page with a "Your apps" tile grid driven by/api/apps, afileshareapp tile that deep-links tosmb://<host>.local/files, status tiles, and subtle "Coming next" links tofurtka.org./appspage renders real app icons inlined from each manifest'sicon.svg(defensive SVG sanitiser — strips script/on*/javascript: content, 16 KB cap). New/settingspage with About-this-box, Appearance, Furtka-updates, and Coming-next sections. Persistent top nav (Jakob's Law) on every page. Light-mode support viaprefers-color-scheme. -
Webinstaller step 2 (boot drive) now shows size / type / health chips plus a "Recommended" badge on the auto-selected drive instead of a raw numeric score.
-
Forgejo branch protection on
main— no direct pushes except owner-whitelisted, required status checks (CI / lint*,CI / test*,CI / validate-json*), applied via the idempotentops/forgejo/apply-branch-protection.shscript. -
In-browser app settings, so users no longer need SSH +
vimto configure an app before first install. Manifest gains optionalsettings(name/label/description/type/required/default) anddescription_longfields. Installing a bundled app opens a form rendered from the manifest; installed apps grow a "Settings" button that edits merged values (password fields blank = keep current). API:POST /api/apps/installnow accepts asettingsobject in the JSON body; newGET/POST /api/apps/<name>/settingsfor inspecting and updating an installed app. Password values never leave the server. -
nanoadded to the installer package list so users have a beginner-friendly editor at the console/SSH (wasvim-only, whichcommand not found'd under Arch 4.x because it was actually missing from the package set too). -
opensshadded explicitly to the installer package list andsshdadded to enabled services.archinstall: truein archinstall 4.x did not actually install openssh-server, so the documented recovery path (SSH → edit.env) silently failed. -
Forgejo Actions runner live on Proxmox VM (
forge-runner-01, Ubuntu 24.04) with DinD sidecar — CI green end-to-end. Setup scripts inops/forgejo-runner/. -
Walking-skeleton live ISO (
iso/build.sh). Overlays an Archrelengprofile with Flask + the webinstaller, bakes a systemd unit that auto-starts the wizard on boot, produces a hybrid BIOS/UEFI ISO viamkarchisoin a privilegedarchlinux:latestcontainer. Tested booting under OVMF in Proxmox — wizard screens 1–3 respond athttp://<vm-ip>:5000. -
Public website at furtka.org (
website/). Hugo static site, English + German, served from/var/www/furtka.orgonforge-runner-01via nginx. Upstream openresty proxy handles TLS. Intentionally minimal single-page copy while the project is pre-alpha. Deploy is./website/deploy.sh(rsync + remote Hugo build); one-time VM setup inops/nginx/setup-vm.sh.
Changed
- Every on-box asset (landing page, settings page, style.css, status/welcome scripts, systemd units, Caddyfile) moved from inline Python string constants in
webinstaller/app.pyinto real files underfurtka/assets/. The installer reads them from disk at install time; the self-updater ships them in the release tarball. - Settings-button label went from "Einstellungen" (prototyping leftover) to "Settings" — rest of the UI chrome is English.
- Keyboard layout at the TTY now follows the chosen installer language (
de→de,pl→pl,en→us) instead of hardcodingus. Previously German users couldn't type/,-, or=at the recovery console. fileshareapp:description_long+settings(SMB_USER, SMB_PASSWORD) for the new settings form. Docker-level healthcheck fromdperson/sambais disabled in the compose override — it timed out under normal operation and marked a working share "unhealthy" indocker ps.- Project name finalized: Furtka. Working title "Homebase" retired. Domain
furtka.orgregistered via Strato 2026-04-13. - Managed gateway NS hostnames updated from
ns1.homebase.cloud/ns2.homebase.cloudtons1.furtka.org/ns2.furtka.org. - Python package renamed from
homebase→furtkainpyproject.toml.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-