Upgrading
Upgrading cronpad means replacing the binary or image and restarting. Database migrations run automatically on start. Because only one process may own the database, an upgrade is a stop-then-start, which pauses scheduling for a few seconds; runs due in that window fire as soon as the new version is up.
Steps
- Read the release notes for the versions you’re skipping.
- Make sure Litestream replication is healthy (or take a copy of the data directory).
- Verify the release archive against
checksums.txtand review its SPDX SBOM if installing a binary. Replace the image tag or binary and restart (docker compose pull && docker compose up -d, or roll out the new image withstrategy: Recreate). - Watch the logs for
server startedand check/readyz.
Versioning
- cronpad follows semantic versioning. Minor and patch releases are drop-in.
- Major releases may change configuration or the API.
/api/v1stays compatible for as long as it exists; breaking API changes get a new version path. - Migrations only move forward. To roll back to an older version after a migration, restore the database from before the upgrade.
Running migrations separately
If you set database.run_migrations = false, run them yourself before starting the new version:
cronpad migrate --config /etc/cronpad/cronpad.toml