Настраиваем репликацию litestream для SQLite

Настраиваем репликацию litestream для SQLite

Mikhail Efanov

В интернете особо не нашёл нормального описания, как завести litestream с docker-compose. Если вам нужно будет настроить, то вот небольшой гайд.

Докидываем секцию litestream в сервисы в docker-compose.yaml

litestream:
  image: litestream/litestream:latest
  container_name: litestream
  restart: unless-stopped
  command: ["replicate", "-config", "/etc/litestream.yml"]
  volumes:
    - ./data:/data
    - ./litestream.yml:/etc/litestream.yml
  environment:
    - LITESTREAM_ACCESS_KEY_ID=${LITESTREAM_ACCESS_KEY_ID}
    - LITESTREAM_SECRET_ACCESS_KEY=${LITESTREAM_SECRET_ACCESS_KEY}
    - LITESTREAM_ENDPOINT=${LITESTREAM_ENDPOINT}
    - LITESTREAM_REGION=${LITESTREAM_REGION}
    - LITE_STREAM_REPLICATE_NAME=${LITE_STREAM_REPLICATE_NAME}

Добавляем конфиг litestream.yml

# Настройки репликации
dbs:
  - path: /data/data.db
    replicas:
      - url: s3://{YOUR_BUCKET}/${LITE_STREAM_REPLICATE_NAME}
        access-key-id: ${LITESTREAM_ACCESS_KEY_ID}
        secret-access-key: ${LITESTREAM_SECRET_ACCESS_KEY}
        endpoint: ${LITESTREAM_ENDPOINT}
        region: ${LITESTREAM_REGION}
        s3-force-path-style: true

# Настройки логирования
log:
  level: info
  format: json

# Настройки производительности
sync-interval: 1s
retention: 24h
retention-check-interval: 1h

Добавляем .env

LITESTREAM_ACCESS_KEY_ID=<access-key>
LITESTREAM_SECRET_ACCESS_KEY=<secret-access-key>
LITESTREAM_ENDPOINT=https://storage.yandexcloud.net
LITESTREAM_REGION=ru-central1
LITE_STREAM_REPLICATE_NAME=<folder-name>

Теперь можно наблюдать за логами в контейнере litestream и смотреть в бакете, что всё появилось. Крайне желательно проверить, что можно откатиться на предыдущую версию бд используя доку litestream.


Report Page