Upgrading from v0.11.0 to v0.12.1 is fairly straightforward. This guide will walk you through the process of upgrading your Dittofeed instance.

Step 1: Setting Up Your docker-compose.lite.yaml File

First, add the environment variable BOOTSTRAP: "false" to your docker-compose.lite.yaml file, if it isn’t set already. This will prevent your lite instance from running bootstrap operations when it restarts.

Next, make sure you have an admin-cli instance specified in our docker-compose.lite.yaml file. We’ll be using this service to run our migrations.

Your docker-compose.lite.yaml file should look something like this:

...
services:
  lite:
    image: dittofeed/dittofeed-lite:${IMAGE_TAG:-v0.11.0}
    restart: always
    ports:
      - "3000:3000"
    depends_on:
      - postgres
      - temporal
      - clickhouse-server
    environment:
      <<: *backend-app-env
      # uncomment while upgrading dittofeed
      BOOTSTRAP: "false"
    env_file:
      - .env
    networks:
      - dittofeed-network-lite
  # useful for upgrading dittofeed
  admin-cli:
    image: dittofeed/dittofeed-lite:${IMAGE_TAG:-v0.12.1}
    entrypoint: []
    profiles: ["admin-cli"]
    command: tail -f /dev/null
    tty: true
    depends_on:
      - postgres
      - temporal
      - clickhouse-server
    environment:
      <<: *backend-app-env
    env_file:
      - .env
    networks:
      - dittofeed-network-lite
...

Step 2: Start the admin-cli Service

Next, run the following command to start your admin-cli service:

docker compose --profile admin-cli -f docker-compose.lite.yaml up admin-cli -d

Step 3: Run the Upgrade Script

Run the upgrade script before deploying the new version of Dittofeed:

./scripts/admin-lite.sh upgrade-0-12-1-pre

Step 4: Upgrade Your docker-compose.lite.yaml File

Upgrade the version in your docker-compose.lite.yaml file to v0.12.1:

...
services:
  lite:
    image: dittofeed/dittofeed-lite:${IMAGE_TAG:-v0.12.1}
...

Now restart your lite instance:

docker compose -f docker-compose.lite.yaml up lite -d --force-recreate

Step 5: Stop the admin-cli Service

Finally, stop the admin-cli service:

docker compose --profile admin-cli -f docker-compose.lite.yaml stop admin-cli