Upgrading¶
Onionprobe adopts the Semantic Versioning 2.0.0, which means that any major version might have breaking changes on previous installations.
The ChangeLog file contains the list of main changes from version to version, including breaking changes.
The following subsections documents other upgrade procedures, such as database updates.
Standalone monitoring node¶
Upgrade procedures for the standalone monitoring node.
PostgreSQL database¶
Major upgrades¶
This procedure is based on the tianon/docker-postgres-upgrade approach1 and needs to be done whenever Onionprobe is upgraded to a new postgres image version:
Stop the monitoring node¶
Just run
docker-compose down
Run the upgrade script¶
This handy script may do all the heavy lifting for you (requires sudo
):
./scripts/upgrade-postgresql-database
By default it searches for the onionprobe_postgres
service container, but
you can pass the name of your custom container as the optional command line
parameter:
./scripts/upgrade-postgresql-database <service-container-name>
As a safeguard measure, the script does not remove it's working directory and also makes a backup of the old PostgreSQL data. You can manually remove those later after checking that the upgrade procedure works. Just follow the script output for instructions or check it's source code.
Start the monitoring node¶
Simply start the standalone monitoring node again after the upgrade procedure:
make run-containers
Collation upgrades¶
During system upgrades, it might also be needed to upgrade the collation version of the PostgreSQL databases.
Run the following commands if you're getting warnings such as The collation in
the database was created using version A.B.B, but the operating system provides
version X.Y.Z
:
$ docker exec -ti onionprobe_postgres_1 psql -U grafana
grafana=# ALTER DATABASE grafana REFRESH COLLATION VERSION;
NOTICE: changing version from 2.31 to 2.36
ALTER DATABASE
grafana=# ALTER DATABASE template1 REFRESH COLLATION VERSION;
NOTICE: changing version from 2.31 to 2.36
ALTER DATABASE
grafana=# ALTER DATABASE postgres REFRESH COLLATION VERSION;
NOTICE: changing version from 2.31 to 2.36
ALTER DATABASE
grafana=#
References:
- postgresql - Collation version mismatch - Database Administrators Stack Exchange
- PostgreSQL: Documentation: 16: ALTER COLLATION
Tor¶
Sometimes an image upgrade changes the debian-tor
's UID
and GID
, which
may require a manual ownership fix in the Docker volume data:
sudo chown -R 101:103 /var/lib/docker/volumes/onionprobe-instance_tor/_data
-
See tpo/onion-services/onionprobe#70 for more information. ↩