К содержимому
TolkTak
RU EN
Скачать
На этой странице

Обновления и резервные копии

Перед обновлением сохраните базу, загрузки и конфигурацию. Миграции выполняются автоматически при запуске новой версии; возврат к старой версии может потребовать восстановления из копии.

Обновление

Автоматически. В установке через Compose с сервисом updater сервер ставит релизы согласно TOLKTAK_UPDATES (по умолчанию manual, см. «Настройки»). Раз в час он проверяет новый релиз. В режиме manual администратор видит новую версию и кнопку «Обновить сейчас» в «Настройки → Сервер». В режиме auto сервер заранее скачивает образ и перезапускается, когда в голосе никого нет, и не позже чем через сутки после того, как увидел релиз; срочные релизы безопасности ставятся сразу. Подключённые пользователи видят, что сервер обновляется, и их приложения переподключаются сами. Обновляется только образ сервера, а релиз записывается в TOLKTAK_VERSION в .env; compose.yaml с LiveKit и остальными сервисами остаётся прежним, поэтому время от времени выполняйте обновление через Compose, описанное ниже. Обновление идёт только вперёд, поэтому храните резервные копии. Сервер, запущенный через docker run, сам не обновляется: в «Настройки → Сервер» администратор видит новый релиз и обновляет сервер командами ниже.

Прочитайте описание релиза.

docker run. Скачайте образ и запустите новый контейнер с теми же параметрами, как в установке через Docker:

docker pull d4enst/tolktak
docker rm -f tolktak
docker run -d --name tolktak --restart unless-stopped --network host -v tolktak-data:/data d4enst/tolktak

Установка через Compose. Из каталога с compose.yaml:

curl -fsSLO https://github.com/D4eNst/tolktak/releases/latest/download/compose.yaml
docker compose pull
docker compose up -d
docker compose ps

Новый compose.yaml приносит проверенные версии LiveKit и других сервисов и заменяет старый; ваши настройки остаются в .env и compose.override.yaml. При закреплённой версии сначала измените TOLKTAK_VERSION в .env.

Установка из исходников: порядок описан в отдельной инструкции.

Приложение следует за сервером: ставит его версию при запуске и предлагает перезапуск, пока открыто. См. «Приложение».

Резервные копии

Вариант Что сохранять
docker run Том tolktak-data: база SQLite tolktak.db, каталог files/ и ключи LiveKit
Compose .env; дамп базы с PostgreSQL; файлы в томах tolktak_garage-data и tolktak_garage-meta; том tolktak_data, если база в SQLite или файлы хранятся на диске
Установка из исходников /var/lib/tolktak и /etc/tolktak/.env

Храните копии отдельно от самого сервера. .env содержит секреты, поэтому доступ к нему должен быть ограничен. Список томов показывает docker volume ls.

Самая простая согласованная копия тома делается с короткой остановкой сервера. Для docker run:

docker stop tolktak
docker run --rm -v tolktak-data:/data -v "$PWD":/backup alpine \
  tar czf /backup/tolktak-data-$(date +%F).tar.gz -C /data .
docker start tolktak

В установке через Compose остановите сервисы командой docker compose stop tolktak garage, так же заархивируйте тома tolktak_garage-data и tolktak_garage-meta и выполните docker compose start. Если архивирование завершилось ошибкой, запустите сервер обратно и устраните причину: не продолжайте обновление без рабочей копии.

Для копии SQLite без остановки используйте online backup (sqlite3 tolktak.db ".backup backup.db") и скопируйте files/. Обычное копирование только файла работающей SQLite-базы может пропустить данные из WAL.

Восстановление

Остановите сервер. Распакуйте архивы в пустые тома, восстановите .env, а при PostgreSQL загрузите дамп. Затем запустите сервер. Проверьте восстановление на отдельном окружении до того, как копия понадобится для реального сбоя.

Журналы и состояние

docker logs -f tolktak                       # docker run
docker compose logs -f tolktak livekit       # Compose
curl http://127.0.0.1:8080/healthz

Исправный /healthz отвечает ok. Для systemd используйте journalctl -u tolktak -f. TOLKTAK_DEBUG=1 включает подробный журнал.

Переезд и сертификаты

На новой машине восстановите .env, базу и тома, затем переключите DNS. Сессии хранятся в базе: при прежнем адресе участники останутся авторизованы.

В установке через Compose сертификаты продлевает Caddy. В остальных случаях за продление отвечает ACME-клиент или прокси; после продления может требоваться перезагрузка прокси, см. HTTPS.

Переход с развёртывания 0.1

TolkTak 0.1 устанавливался из git-клона: deploy/init.sh, deploy/docker-compose.yml, .env, livekit.yaml и отдельный домен для LiveKit. Этой схемы больше нет; данные переносятся в установку через Compose теми же командами, что и с docker run.

  1. Сохраните старый deploy/.env и том deploy_tolktak-data, как описано выше.
  2. Подготовьте новый каталог установщиком по шагам 1–3 установки через Docker Compose с прежним доменом TolkTak. На предложение запустить сервер ответьте n. Домен LiveKit больше не нужен: LiveKit доступен через /rtc на том же домене.
  3. Остановите старые сервисы: docker compose -p deploy down. Команда работает из любого каталога, даже если git pull уже удалил старый docker-compose.yml. Том при этом сохранится.
  4. Перенесите данные, как в разделе «Переезд с docker run», указав deploy_tolktak-data вместо tolktak-data.
  5. Откройте порты 7881/TCP и 7882/UDP. Старые диапазоны 50000–60000/UDP, 3478/UDP и 30000–40000/UDP можно закрыть: все звонки теперь идут через порт 7882, а TURN выключен.

У сервера будут новые ключи LiveKit; новый адрес LiveKit приложение получает от сервера, менять в нём ничего не нужно. Если вместо Caddy остаётся свой nginx, замените его конфигурацию на пример с одним доменом и уберите caddy из COMPOSE_PROFILES.

Чтобы оставить SQLite и файлы на диске, выберите в установщике SQLite и диск сервера и до первого запуска скопируйте содержимое старого тома в tolktak_data:

docker volume create tolktak_data
docker run --rm -v deploy_tolktak-data:/from -v tolktak_data:/to alpine cp -a /from/. /to/

Исходник страницы