In the following, we give examples with the command-line tool cURL. You don't have to but you can run these on the COYO host.
If update to a higher version, from v14.x to 21.x for example, please note that you first update v14 to v18 and then v18 to v21.
Also, we recommend always update to the latest major of your current version when updating to a higher major version (21.8.0 to 21.9.0 to 25.10.7).
Also make sure to not use a more recently published version, then the version you want to update to.
In example, If you try to update from a LTS version that contains a newer backport (28.7.2, published march 19th) to the next major version (32.2.0, published march 16th), the update will fail due to mismatching bugfix migration dates.

(Make sure to replace the COYO_* parameters with the values in your .env file)
#create backup:
curl -u 'COYO_MANAGEMENT_USER':'COYO_MANAGEMENT_PASSWORD' -X PUT https://COYO_BACKEND_URL:8083/api/backups
#check backup status:
curl -u 'COYO_MANAGEMENT_USER':'COYO_MANAGEMENT_PASSWORD' https://COYO_BACKEND_URL:8083/api/backups
3. Stop COYO with the ./stop.sh script
root@coyo-host:/home/coyo unzip coyo4_<version>-RELEASE.zip
Archive: coyo4_<version>-RELEASE.zip
replace .env? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: .env_<version>
inflating: .env_<version>
replace coyo-push.properties? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace coyo-backup.properties? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace stop.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
replace docker-compose.yml? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
replace start.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
replace start-advanced.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
replace coyo-backend.properties? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace README.md? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
sdiff -o .env_new .env .env_<version>
It creates a new file (.env_new) from your current .env and the previously unzipped one from the new version (.env_<version>)
The tool shows a side-to-side view of both files. You can choose which parameters to merge into the new file with either entering 1 (for left) or 2 (for right).
Afterwards you rename .env_new to .env .
# Mode for single host installation
COYO_SINGLE_BACKEND=true
# Score for OOM
COYO_BACKEND_OOM_SCORE=0
# Mandatory shared secret used for authorization json web tokens that are used to authorize the user at the services
# (e.g. translation service). Must be at least 256 bit (32 byte) long.
COYO_AUTHORIZATION_KEY=
Additionally we merged the parameters from .services into .env. If you are using an add-on, you would want to set the correct values in the .env for these.
As of v32, all /manage/* endpoints change to /manage/backend/*
for example, when deactivating maintenance mode:
curl -u 'COYO_MANAGEMENT_USER':'COYO_MANAGEMENT_PASSWORD' \
-X DELETE \
https://COYO_BACKEND_URL/manage/backend/maintenance
In Version 35+
We are migrating your files from GridFS to S3. For that process you should have at least double the storage free that COYO is currently using. So if your COYO is 400GB in storage size you will need 800GB of free storage space. Also make sure to have 2GB of RAM available for the migrator service.
./start.sh
./start-advanced.sh
tail -f coyo-data/backend/logs/coyo-backend.log