Оновлення й резервні копії
Усе на цій сторінці виконується з каталогу встановлення (типово ~/railhook) допоміжним скриптом railhook, який записав інсталятор.
Оновлення
Section titled “Оновлення”cd ~/railhook./railhook upgrade v2.16.6 # pin a release; with no version it keeps the tags already in .envupgrade робить таке, по черзі:
- Завантажує допоміжний скрипт і Caddyfile для цільового релізу.
- Закріплює
API_IMAGE_TAG,WORKER_IMAGE_TAGіUI_IMAGE_TAGу.env. - Робить резервну копію бази даних і зупиняється, якщо не вдалося.
- Замінює
docker-compose.ymlкопією з релізу, а ваш зберігає якdocker-compose.yml.previous. - Завантажує образи, перезапускає всі сервіси, крім API, а потім замінює контейнери API по одному.
З одним контейнером API клієнти бачать близько двадцяти секунд 502, поки запускається новий. Задайте API_REPLICAS=2 у .env, і оновлення пройде без перерви.
Відкат
Section titled “Відкат”Відкат повертає образи, а не схему бази даних. Міграції виконуються лише вперед.
sed -i 's|^API_IMAGE_TAG=.*|API_IMAGE_TAG=2.16.5|' .env # and WORKER_IMAGE_TAG, UI_IMAGE_TAG./railhook startЯкщо проблема в коді, досить відкотити образи. Якщо в міграції — відновіть резервну копію, яку зробило оновлення.
Перевірка встановлення
Section titled “Перевірка встановлення”./railhook doctorКоманда повторно запускає перевірки машини й конфігурації з інсталятора на файлах із диска. Вона ловить помилку у вручну відредагованому .env раніше, ніж та перетвориться на збій.
Резервна копія
Section titled “Резервна копія”./railhook backupКоманда записує backup-<timestamp>.dump (власний формат PostgreSQL) у каталог встановлення.
Встановлення, зроблені інсталятором, також роблять дамп за розкладом через сервіс db-backup:
| Змінна | Типово | Значення |
|---|---|---|
DB_BACKUP_INTERVAL_SECONDS |
86400 |
Як часто робиться дамп |
BACKUP_RETENTION_DAYS |
30 |
Скільки зберігаються дампи |
BACKUP_DIR |
./backups |
Куди вони записуються |
Відновлення
Section titled “Відновлення”-
Зупиніть API й воркер
Terminal window cd ~/railhookset -a; . ./.env; set +adocker compose stop api worker -
Відновіть дамп
Terminal window docker cp backup-20260913T020000Z.dump webhook-postgres:/tmp/restore.dumpdocker exec webhook-postgres pg_restore \-U "${POSTGRES_USER:-webhook_user}" -d "${POSTGRES_DB:-webhook_platform}" \--clean --if-exists --no-owner --no-privileges /tmp/restore.dumpdocker exec webhook-postgres rm -f /tmp/restore.dump -
Очистіть Redis
Усе в Redis — похідні дані, які відбудовуються самі. Застарілий кеш гірший за порожній.
Terminal window docker exec webhook-redis redis-cli -a "$REDIS_PASSWORD" FLUSHALL -
Запустіть стек
Terminal window ./railhook start
Після відновлення не чіпайте Kafka. Повідомлення для відкочених доставок відхиляються й відкидаються, тож у журналі воркера з’явиться їхня серія. Доставки, які після відновлення лишилися в очікуванні, підхоплюються знову приблизно за годину. Події, прийняті після створення дампу, втрачено.