10 Configuration
david edited this page 2026-06-19 08:09:00 -07:00

Configuration

This page documents how to configure Pagemaster as features are implemented.

First-Run Setup

The current lab app uses in-app setup.

  1. Start Pagemaster.
  2. Open the web UI.
  3. Create the first operator account.
  4. Use operator-created accounts for additional roles as role workflows become available.

Current roles:

  • operator
  • requester
  • viewer

The current setup API reports whether setup is required and how many active users exist by role. User passwords are hashed server-side.

Current Development Commands

Pagemaster uses a Go backend/scanner and React/Vite frontend. The Makefile uses .tools/go/bin/go when a repo-local Go install is present, otherwise it falls back to go on PATH.

From the repository root:

make test
make scan-fixtures
make prototype
make check-large-scan
make check-organization
make check-persistence
npm run frontend:check
npm run build
make build
make docker-build

make scan-fixtures runs the current Go read-only scanner against fixtures/test-library and prints a JSON dry-run discovery report.

make prototype starts the local Go web prototype. Defaults:

  • PORT=8090
  • DATA_DIR=data
  • FIXTURE_ROOT=fixtures/test-library
  • MANAGED_OUTPUT_ROOT=data/managed-output

Example:

PORT=8091 DATA_DIR=/tmp/library-manager-prototype MANAGED_OUTPUT_ROOT=/tmp/library-manager-managed-output make prototype

make docker-build builds pagemaster:$(cat VERSION). v0.2.7 reports itself through the backend setup status and System page.

In-App Configuration

Use Settings to configure:

  • Source roots for existing libraries, incoming folders, completed-download paths, and managed output.
  • Output profiles for Audiobookshelf, Grimmory, staging, archive, or custom downstream behavior.
  • Metadata providers.
  • Indexers and download clients from the integrations surfaces.

Output profile records store profile kind, media kind, managed-output root association, apply policy, collision policy, sidecar policy, and profile config. Scans select a configured profile by media kind when possible. Approved apply prefers the selected profile managed-output root.

Indexer records store non-secret base URL, protocol, categories, media kind, enabled state, and protected-route notes. API keys stay server-side. Use Test saved indexer after saving a Newznab/Torznab/Prowlarr source to validate the stored configuration with a redacted backend search result.

Apply remains manual, copy-only, no-overwrite, and audited. Keep real library roots and managed-output roots pointed at staged or disposable test paths until the operator has validated the plan output.

Planned Configuration Areas

  • Audit retention settings for old completed apply records.
  • Audiobookshelf connection details for scan handoff.
  • Grimmory sidecar generation settings once metadata and cover handling are stronger.
  • Automation profiles and release ranking policies.
  • Converter settings for manual approved ebook conversion.

Credential Rule

Provider credentials, API keys, downloader credentials, registry credentials, and metadata-provider secrets must not be committed to the repository or wiki. The preferred product direction is in-app server-side setup with encrypted-at-rest secret records under DATA_DIR, rather than hand-managed .env files for application configuration.

Deployment environment variables should stay limited to runtime basics such as PORT and DATA_DIR.