5 Updating
John Beresford edited this page 2025-01-22 14:00:27 -08:00

Retrom is composed of both a server, and any amount of clients. The server is responsible for managing your library, and the clients are responsible for interacting with the server to view and play your games. This guide will walk you through updating the server and the client(s) you use to interact with it.

Caution

You should always keep your server and client(s) versions in sync. While minor version updates will sometimes be partially compatible, is is not guaranteed. If you are unsure, it is best to update both the server and client(s) at the same time.

Updating the Server

Tip

It is recommended to use Docker Compose to coordinate your retrom service and, optionally, database containers. Check out the Example in the installation instructions for more information.

If you are running the server via Docker, you can update the server by simply pulling the latest image from the registry and re-creating the container. All data is persisted in the database, so you won't lose any of your library data so long as you only remove the service container.

If you are using a compose file, you can update the server with the following steps:

  1. Pull the latest image:
    docker compose pull
    
  2. Recreate the container:
    docker compose up --force-recreate --build -d
    
  3. Remove the old image:
    docker image prune -f
    

Or, if using docker w/o compose:

  1. Pull the latest image:
    docker pull ghcr.io/jmberesford/retrom-service:latest
    
  2. Stop the existing container:
    docker stop retrom # or whatever you named your container
    
  3. Remove the existing container:
    docker rm retrom # or whatever you named your container
    
  4. Recreate the container, see the Installation instructions for more information on how to do this.

Updating the Client

The client has an auto-update feature built in. When you start the client, it will check for updates and prompt you to install them if any are available. If you have disabled this feature, are using an incompatible client build ( e.g. rpm or deb bundles), or want to manually check for updates, you can do so by downloading the latest release from the Releases page.

Backing up your configuration and data

Generally speaking, you should not need to back up your configurations, as client configurations are stored in the server database and server configurations should be stored in a persistent volume. However, in the event that you need to back up your configurations, the following locations are where you should look:

Server

If you are running the server via docker, and are using bind mounts for your config and data directories, you will find your files on your host machine in the directory you specified in your docker-compose.yml file.

If you are using a volume for your config and data directories, you will want to copy the data from the container. You can copy to your host machine with the following command(s):

Assume the following docker-compose.yml file ( see the Installation instructions for more information ):

services:
  retrom:
    # ... other service stuff
    volumes:
      - retrom-config:/app/config/
      - retrom-data:/app/data/

volumes:
  retrom-data:
  retrom-config:
docker compose cp retrom:/app/config/ /path/to/backup/on/local/machine
docker compose cp retrom:/app/data/ /path/to/backup/on/local/machine

Client

Client configuration and data files are stored in OS-specific directories. You can find them in the following locations:

  • Windows: %APPDATA%\roaming\com.retrom.client and %APPDATA%\local\com.retrom.client
  • Linux: ~/.config/com.retrom.client, or ~/.local/share/com.retrom.client -- generally, $XDG_CONFIG_HOME and $XDG_DATA_HOME are respected
  • macOS: ~/Library/Application Support/com.retrom.client