Skip to content

Server Maintainance

Jonah Brüchert edited this page Feb 9, 2025 · 6 revisions

MOTIS updates

Disclaimer: The following steps work for the general case in which OSM-based imported data has not become incompatible. If one of (osr, adr, tiles) has received incompatible changes, motis will fail to start with an error message.

MOTIS updates require the imported timetable to be rebuilt. If this doesn't happen on the CI, MOTIS may fail to start, which increases the downtime. If done in the following order, that should not happen:

  • Run systemctl disable motis-update-feeds.timer on the server, so MOTIS doesn't try to start off a newer version of the cache that it can't handle.
  • Update ci/container/Containerfile locally
    • podman build -t ghcr.io/public-transport/transitous/import:latest .
    • podman push ghcr.io/public-transport/transitous/import:latest
    • Commit and push the changes to the Containerfile
    • Manually start the daily-import cron job on routing-import.spline.de
  • Once it has finished, update ansible/roles/motis/tasks/main.yml
  • Run ansible-playbook -i hosts motis.yml in the ansible directory.
  • Manually trigger a data update on the server: systemctl start motis-update-feeds.service

The server should now be running the latest MOTIS version.

Feed updates

Feeds are updated automatically every night, by copying the new files from /var/cache/transitous/out/. A feed update can be manually triggered using systemctl start motis-update-feeds.

Run IO Intensive work

(without impacting the service too much)

Give realtime IO priority to MOTIS:

ionice -u $(getent group motis | cut -d: -f3) -c 1