Single-binary distribution: generated systemd unit, CLI bootstrap → SQLite config, tool preflight #35
Labels
No labels
agent
blocked
foreground
needs-andrew
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
Tabled
needs-andrew
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
kreeader/kreeader-server#35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Single-binary distribution posture for the GitHub release: the server runs from one downloaded binary, generates (never installs) its own systemd unit, bootstraps from CLI args, and keeps all subsequent configuration in SQLite behind the Settings UI.
Decisions (Andrew, 2026-07-17)
service generatesubcommand prints the unit to stdout by default;--write <path>writes it, offering the standard placements (/etc/systemd/system/,~/.config/systemd/user/) as suggestions. It must never enable, start, or overwrite a package-manager-owned unit. Include the socket-activation variant (already supported by the server).Repo & branch
kreeader-server. Library paths becoming runtime-editable is the largest sub-task (libpath roots are registered at startup; changing them live touches the relative-path machinery) and may deserve its own branch/issue when picked up.
Staged order
(1) settings precedence + TOML-import backfill, (2) library paths runtime-editable, (3)
service generatesubcommand + preflight warnings + tool-path Settings card, (4) per-platform release artifacts + container image.Constraints
Acceptance criteria
-port/-libraryargs → open web UI → everything else configured from Settings; args persisted to DB.service generateprints a correct unit;--writehonors the chosen placement; never enables/installs.All stages shipped and deployed (r329):
service generatesubcommand (stdout-first, --write/--user, never installs), first-run preflight warnings, CLI-args→AppSettings persistence with flags>DB>file>defaults precedence, one-shot TOML import (config.toml_imported.v1). Library paths now DB-resolvable. Verified live on butcher.