Skip to content

Upgrade ReputeCast

How-to guide
For:
Server operators
In the app:
Instance admin, then Instance & updates

To upgrade ReputeCast, you replace the image or binary with a newer release and let it apply its database migrations; everything else (configuration, secret key, data) stays as it is.

An instance admin sees the installed version, the latest release and its changelog under Instance admin, then Instance & updates, in the Version & updates card. From the command line, reputecast version prints the same: reputecast <version> (<commit>) <Go version>.

The Version & updates card shows the installed version, the latest release v1.5.0 with its changelog, the upgrade command and the daily release check switched on.
  • The badge Update available appears when the latest release is newer than the installed version. Builds without a release version number (such as dev) never show it.
  • Under Upgrade on the server, the card shows the Docker Compose command cd /opt/reputecast && docker compose pull && docker compose up -d. Replace /opt/reputecast with the folder that holds your docker-compose.yml.
  • The switch Check GitHub releases once a day fetches the latest release from api.github.com once a day. The request carries no version number and no instance ID; it is the only outbound call ReputeCast makes on its own. Switch it off here, or set updates.check: false in the configuration to turn it off for the whole instance (the switch is then locked).
  1. Go to the folder with your docker-compose.yml and take a backup:

    Terminal window
    docker compose exec -T postgres pg_dump -U reputecast -d reputecast -Fc > reputecast-before-upgrade.dump
  2. If you pin a version in .env (REPUTECAST_VERSION=v1.4.2), change it to the new release tag. Image tags are the release tags with their leading v, plus latest. Without REPUTECAST_VERSION, the compose file uses latest.

  3. Pull the new image and recreate the app container:

    Terminal window
    docker compose pull && docker compose up -d

    The image starts with serve --auto-migrate, so it applies pending migrations before it serves requests. The logs show one migration applied line per migration.

  • Version & updates shows the new version as installed.
  • reputecast migrate status lists every migration with an applied date and none as pending. In Docker: docker compose exec app /usr/local/bin/reputecast migrate status.
  • /readyz answers ready (health checks, metrics and logs).

Going back to the previous image or binary does not undo migrations: the database keeps the newer schema.

  • Restore the backup for an exact return to the state before the upgrade: stop ReputeCast, restore the dump you took (see restore), then start the version you ran before. Changes made after the upgrade are lost.
  • Pin the previous version (REPUTECAST_VERSION in .env, then docker compose up -d), as the Version & updates card suggests, when you want to keep the data written since the upgrade.
  • reputecast migrate down rolls back only the latest ReputeCast migration, one per run, and leaves the job queue’s tables alone. Prefer a restore.
  • The new container exits at start: read docker compose logs app. A failed migration stops the start with migrate: …; restore the backup and report the error with the release version.
  • The version card says the update check failed: the server can’t reach api.github.com, or GitHub answered with an error. Nothing else is affected; the next check runs the following day.
  • The latest release shows a dash: the check is off, or has not run yet.