Can someone help an illiterate upgrade using docker/portainer?

Hello.
I’m a selfhosting enthusiast and I’ve been using vikunja for a while and I love it. I’m still surprised I managed to learn a bit of selfhosting as I’m not really educated when it comes to computers and linux.

Though, I’ve seen the recent changes to the compose file, and not being a native English speaker, I struggle wrapping my head around it.

Worse, I really fear loosing my data and not being able to restore it.

Here is my previous working docker-compose. What must I change to upgrade ?

version: '3.3'

services:
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: **********
      MYSQL_USER: vikunja
      MYSQL_PASSWORD:  **********
      MYSQL_DATABASE: vikunja
    volumes:
      - /srv/Files/Vikunja/Vikunjadb:/var/lib/mysql
    restart: unless-stopped
  api:
    image: vikunja/api  #should be vikunja/vikunja, That I understood
    environment:
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_PASSWORD: **********
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_SERVICE_FRONTENDURL: http://machineip:9990
      VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: 1
      VIKUNJA_MAILER_ENABLED: 1
      VIKUNJA_MAILER_FORCESSL: 1
      VIKUNJA_MAILER_HOST: ssl0.ovh.net
      VIKUNJA_MAILER_PORT: 465
      VIKUNJA_MAILER_USERNAME: email
      VIKUNJA_MAILER_FROMEMAIL: email
      VIKUNJA_MAILER_PASSWORD:  **********
      VIKUNJA_SERVICE_TIMEZONE: Europe/Paris
      VIKUNJA_SERVICE_ENABLEREGISTRATION: false
    ports:
      - 3456:3456
    volumes:
      - /srv/Files/Vikunja/files:/app/vikunja/files
    depends_on:
      - db
    restart: unless-stopped
  frontend:
    image: vikunja/frontend
    ports:
      - 9990:80
    environment:
      VIKUNJA_API_URL: http://machineip:3456/api/v1
    restart: unless-stopped

Any help would be greatly appreciated.
Thank you

Glad you’re learning something!

Quoting the release blog post:

  1. Replace the vikunja/api docker image with vikunja/vikunja.
  2. Remove the frontend docker container, migrating any config from it (see below).
  3. Set the new public URL config (see below).

Adding to this, for your specific setup, you need to modify the VIKUNJA_SERVICE_FRONTENDURL on your Vikunja container to VIKUNJA_SERVICE_PUBLICURL=http://machineip:3456.

The first step to this should be making a backup. Check out the docs about that: What to backup | Vikunja
Then, if anything goes wrong during the upgrade, you can just roll back.

(also don’t worry about your English skills, they are very much fine! Most of us here (me included) are not native English speakers)

1 Like

Thank you so much for your help and encouragement.

I think I was overthinking all this. It was very simple.

For anyone in my position, here is my docker-compose after modification:

version: '3.3'

services:
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: **********
      MYSQL_USER: vikunja
      MYSQL_PASSWORD:  **********
      MYSQL_DATABASE: vikunja
    volumes:
      - /srv/Files/Vikunja/Vikunjadb:/var/lib/mysql
    restart: unless-stopped
  vikunja:
    image: vikunja/vikunja
    environment:
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_PASSWORD: **********
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_SERVICE_PUBLICURL: http://machineip:3456
      VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: 1
      VIKUNJA_MAILER_ENABLED: 1
      VIKUNJA_MAILER_FORCESSL: 1
      VIKUNJA_MAILER_HOST: ssl0.ovh.net
      VIKUNJA_MAILER_PORT: 465
      VIKUNJA_MAILER_USERNAME: email
      VIKUNJA_MAILER_FROMEMAIL: email
      VIKUNJA_MAILER_PASSWORD:  **********
      VIKUNJA_SERVICE_TIMEZONE: Europe/Paris
      VIKUNJA_SERVICE_ENABLEREGISTRATION: false
    ports:
      - 3456:3456
    volumes:
      - /srv/Files/Vikunja/files:/app/vikunja/files
    depends_on:
      - db
    restart: unless-stopped

Thanks a lot for your help and your work :slight_smile:

1 Like

I use dockge for docker compose deployments. It has a handy upgrade button which automatically pulls the latest versions of all containers. Definitely recommended in general, not just for Vikunja.

I know a bit about docker but it’s not something I do every day, so any tool that makes it easier is very welcome.