Upgrade
Upgrades are one-way: on start the new version brings the database schema up to date. An older version cannot run against a migrated database, so the way back is a restore from backup.
Procedure
- Read the release notes of every version between the running one and the target.
- Back up the database, the blob stores and the secrets key.
- Stop the server and wait until it has exited. On SIGTERM it finishes in-flight requests, stops its tasks and saves its download counters; give it up to three minutes. With several servers on one database, stop all of them.
- Change the version:
- container: change the image tag, for example
globalartltd/astrum-repository:20261018120000-3fa9c1e(see the tags of the image); - built from source: install the new binary and web interface next to the old ones and point the service at them. The data directory stays where it is.
- container: change the image tag, for example
- Start the server and follow the log. The migrations it applies are logged as they run. To apply them before serving, run
astrum migratewith the new version first. - Check Settings → Support → Metrics and Health, sign in, and download a few artifacts from hosted and proxy repositories.
Never run two versions against the same database at the same time: servers that start together are safe, because migrations run under a database lock, but a server of the old version does not understand the new schema.
Rolling back
Stop the server, restore the backup taken in step 2 and start the previous version.
Upgrade notes
3.0.2
The update needs no steps of its own; the server adds one table to the database at start. Some settings that were saved before but had no effect now work, which can change what an existing installation does:
- A task with a Notification Email sends email after its runs, as its Send Notification setting says, once an email server is set up; see tasks.
- LDAP servers and OpenID Connect with the truststore option on trust the certificates under Settings → Security → SSL Certificates besides those of the system; see SSL certificates.
- Servers that share a database pick up changes of users, roles, realms and blob stores made on another server within seconds instead of at their next start; see nodes.
3.0
Version 3.0 is a new server written in Rust, with a new web interface. It replaces the 2.x line, which ran on the Java virtual machine and an embedded or external database. It cannot be installed over a 2.x data directory or database: the data is moved with the migration tools, see move from another repository server. What changes for clients and administrators:
- Repository URLs, the Docker
/v2/API and the REST API under/service/rest/v1keep their paths and JSON shapes. The older URLs under/content/and/service/local/still work. - The web interface uses plain paths (
/browse/...,/admin/...,/settings). Old links with a hash, such as#browse/..., are redirected. - PostgreSQL is required; there is no embedded database.
- Settings that lived in
astrum.properties, the JVM options andastrum-store.propertiesare replaced byastrum.tomland environment variables, see runtime configuration. The container listens on 8081, runs as uid 200 and keeps its data in/astrum-data, as before. - The scripting API (
/service/rest/v1/script) and Groovy tasks are gone. - Prometheus metrics at
/service/metrics/prometheusare off until the capability Metrics: Prometheus is created, and their names are new; see monitoring.