# Update Psono server CE
Update instruction for the Community Edition of the Psono server
# Preamble
From time to time you want to update to the latest version. Dependent on the installation you will have to follow different (but similar) procedures. At this point we assume that you have created a backup of your postgres database. If you have a possibility to snapshot your machine, please do so. Check that you are running Postgres 13 or later. The guide contains some steps to backup the application yet due to updating some system dependencies / python packages on the way can fail in some cases.
# Update with Docker
Update the docker image
docker pull psono/psono-server:latest
Stop old psono-server
docker stop psono-server
Update the database
docker run --rm \ -v /opt/docker/psono/settings.yaml:/root/.psono_server/settings.yaml \ -ti psono/psono-server:latest python3 ./psono/manage.py migrate
Start new psono-server
docker run --name psono-server-new \ --sysctl net.core.somaxconn=65535 \ -v /opt/docker/psono/settings.yaml:/root/.psono_server/settings.yaml \ -d --restart=unless-stopped -p 10100:80 psono/psono-server:latest
TIP
If you used custom volume mounts e.g. for custom branding, then make sure to adjust the command accordingly and add your volume mounts.
Cleanup
If everything works you can cleanup your containers with the following commands:
docker rm psono-server docker rename psono-server-new psono-server
If anything fails you should be able to restore the database, and start the old docker container again.
# Update for Ubuntu
This guide will update the Psono server. It has been tested on Ubuntu 18.04.
Become the psono user
sudo -iu psono
Backup the git folder
mv ~/psono-server ~/psono-server-backup
Clone the updated newest version
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
Become root
Ctrl + D sudo -i
Install python requirements
cd /home/psono/psono-server pip3 install -r requirements.txt su psono # become psono again
Update your database
python3 ~/psono-server/psono/manage.py migrate
Restart the Psono server
supervisorctl restart psono-server
Cleanup
If everything works you can remove the backup folder
sudo rm /home/psono/psono-server-backup
If anything fails you should be able to restore the database, delete the new psono-server folder and copy the backup folder back to its original place.
# Update for CentOS
This guide will update the Psono server. It has been tested on CentOS 7.
Become the psono user
sudo -iu psono
Backup the git folder
mv ~/psono-server ~/psono-server-backup
Clone the updated newest version
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
Become root
Ctrl + D sudo -i
Install python requirements
cd /home/psono/psono-server pip3 install -r requirements.txt su psono # become psono again
Update your database
python3 ~/psono-server/psono/manage.py migrate
Restart the Psono server
supervisorctl restart psono-server
Cleanup
If everything works you can remove the backup folder
sudo rm /home/psono/psono-server-backup
If anything fails you should be able to restore the database, delete the new psono-server folder and copy the backup folder back to its original place.