Skip to Content
DeploymentRelease Channels

Release Channels

PicPeak offers two release channels for different needs.

  • Production-ready releases.
  • Thoroughly tested before publication.
  • Docker tags: stable, latest, or a specific version like v2.3.0.

Beta

  • Early access to new features.
  • May contain bugs or incomplete functionality.
  • Docker tags: beta, or a specific version like v2.3.0-beta.1.

What is on each channel

Stable and beta are the same codebase at different distances from the edit. Beta releases continuously; stable is promoted from it in batches, and v3.132.1 is such a promotion --- it carries everything beta had accumulated since v3.46, so the features that used to be listed here as beta-only are now on stable:

Why stable jumped from 3.46.13 to 3.132.1. The two channels count releases independently: beta bumps on every merge, stable only on a promotion. Left alone the numbers drift far apart for identical code, so a promotion now sets stable to beta’s current base version. The jump is the two lines meeting, not 85 releases of change --- stable v3.132.1 and beta v3.132.1-beta.0 are the same tree.

  • PicTransfer --- cross-event file transfers with token-protected download links. Feature-flagged off by default.
  • Reveal mode and download resolutions --- hide a gallery until you reveal it; cap the size guests can download.
  • Editable roles and granular permissions --- a role editor, two preset roles, and dangerous-config permissions split out of settings.edit.
  • Emoji reactions, colour labels and shared colour tags --- proofing verdicts that round-trip to Lightroom.
  • Gallery folders --- categories that contain their photos instead of filtering them, so guests open them like chapters. Category ordering ships with it.
  • Face recognition --- “People in this gallery”, via an optional ML sidecar. Off by default, and the sidecar is not started unless you ask for it.
  • CRM and Accounting --- quotes, contracts, invoices, hours logging, calendar, tax report. Feature-flagged off by default. Seeded payment terms and contract blocks are examples only and need legal / financial review before customer-facing use.
  • Admin SSO (OIDC) --- including role mapping and logout to the IdP.

Beta will move ahead again after each promotion. A feature page says on which channel and from which version its subject is available; when a page names only a -beta.0 version, that feature is beta-only until the next stable promotion.

Stable promotions are one-way: several migrations are irreversible by design, so you cannot move an instance back from v3.132.1 to a v3.46.x image. Read Upgrading before you pull it --- that release also regenerates every gallery preview and rewrites fixed pixel heights in custom CSS.

Security support

Security fixes ship on the current stable line and on beta. The 3.46.x stable line is end of life: v3.46.13 was its last release and it receives no further fixes. Instances still on it should upgrade to the current stable release.

Configuring your channel

Set PICPEAK_CHANNEL in your .env:

# Stable (default) PICPEAK_CHANNEL=stable # Beta PICPEAK_CHANNEL=beta # Pin to a specific version PICPEAK_CHANNEL=v2.3.0

The production compose file uses this variable for both images:

image: ghcr.io/picpeak/picpeak/backend:${PICPEAK_CHANNEL:-stable}

Switching channels

# Edit .env and change PICPEAK_CHANNEL nano .env # Pull new images and restart docker compose -f docker-compose.production.yml pull docker compose -f docker-compose.production.yml up -d

Update notifications

The admin dashboard checks GitHub releases hourly (cached to avoid rate limits) and notifies you when updates are available for your channel.

To disable update checks:

UPDATE_CHECK_ENABLED=false

In-app updates

On the beta channel (from v3.165.0-beta.0) a super admin can also apply the update from the admin UI, if the install has opted in. The update always goes to the newest image of the channel set in PICPEAK_CHANNEL; it never switches channels and never downgrades. See In-App Updates.

Last updated on