Настраиваем репликацию 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.