• v0.2.8 ad3b5f8e95

    david released this 2026-06-19 09:08:40 -07:00 | 0 commits to main since this release

    Pagemaster v0.2.8 Docker Healthcheck

    v0.2.8 hardens the packaged Docker path with a built-in app healthcheck and a documented image tag policy.

    What Changed

    • Added pagemaster healthcheck [url].
    • Added Docker HEALTHCHECK using /usr/local/bin/pagemaster healthcheck.
    • Kept the healthcheck dependency-free inside the runtime image.
    • Added healthcheck tests with a fake HTTP transport.
    • Documented the Docker image tag policy:
      • version tags are immutable release artifacts;
      • lab can become the moving verified lab channel;
      • latest is reserved for a later stable/public release policy.
    • Bumped app/package/image metadata to 0.2.8.

    Operator Notes

    The default healthcheck calls http://127.0.0.1:${PORT}/api/health inside the container and requires ok: true.

    Manual checks:

    docker exec pagemaster /usr/local/bin/pagemaster healthcheck
    docker exec pagemaster /usr/local/bin/pagemaster healthcheck http://127.0.0.1:8090/api/health
    

    Set PAGEMASTER_HEALTHCHECK_URL only when the default loopback URL cannot represent the container's actual health endpoint.

    Verification

    • make frontend-check.
    • make test.
    • make build.
    • make docker-build.
    • Docker image label inspection for pagemaster:0.2.8.
    • Container smoke for /api/health, /api/setup/status, and Docker health status.
    • git diff --check.

    Image

    repository.spitzerhome.com/david/pagemaster:0.2.8

    Digest: sha256:5e8d8d63405798f2eeed487f79f8b8c43552b11044809e7ab8da601a798b9350

    Downloads
  • v0.2.7 a68e308bec

    david released this 2026-06-19 08:13:26 -07:00 | 1 commits to main since this release

    Pagemaster v0.2.7 Acquisition Milestone

    v0.2.7 packages the post-v0.2.6 acquisition milestone work: richer Add New lookup, ranked wanted searches, release review actions, Blocklist restore, and saved indexer validation.

    What Changed

    • Extended Add New metadata lookup from authors into work and edition evidence results.
    • Added deterministic wanted-search ranking before release candidates are persisted.
    • Added operator-visible match status, match confidence, and warning details for search results.
    • Added release candidate Reject from Wanted Search Results.
    • Kept rejected release candidates persisted, hidden from active review, and blocked from download handoff.
    • Added Activity Blocklist restore for rejected release candidates.
    • Added POST /api/acquisition/sources/indexer/test for saved generic Newznab/Torznab/Prowlarr source validation.
    • Added Integrations UI actions to test a saved indexer from the setup form or source list.
    • Kept indexer credentials server-side and returned only redacted status metadata plus result count from validation.
    • Bumped app/package/image metadata to 0.2.7.

    Operator Notes

    Configure indexers from Integrations with a direct Newznab/Torznab endpoint or a Prowlarr-compatible endpoint. Save the source first, then use Test saved indexer or the Test action in Acquisition Sources. Validation runs a generic backend search with the stored API key and reports success, failure category, redacted error text, and result count.

    Release search results are now reviewable before download. Strong matches can be downloaded, weak matches remain visible with warnings, rejected candidates move to Activity Blocklist, and restored candidates return to active Search Results.

    Verification

    • make frontend-check.
    • make test.
    • make build.
    • make docker-build.
    • Docker image label inspection for pagemaster:0.2.7.
    • Container smoke for /api/health and /api/setup/status, confirming setup reports v0.2.7.
    • git diff --check.
    • Added API coverage for saved indexer validation against a fake Newznab RSS source.

    Image

    repository.spitzerhome.com/david/pagemaster:0.2.7

    Digest: sha256:d1d2d197235908e2b0879067f18544129256eae25d0ca27059f94519680504ab

    Downloads
  • v0.2.6 51d9684c56

    david released this 2026-06-18 16:09:41 -07:00 | 7 commits to main since this release

    Pagemaster v0.2.6 Output Profile Controls

    v0.2.6 wires the first real downstream output profile controls into the lab app.

    What Changed

    • Added Settings profile controls for Audiobookshelf, Grimmory, staging, archive, and custom output profiles.
    • Persisted profile kind, media kind, managed-output root, apply policy, collision policy, sidecar policy, and profile config.
    • Added GET /api/config/output-profiles and POST /api/config/output-profiles.
    • Made configured-root scans and completed-download imports select a saved profile by media kind before building organization plans.
    • Made approved copy-only apply prefer the selected profile's configured managed-output root.
    • Kept empty installs on the conservative Audiobookshelf dry-run fallback until an operator creates profiles.
    • Rebuilt the embedded React/Vite app bundle so the Go server serves the new Settings profile surface.

    Operator Notes

    Create managed-output roots before attaching them to output profiles. Ebook-focused Grimmory profiles should point at an ebook managed-output root. Audiobookshelf profiles should point at an audiobook managed-output root. Apply remains manual, copy-only, no-overwrite, and audited.

    Verification

    • go test ./... in the Go 1.25 Docker toolchain.
    • npm run frontend:check.
    • npm run build.
    • Added API coverage for profile save/list, profile-based scan planning, and profile-root apply routing.

    Container Image

    Image: repository.spitzerhome.com/david/pagemaster:0.2.6

    Digest: sha256:fe27d8a588a7cc4d6c2838f1ff12525f17c6d6c4a49b079c899428e12eb7682e

    Downloads
  • v0.2.5 077b06f66b

    david released this 2026-06-18 13:29:29 -07:00 | 8 commits to main since this release

    Pagemaster v0.2.5 closes the first completed-download import bridge. Completed SABnzbd and qBittorrent jobs now resolve the saved client source name, scan the mapped local completed path, persist a scan plus organization plan, create linked release candidates for review, and log import-ready or import-failed Activity events.

    Verification:

    • go test ./... in the Go 1.25 Docker toolchain
    • npm run frontend:check
    • npm run build
    • docker build -t repository.spitzerhome.com/david/pagemaster:0.2.5 -t repository.spitzerhome.com/david/pagemaster:latest .
    • docker push repository.spitzerhome.com/david/pagemaster:0.2.5
    • docker push repository.spitzerhome.com/david/pagemaster:latest
    Downloads
  • v0.2.4 b843ce2461

    david released this 2026-06-18 07:42:03 -07:00 | 9 commits to main since this release

    Pagemaster v0.2.4 Release Display Fix

    v0.2.4 fixes a stale backend release string that caused the System status page to show an older version while the UI header showed the current version.

    Included

    • Backend setup status now reports the release from shared build metadata instead of an old hardcoded value.
    • The UI header now uses the backend setup status release, so the header and System status stay aligned.
    • Added a regression test that compares setup status release to the repository VERSION file.

    Verification

    • npm run frontend:check
    • npm run build
    • Docker Go tests: go test ./...
    Downloads
  • v0.2.3 7a48cb81d9

    david released this 2026-06-17 16:44:49 -07:00 | 10 commits to main since this release

    Pagemaster v0.2.3 Readarr-Style Navigation Refresh

    v0.2.3 moves the Pagemaster operator console closer to Readarr's information architecture.

    Included

    • Library now uses sub-pages for Authors, Books, and Unmapped Files.
    • Wanted now uses sub-pages for Missing, Cutoff Unmet, and Manual Import.
    • Activity now uses sub-pages for Queue, History, and Blocklist.
    • Settings now uses Readarr-style areas: Media Management, Profiles, Quality, Indexers, Download Clients, Metadata, General, and UI.
    • Existing configured roots, metadata providers, indexers, download clients, jobs, events, and wanted records are presented inside those workflow-aligned sections.

    Verification

    • npm run frontend:check
    • npm run build
    • Docker Go tests: go test ./...

    Known Limits

    • This is an information-architecture and navigation pass, not full Readarr feature parity.
    • Some settings sections intentionally show current capability placeholders while the matching backend workflows are still being built.
    Downloads
  • v0.2.2 60310dd836

    david released this 2026-06-17 16:10:35 -07:00 | 12 commits to main since this release

    Pagemaster v0.2.2 CSRF Refresh Fix

    v0.2.2 fixes restored browser sessions losing the in-memory CSRF token after page reloads.

    Included

    • Added authenticated GET /api/auth/csrf to rotate and return a fresh CSRF token for the current session.
    • The React app now refreshes CSRF after /api/auth/me succeeds on startup.
    • Added a regression test proving a restored session can refresh CSRF and create a wanted item.

    Verification

    • npm run frontend:check
    • npm run build
    • Docker Go tests: go test ./...
    Downloads
  • v0.2.1 40a2cbefab

    david released this 2026-06-17 15:49:04 -07:00 | 14 commits to main since this release

    Pagemaster v0.2.1 Cleanup Refresh

    v0.2.1 removes the old fixture/demo application surfaces so fresh installs start empty after the first operator account is created.

    Included

    • Removed fixture-only app routes for seed data, fake client tests, fake SAB handoff, and direct fixture scans.
    • Removed runtime fixture-root configuration from serve and the Proxmox LXC service environment.
    • Replaced the embedded fallback HTML with a neutral unavailable-bundle page.
    • Updated configured-root scan tests to use the real source-root API path.
    • Updated docs to describe the configure-first lab behavior.

    Verification

    • npm run frontend:check
    • npm run build
    • Docker Go tests: go test ./...

    Expected Fresh Install State

    After creating the first operator account, the app should have no wanted items, release candidates, fake clients, fixture scans, or seeded download jobs.

    Downloads
  • v0.2.0 b0042a047d

    david released this 2026-06-17 15:19:55 -07:00 | 18 commits to main since this release

    Auth + activity events + metadata providers + completed-download polling.

    See docs/release-v0.2.0.md for full details.

    Downloads
  • v0.1.0 1f34f64a34

    david released this 2026-06-16 16:38:41 -07:00 | 33 commits to main since this release

    Pagemaster v0.1.0 Lab Release

    v0.1.0 is the first packaged Pagemaster lab release foundation. It is intended for controlled testing with staged files and fixture-safe workflows, not unattended production use against irreplaceable libraries.

    Included

    • Product name and UI branding: Pagemaster, "Look to the books".
    • React/Vite operator console served by the Go backend.
    • First-run setup endpoint and initial operator creation.
    • Operator/requester/viewer role foundation.
    • Server-side password hashing.
    • Setup status and configuration summary APIs.
    • SQLite schema additions for users, sessions, settings, secret records, output profiles, automation profiles, and per-root apply behavior.
    • Embedded SQLite schema for packaged runtime.
    • Docker image target pagemaster:0.1.0.
    • Published registry image repository.spitzerhome.com/david/pagemaster:0.1.0.
    • Calibre bundled in the runtime image for self-contained ebook conversion tooling.
    • Existing fixture scanner, organization dry-run, acquisition prototype controls, and copy-only apply workflow remain available.
    • Repo docs and Forgejo wiki updated for setup, configuration, usage, deployment, and release notes.

    Install

    Build and run locally:

    docker build -t pagemaster:0.1.0 .
    docker run --name pagemaster \
      -p 8090:8090 \
      -v pagemaster-data:/var/lib/pagemaster \
      -v /path/to/media:/media \
      pagemaster:0.1.0
    

    Or run the published registry image:

    docker run --name pagemaster \
      -p 8090:8090 \
      -v pagemaster-data:/var/lib/pagemaster \
      -v /path/to/media:/media \
      repository.spitzerhome.com/david/pagemaster:0.1.0
    

    Open http://<docker-host>:8090 and create the first operator account from the setup screen.

    Verified

    • npm run frontend:check
    • npm run build
    • npm audit --omit=dev --audit-level=high
    • make test
    • make build
    • bash -n scripts/proxmox/install-pagemaster-lxc.sh
    • make docker-build
    • Docker smoke check for /api/health
    • Docker smoke check for /api/setup/status
    • Docker smoke check for /

    The current local image is about 1.96 GB because it includes Calibre and its runtime dependencies.

    Published digest:

    sha256:962b71355f8839e403a84e2eae1e03751b33e30e4428f74dd5d7c499194c39e8
    

    Known Limits

    • Session enforcement is not complete beyond initial setup scaffolding.
    • In-app configuration screens for roots, output profiles, secrets, and automation policy are still next.
    • Secret encryption-at-rest is represented in schema/planning, but full app-managed encrypted secret storage is not complete yet.
    • Real provider setup is not wired end to end yet.
    • MyAnonamouse support must be researched and documented accurately before source-specific behavior is implemented.
    • Treat source libraries as valuable data. Keep lab testing focused on staged roots until real-root configuration and operator review flows are complete.
    Downloads