matrix-docker-ansible-deploy/docs/uninstalling.md
Slavi Pantaleev e1690722f7 Replace cronjobs with systemd timers
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/756

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/737

I feel like timers are somewhat more complicated and dirty (compared to
cronjobs), but they come with these benefits:

- log output goes to journald
- on newer systemd distros, you can see when the timer fired, when it
will fire, etc.
- we don't need to rely on cron (reducing our dependencies to just
systemd + Docker)

Cronjobs work well, but it's one more dependency that needs to be
installed. We were even asking people to install it manually
(in `docs/prerequisites.md`), which could have gone unnoticed.

Once in a while someone says "my SSL certificates didn't renew"
and it's likely because they forgot to install a cron daemon.

Switching to systemd timers means that installation is simpler
and more unified.
2021-01-14 23:35:50 +02:00

1.7 KiB

Uninstalling

Warnings:

  • If your server federates with others, make sure to leave any federated rooms before nuking your Matrix server's data. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating.

  • If you have some trouble with your installation, you can just re-run the playbook and it will try to set things up again. Uninstalling and then installing anew rarely solves anything.


Uninstalling using a script

Installing places a /usr/local/bin/matrix-remove-all script on the server.

You can run it to to have it uninstall things for you automatically (see below). Use with caution!

Uninstalling manually

If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself):

  • ensure all Matrix services are stopped: ansible-playbook -i inventory/hosts setup.yml --tags=stop (if you can't get Ansible working to run this command, you can run systemctl stop 'matrix*' manually on the server)

  • delete the Matrix-related systemd .service and .timer files (rm -f /etc/systemd/system/matrix*.{service,timer}) and reload systemd (systemctl daemon-reload)

  • delete some helper scripts (rm -f /usr/local/bin/matrix*)

  • delete some cached Docker images (docker system prune -a) or just delete them all (docker rmi $(docker images -aq))

  • delete the Docker networks: docker network rm matrix matrix-coturn (might have been deleted already if you ran the docker system prune command)

  • uninstall Docker itself, if necessary

  • delete the /matrix directory (rm -rf /matrix)