Upgrading
Praxrr uses semantic versioning and Docker release channels. Plan upgrades so
your APP_BASE_PATH data, encrypted Arr credentials, and PCD links survive
the transition.
Release channels
Section titled “Release channels”| Channel | Docker tag | Trigger | Stability |
|---|---|---|---|
| Develop | :develop |
Every push to main |
Unstable |
| Beta | :beta |
v*-beta.* tag |
Testing |
| Stable | :latest |
v* tag (no -beta) |
Stable |
Version pins such as :v2.1.0 are also published for immutable deployments.
Stable releases target Wednesdays after at least one week in beta without major issues. See the development guide in the repository for tagging workflow.
Upgrade steps (Docker)
Section titled “Upgrade steps (Docker)”- Back up the
APP_BASE_PATHvolume (at minimumdata/praxrr.dbanddata/databases/). - Pull the new image tag:
docker compose pull praxrrdocker compose up -d- Watch container logs for migration output on first startup.
- Open the UI and confirm linked PCDs and Arr instances remain connected.
- Run Sync Preview on critical instances before applying changes.
Upgrade steps (binary)
Section titled “Upgrade steps (binary)”- Stop the running process.
- Back up
APP_BASE_PATH. - Replace the executable with the new build.
- Start Praxrr with the same environment variables (especially
ARR_CREDENTIAL_MASTER_KEYand version). - Verify migrations completed via logs.
Database migrations
Section titled “Database migrations”Praxrr runs SQLite migrations automatically during startup
(hooks.server.ts sequence: config → staged restore → database → migrations → PCD → jobs).
- App schema changes live in
packages/praxrr-app/src/lib/server/db/migrations/. - Do not downgrade to an older Praxrr version after migrations advance without restoring a backup.
- PCD schema updates may require a compatible
PRAXRR_SCHEMA_REFor local schema path when developing against custom forks.
Credential key rotation
Section titled “Credential key rotation”When rotating ARR_CREDENTIAL_MASTER_KEY:
- Set
ARR_CREDENTIAL_PREVIOUS_KEYSto a JSON map of old version → base64 key. - Deploy the new
ARR_CREDENTIAL_MASTER_KEYandARR_CREDENTIAL_MASTER_KEY_VERSION. - Re-save or re-import Arr instance API keys if decryption errors appear in logs.
Never commit master keys to Git.
PCD compatibility
Section titled “PCD compatibility”After upgrading, pull linked PCD repositories so base ops match the expected schema. If type generation or sync fails, confirm your PCD fork matches the Praxrr release’s schema manifest.
Set PRAXRR_SCHEMA_REF to pin a known-good schema tag when running curated
stacks (for example latest or a release tag).
Sessions after upgrade
Section titled “Sessions after upgrade”Migration 20261026 deletes every session whose stored id is not already a SHA-256 hex
digest. Cookies issued before that migration no longer match, so everyone must sign in
again. Later sliding renewals keep the same cookie value and only refresh its expiry.
Before downgrading below that migration, run DELETE FROM sessions. Older builds treat
sessions.id as the cookie value, so a stored hash would be a valid bearer.
OIDC sign-in
Section titled “OIDC sign-in”AUTH=oidc refuses a new sign-in unless an allowlist is set or OIDC_ALLOW_ALL_USERS is
enabled. See Configuration. The first OIDC boot on this behavior, and
any later change to the effective allowlist, signs out OIDC sessions. API tokens are
separate; review them in Settings → Security before upgrading.
In-app backup restore
Section titled “In-app backup restore”Settings → Backups does not replace the live database immediately. It stages the
archive. Restart Praxrr to apply it. The previous data/ directory is kept as
data.pre-restore-*. Copying a backup over the open SQLite files is not the in-app path.
Rollback
Section titled “Rollback”If an upgrade fails:
- Stop Praxrr.
- Restore the backed-up
APP_BASE_PATHdirectory. - Redeploy the previous Docker tag or binary version.
- Investigate logs before retrying.
Next steps
Section titled “Next steps”- Configuration — environment reference
- Troubleshooting — post-upgrade errors
- Architecture Overview — startup sequence detail