Skip to content
Maintenance

Updating

Install new versions by hand, with the installer, or in one click from the panel.

The panel lets you know under Updates when there's a new version your license includes. Your data, storage and settings live in datos/ and are kept when you update.

By hand

In the install folder (/opt/kumoyami if you used the installer):

cd /opt/kumoyami
docker compose pull && docker compose up -d

pull downloads the latest version your license covers and up -d recreates the container with it. The docker login session is kept: you only need to log in again if your license key changes.

After changing something in .env, docker compose up -d is all it takes.

With the installer

Running install.sh again updates too: besides pulling the new image and restarting, it brings docker-compose.yml up to date (keeping the old one as docker-compose.yml.bak-DATE). It keeps .env and your data.

curl -fsSL https://kumoyami.com/install.sh | sudo bash

If you've made your own changes to docker-compose.yml, add -s -- --keep-compose to keep it.

One click from the panel

With Watchtower, the button under Updates in the panel installs the new version without you logging in to the server.

Turn on the watchtower service

In docker-compose.yml, uncomment the watchtower block:

  watchtower:
    image: nickfedor/watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${HOME}/.docker/config.json:/config.json:ro
    command: --http-api-update --label-enable --cleanup
    environment:
      WATCHTOWER_HTTP_API_TOKEN: ${WATCHTOWER_TOKEN}

It mounts the config.json from docker login so it can pull from the private registry. If you run Docker with sudo, the session lives in /root/.docker/config.json: use that path instead of ${HOME}/.docker/config.json.

Add the token to .env

A long password, which the panel will use to request the update:

openssl rand -hex 24
.env
WATCHTOWER_URL=http://watchtower:8080
WATCHTOWER_TOKEN=the-generated-password

Restart

docker compose up -d

Watchtower only updates containers that opt in with its label (KumoYami's does). If your license key changes, run docker login again.

Docker Desktop and credential stores

If your Docker keeps credentials in a system credential store (credsStore in config.json, the norm with Docker Desktop), Watchtower can't read them. That doesn't happen on a regular Linux server; anywhere else, update by hand.

When your update period ends

Your license includes the versions released until the end of its update period. After that, your site keeps running with every feature of your plan; you just stop getting new versions. Security fixes still reach you.

  • docker compose pull only downloads versions your license covers. To stay on a specific one, pin it in .env, for example KUMOYAMI_VERSION=1.4.2, and run docker compose up -d.
  • If you install a version released after your period, the panel locks itself and tells you which version to go back to. Go back with KUMOYAMI_VERSION, or renew your updates and click Renew now on the License page.

Going back to an earlier version

Add the version to .env (for example with sudo nano .env):

.env
KUMOYAMI_VERSION=1.4.2

Then recreate the container:

docker compose pull && docker compose up -d

To go back to the latest, remove the KUMOYAMI_VERSION line and run the same command.