Updating
deploy/production/deploy.sh updates a running server in one go. Run it from anywhere:
~/TomYum-OSS/deploy/production/deploy.shWhat it does
- Pulls TomYum (
git pullin the checkout), then runs the pulled version of itself, so new steps always run. - Pauses the watchdog's alerts for up to 10 minutes.
- Pulls the website (
OSU_WEB_PATHfrom.env, by default../../../osu-web), and../../../lazer-circleguardif that folder exists. - Builds the website image (
docker compose --profile build build osu-web-build) and the rest (docker compose build). Unchanged parts come from Docker's build cache. - Runs the website's migrations before anything restarts (
artisan migrate --force): TomYum reads some of the website's tables. docker compose up -d: restarts what changed.- Creates any missing search index (
artisan tomyum:es-ensure). - Trims Docker's build cache to the most recently used 20 GB.
- Adds the new commits to the website's changelog (
changelog.sh). - Turns the alerts back on after a minute's grace.
TomYum's own database migrations run by themselves when the server starts.
changelog.sh is set up for somtum.fun
changelog.sh imports commits into the website's changelog with somtum.fun's repository names, its authors and a fixed start date. Edit those lines for your server, or take the ./changelog.sh line out of deploy.sh (in your own copy) if you don't want a changelog.
The spectator server isn't pulled by deploy.sh. To update it, git pull in its checkout (SPECTATOR_PATH), then docker compose build spectator && docker compose up -d spectator.
Updating by hand
The same steps, for one part at a time (from deploy/production):
# TomYum only
git -C ../.. pull
docker compose build server && docker compose up -d server
# The website only
git -C ../../../osu-web pull
docker compose --profile build build osu-web-build
docker compose run --rm artisan migrate --force
docker compose up -dpp libraries
When ppy's pp code or akatsuki-pp-rs changes, the pp updater can update them from the admin panel and start a pp rework. See pp reworks.
tools/RecalcPp works out pp again for TomYum's stored best scores, for example after changing the pp calculator a mode uses:
dotnet run --project tools/RecalcPp -- --dry-run # calculate, save nothing
dotnet run --project tools/RecalcPp # save
dotnet run --project tools/RecalcPp -- --mode 0 # osu! onlyIt reads the same TOMYUM_* settings as the server (config/.env, config/tomyum.yaml), so point them at your database first.
Before a big update
- Take a backup:
./backup.sh(backups). - Read the commits since your last update. Before
1.0.0a minor version (0.5to0.6) can change settings or behaviour, and there are no upgrade notes yet.

