Duplicati для серверів: шифрування, моніторинг, автоматизація
DevOps-інженер стикається із завданням: налаштувати резервне копіювання для 20 серверів з різними ОС, хмарними сховищами та вимогами retention. Duplicati вирішує це за пів дня: веб-інтерфейс, шифрування AES-256, 20+ бекендів — і жодного ручного скриптінгу. Вже за годину після встановлення ви бачите перший бекап у хмарі, а моніторинг надсилає сповіщення до Slack.
Як Duplicati вирішує проблему втрати даних?
Втрата даних через збій диска або випадкове видалення. Duplicati виконує інкрементальні бекапи з версіонуванням: можна відкотитися до будь-якої точки за останні 90 днів. Шифрування AES-256 та передача по TLS захищають дані в хмарі. В одному проєкті ми відновили базу PostgreSQL після rm -rf: бекап був на Backblaze B2, restore зайняв 40 хвилин.
Складність налаштування розкладів і сповіщень. Вбудований планувальник та інтеграція з Healthchecks.io, Slack, email дозволяють забути про ручний контроль. Ми налаштовуємо алерти на будь-який збій: пропущений бекап, битий індекс, помилку сховища. За рік — 0 втрат даних на 15 серверах.
Як налаштувати бекап сервера за 5 кроків?
- Встановіть Duplicati як сервіс (systemd).
- Відкрийте веб-інтерфейс на localhost:8200, задайте пароль.
- Створіть завдання: виберіть бекенд (S3, B2, SFTP), вкажіть шляхи для бекапу.
- Налаштуйте шифрування: AES-256 з майстер-паролем.
- Встановіть retention-політику та відправку сповіщень.
# Встановлення на Debian/Ubuntu
wget https://github.com/duplicati/duplicati/releases/download/v2.0.8.1/duplicati_2.0.8.1-1_all.deb
apt-get install ./duplicati_2.0.8.1-1_all.deb
systemctl enable --now duplicatiВеб-інтерфейс доступний на http://localhost:8200. Для продакшн-сервера обов'язково налаштуйте авторизацію та прив'яжіть до localhost — публічний доступ до веб-інтерфейсу Duplicati без пароля означає доступ до даних бекапу.
Чому Duplicati, а не скрипти на cron?
Самописні скрипти вимагають ручної обробки помилок, версіонування та сповіщень. Duplicati надає все з коробки: шифрування, дедуплікацію, моніторинг. Ви економите час на розробці та підтримці — достатньо налаштувати завдання через GUI або CLI.
Як автоматизувати налаштування через CLI?
Для серверів без X11 або в автоматизованих деплоях використовуйте CLI. Приклад створення завдання з шифруванням та retention:
duplicati-cli backup \
"s3://my-duplicati-backups/server1?aws-access-key-id=AKIA...&aws-secret-access-key=secret&aws-region=eu-central-1" \
/etc /home /var/www \
--encryption-module=aes \
--aes-encryption-key=my-strong-passphrase \
--compression-module=zip \
--retention-policy="7D:1D,4W:1W,12M:1M" \
--exclude-files-attributes=temporary,system \
--exclude="/var/www/*/node_modules"--retention-policy="7D:1D,4W:1W,12M:1M" — зберігати щоденні за 7 днів, щотижневі за 4 тижні, щомісячні за 12 місяців. Синтаксис: період:інтервал.
Моніторинг та алерти
Duplicati вміє надсилати email-сповіщення про результати. У налаштуваннях завдання (GUI) вкажіть параметри SMTP. Для інтеграції з Healthchecks.io додайте скрипт в --run-script-after:
#!/bin/bash
# ping-healthchecks.sh
if [ "$DUPLICATI__PARSED_RESULT" = "Success" ]; then
curl -fsS -m 10 https://hc-ping.com/YOUR-UUID
else
curl -fsS -m 10 "https://hc-ping.com/YOUR-UUID/fail"
fiМи використовуємо такий підхід на 30+ серверах — алерти приходять до Slack за 30 секунд після збою.
| Критерій | Duplicati | Restic/Borg |
|---|---|---|
| Веб-інтерфейс | Так | Ні |
| Шифрування | AES-256 (вбудовано) | AES-256 (вбудовано) |
| Дедуплікація | В межах завдання | В межах репозиторію |
| Швидкість для дрібних файлів | Середня | Висока |
| Підтримка хмарних бекендів | 20+ | 5-7 |
Які обмеження у Duplicati і коли варто обрати Restic?
Duplicati зберігає індекс бекапу локально в SQLite. При великій кількості версій (>100) та мільйонах файлів база даних сповільнюється. Для серверів з сотнями тисяч дрібних файлів краще розглянути Restic або Borg — вони працюють помітно швидше через ефективніше зберігання метаданих. Також Duplicati не підтримує дедуплікацію між різними завданнями, на відміну від Restic і Borg, які дедуплікують в межах одного репозиторію. Якщо у вас 10 однотипних серверів — розгляньте Borg.
Приклад retention-політик для різних сценаріїв
| Сценарій | Retention |
|---|---|
| Веб-сервер (логи + контент) | 7D:1D, 4W:1W, 6M:1M |
| База даних (дампи) | 30D:1D, 12M:1M |
| Файловий сервер (документи) | 90D:1D, 24M:1M |
Що входить у роботу
- Аудит поточної схеми бекапів та доопрацювання retention.
- Налаштування Duplicati (або міграція з іншого рішення) з шифруванням та моніторингом.
- Документування процедур відновлення (runbook).
- Інтеграція з системою алертів (Healthchecks, Slack, email).
- Передача доступу та навчання інженерів.
- Тестовий restore в рамках проєкту.
Терміни та вартість
Термін налаштування: 0.5–2 дні в залежності від кількості серверів та складності. Вартість розраховується індивідуально — зв'яжіться для оцінки.
Наші інженери мають 10+ років досвіду в резервному копіюванні та сертифікації AWS, Kubernetes. 5 років на ринку, понад 50 виконаних проєктів з бекапування. Замовте аудит вашої схеми бекапів — отримайте консультацію. Зв'яжіться з нами для індивідуальної оцінки — ми підберемо оптимальне рішення.







