Migrating to a New Server¶
Sometimes, it may be necessary or desirable to migrate your existing Funkwhale setup to a new server. This can be helpful if you need to boost resources or if you wish to use a different hosting platform.
Requirements¶
To get started with your new setup, you will need to have the following:
rsync installed on the destination server
SSH access set up between the two servers
Non-Docker¶
On the target server, run through the installation steps but skip the Database setup steps
Stop all funkwhale related services on the destination server
On the original server, create a database backup
sudo -u funkwhale pg_dump -d funkwhale > "db.dump"
On the destination server, use rsync to copy the contents of /srv/funwkhale/data/media/music and /srv/funkwhale/data/music from the original server
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/data/media/ /srv/funkwhale/data/media/
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/data/music/ /srv/funkwhale/data/music/
Copy your .env file and database backup from your original server
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/config/.env /srv/funkwhale/config/
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/db.dump /srv/funkwhale/
Restore the database dump
sudo -u funkwhale pg_restore -d funkwhale db.dump
Once the database has been restored, follow the database migration steps from the guide to complete the installation
Ensure that all DNS changes have been made and start the services
Docker¶
On the target server, run through the installation steps but skip the docker-compose run –rm api python manage.py migrate step
Stop all funkwhale related containers on the destination server
On the original server, create a database backup
docker exec -t funkwhale_postgres_1 pg_dumpall -c -U postgres > "db.dump"
On the destination server, use rsync to copy the contents of /srv/funwkhale/data/media/music and /srv/funkwhale/data/music from the original server
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/data/media/ /srv/funkwhale/data/media/
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/data/music/ /srv/funkwhale/data/music/
Copy your .env file and database backup from your original server
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/.env /srv/funkwhale/
rsync -a <your username>@<original server IP/hostname>:/srv/funkwhale/db.dump /srv/funkwhale/
Restore the database dump
docker exec -i funkwhale_postgres_1 pg_restore -c -U postgres -d postgres < "db.dump"
Once the database has been restored, run the migrations
Ensure that all DNS changes have been made and start the services