MILL_SECRET and the database connection settings. Keep existing PostgreSQL storage intact.
Upgrade published images
Download the new release’sdocker-compose.yml and .env.example into a temporary directory. Compare the configuration options with your installation and apply any required changes. Do not overwrite your existing .env or replace its secrets with the empty example values.
Use the new release’s Compose file, preserving any local port or hosting changes. Alternatively, update both services’ image fields to the new release version. If you pin digests, copy both references from the same release’s mill-images.json. Image selection does not require an environment variable.
-f docker-compose.yml -f docker-compose.postgres.yml in both Compose commands and keep the existing volume. Download the new release’s PostgreSQL overlay too, compare it before replacing your copy, and preserve any reviewed local changes.
The API applies new migrations at startup and verifies old migration checksums. The UI waits for a healthy API. After readiness succeeds, test sign-in, a board, a task edit, notifications and any REST/MCP clients you rely on. Image pulls and readiness alone do not prove your team’s workflow.
The publisher verifies both images on native AMD64 and ARM64 hosts, including installation, restart, database recovery, HTTPS proxy behavior and image security. Review the release notes and evidence before pointing an existing database at a new release.
The first public release
The proposed first public release is1.0.1. Its schema starts with the immutable 001_initial.sql baseline and the forward 002_key_policies.sql migration. There is no earlier public release to upgrade from.
Private pre-launch builds used a different migration sequence. The API rejects those ledgers rather than applying the new baseline over existing tables. Stop the old application and follow the maintainer’s pre-launch conversion procedure. Retain the original schema and a tested full backup. Never edit mill_migrations or an applied SQL file to bypass a startup error.
After publication, changes use new forward migrations; release notes describe compatibility and any required operator steps.
