UK Backup and Restore - KnevS/Tesla-Carview GitHub Wiki
Резервне копіювання та відновлення
🤖 Цей український переклад створений з AI-підтримкою з англійського оригіналу. Виправлення приймаються на GitHub.
🌐 Мова: EN · DE · FR · ES · TR · EL · UK
Ваші дані (поїздки, історія заряджання, журнал, налаштування) живуть у базах даних SQLite на вашому сервері. Регулярні резервні копії захищають від збоїв обладнання, випадкового видалення або міграції на новий сервер.
Що потрібно резервувати?
| Дані | Розташування | Розмір (типово) |
|---|---|---|
| Master-база даних | /app/data/master.db |
~1 МБ |
| Бази даних орендарів | /app/data/tenants/*.db |
~50 МБ на орендаря (3 роки) |
| Конфігурація середовища | /opt/tesla-carview/backend/.env |
Мізерно |
| SSL-сертифікат | /etc/letsencrypt/ |
Мізерно |
Docker-образи та код застосунку не потребують резервного копіювання — їх можна повторно завантажити з GitHub у будь-який момент.
Варіант 1: Резервне копіювання у застосунку (рекомендовано для більшості користувачів)
Tesla Carview має вбудовану функцію резервного копіювання:
- Перейдіть до Admin → Data → Backup
- Натисніть Download Backup
- Завантажується JSON-файл, що містить усі 25 таблиць бази даних
- Збережіть його в безпечному місці (зовнішній диск, хмарне сховище, інший пристрій)
Відновлення з резервної копії:
- Перейдіть до Admin → Data → Restore
- Завантажте JSON-файл резервної копії
- Введіть фразу підтвердження
RESTORE - Відновлення завершується за лічені секунди
- Перед відновленням автоматично створюється страхувальна копія поточних даних
Варіант 2: Скрипт автоматичного резервного копіювання
Для безконтрольних резервних копій створіть cron-завдання, що зберігає копію щодня:
# Створити каталог резервних копій
mkdir -p /opt/backups/tesla-carview
# Створити скрипт резервного копіювання
cat > /opt/backups/backup-tesla.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d-%H%M)
BACKUP_DIR="/opt/backups/tesla-carview"
DATA_DIR="/var/lib/docker/volumes/tesla_data/_data"
# Скопіювати бази даних
cp "$DATA_DIR/master.db" "$BACKUP_DIR/master-$DATE.db"
cp -r "$DATA_DIR/tenants" "$BACKUP_DIR/tenants-$DATE/"
cp "/opt/tesla-carview/backend/.env" "$BACKUP_DIR/env-$DATE.bak"
# Зберігати лише останні 14 днів
find "$BACKUP_DIR" -name "*.db" -mtime +14 -delete
find "$BACKUP_DIR" -name "*.bak" -mtime +14 -delete
find "$BACKUP_DIR" -type d -name "tenants-*" -mtime +14 -exec rm -rf {} +
echo "Backup done: $DATE"
EOF
chmod +x /opt/backups/backup-tesla.sh
# Додати до cron (запускається щодня о 02:00)
echo "0 2 * * * root /opt/backups/backup-tesla.sh >> /var/log/tesla-backup.log 2>&1" > /etc/cron.d/tesla-backup
Варіант 3: Резервне копіювання поза сайтом (рекомендовано для важливих даних)
Резервна копія на тому самому сервері не захищає від збою сервера. Копіюйте резервні копії поза сайт:
На віддалений SSH-сервер / NAS
# Додайте до вашого скрипту резервного копіювання:
rsync -az /opt/backups/tesla-carview/ user@nas-ip:/backups/tesla-carview/
На Hetzner Storage Box (дешево, ~1€/місяць за 100 ГБ)
# Додайте до вашого скрипту резервного копіювання:
rsync -az /opt/backups/tesla-carview/ your-storagebox.your-storagebox.de:/backups/
До хмарного провайдера (Backblaze B2, AWS S3)
# Встановити rclone (підтримує більшість хмарних провайдерів):
curl https://rclone.org/install.sh | sudo bash
rclone config # Інтерактивне налаштування вашого хмарного провайдера
# Додати до скрипту резервного копіювання:
rclone sync /opt/backups/tesla-carview/ backblaze:my-bucket/tesla-carview/
Міграція на новий сервер
При переході на новий сервер (оновлення обладнання, зміна VPS):
- На старому сервері: Завантажте повну резервну копію через Admin → Data → Backup
- На новому сервері: Запустіть скрипт налаштування:
curl -fsSL https://raw.githubusercontent.com/KnevS/Tesla-Carview/main/deploy/setup.sh | bash - Увійдіть у нову інсталяцію
- Перейдіть до Admin → Data → Restore → завантажте резервну копію
- Оновіть запис DNS, щоб він вказував на IP нового сервера
- Оновіть Redirect URI у Tesla Developer Portal, якщо ваш домен змінився
Нічне обслуговування (автоматично)
Tesla Carview виконує автоматичне завдання обслуговування щовечора о 03:30 (Берлінський часовий пояс):
- Видаляє прострочені токени та осиротілі записи
- Контрольна точка WAL (оптимізація SQLite)
- VACUUM — повертає дисковий простір, якщо база даних перевищує 50 МБ
- Якщо
AUTO_UPDATE_ENABLED=true: завантажує останній код і перезапускається
Ви можете запустити це вручну:
- Admin → System → Run Maintenance Now
Або переглянути журнал обслуговування:
- Admin → System → Maintenance Log
Найкращі практики резервного копіювання
- Правило 3-2-1: 3 копії, 2 різних типи сховища, 1 поза сайтом
- Тестуйте резервні копії, фактично відновивши одну (використовуйте функцію Admin → Restore test)
- Зберігайте резервну копію вашого
.envфайлу окремо та надійно (він містить облікові дані) - Робіть резервну копію перед будь-яким великим оновленням або зміною конфігурації