Коротка відповідь
Як налаштувати сервер резервного копіювання Borg на VPS?
Щоб налаштувати сервер резервного копіювання Borg на VPS, встановіть Borg 1.x на обидва боки, створіть користувача borg і примусово задайте borg serve --restrict-to-path --append-only для кожного ключа клієнта. Ініціалізуйте кожен репозиторій командою repokey; prune і compact виконуйте з окремого адмінського ключа. Coffervale VPS на 1 TB коштує $1.66 на місяць за 12 місяців (2 November 2026).
Які кроки, по порядку?
Встановіть однаковий Borg 1.x на сервері та клієнтах
apt install borgbackupна Debian або Ubuntu, потім порівняйтеborg --versionна обох боках.Створіть користувача borg і теку для репозиторію
Один непривілейований акаунт на VPS володіє всіма репозиторіями; клієнти ніколи не отримують shell.
Примусово задайте borg serve в authorized_keys
Один рядок на ключ клієнта, кожен обмежений власним шляхом через
--restrict-to-pathі--append-only.Ініціалізуйте репозиторій з repokey
Виконайте
borg init --encryption=repokeyз клієнта, потім експортуйте ключ і збережіть його подалі від обох машин.Заплануйте borg create на клієнті
Щодня через cron або systemd timer, парольну фразу зчитує
BORG_PASSCOMMAND.Виконуйте prune і compact з адмінського ключа
Другий ключ без
--append-only, який використовується з довіреної машини після перевірки списку архівів.Перевіряйте репозиторій і тестуйте відновлення
borg checkщотижня,--verify-dataщомісяця і справжнєborg extractкожні кілька місяців.
Яку версію Borg має запускати сервер?
Запускайте Borg 1.x з обох боків: 1.4.5 був останнім стабільним випуском на 2 листопада 2026 року, а Borg 2 досі в бета-версії. Сторінка Borg 2.0 називає його випуском із порушенням сумісності, який не є прямо сумісним із репозиторіями Borg 1.x, і перейменовує borg init на borg repo-create. На Debian 13 пакет для встановлення — borgbackup (1.4.0 у trixie); окремий пакет borgbackup2 — це бета-версія 2.0. Встановіть той самий випуск на сервер і на кожен клієнт.
apt install borgbackup
borg --version
useradd --create-home --home-dir /srv/borg --shell /bin/sh borg
install -d -m 700 -o borg -g borg /srv/borg/.ssh /srv/borg/repos
install -d -m 700 -o borg -g borg /srv/borg/repos/laptop /srv/borg/repos/web1Як прив'язати кожен клієнт до його власного репозиторію?
Поставте примусову команду borg serve перед кожним ключем у /srv/borg/.ssh/authorized_keys, щоб ключ міг запускати Borg і нічого більше. Ключове слово restrict блокує переадресацію портів, переадресацію агента та термінали, а документація Borg зазначає, що воно також охоплює функції SSH, додані в майбутніх випусках. Приклади припускають POSIX shell як login shell облікового запису, тому користувач вище отримує /bin/sh.
--restrict-to-path PATHдозволяє цей шлях і кожну теку під ним, тож один клієнт може мати кілька репозиторіїв.--restrict-to-repository PATHсуворіший: рівно один репозиторій, без підтек.--append-onlyдозволяє ключу додавати архіви, але не видаляти дані з репозиторію.--storage-quota 500Gобмежує, скільки може зберігати один ключ, тож клієнт, що вийшов з-під контролю, не заповнить диск.
Кожен рядок залишається одним рядком у файлі; адмінський ключ у кінці не має --append-only і використовується лише для pruning.
command="borg serve --restrict-to-path /srv/borg/repos/laptop --append-only",restrict ssh-ed25519 AAAA...laptop-key... laptop
command="borg serve --restrict-to-path /srv/borg/repos/web1 --append-only --storage-quota 500G",restrict ssh-ed25519 AAAA...web1-key... web1
command="borg serve --restrict-to-path /srv/borg/repos",restrict ssh-ed25519 AAAA...admin-key... adminchown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keysЯк створити репозиторій із шифруванням repokey?
Запустіть borg init --encryption=repokey з клієнта, потім експортуйте ключ і зберігайте його поза і VPS, і машиною, яку ви бекапите. Документація Borg рекомендує repokey із надійною парольною фразою як правило; repokey-blake2 — той самий режим із хешем BLAKE2b, імовірно швидший на процесорах без апаратного прискорення SHA-256. З repokey ключ лежить у файлі config репозиторію, запечатаний вашою парольною фразою. Втратьте парольну фразу — і бекапи стануть нечитабельними і для вас, і для всіх інших. Borg також каже, що треба зберігати позасайтову копію ключа, наприклад на папері.
ssh-keygen -t ed25519 -N '' -C 'borg laptop' -f ~/.ssh/borg_ed25519
cat >> ~/.ssh/config <<'EOF'
Host coffer-borg
HostName 203.0.113.10
User borg
IdentityFile ~/.ssh/borg_ed25519
IdentitiesOnly yes
EOF
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/laptop/main
borg init --encryption=repokey
borg key export --paper "$BORG_REPO" ~/borg-laptop-key.txt#!/bin/sh
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
# the passphrase file belongs to root, mode 600
export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase'
borg create --stats --compression zstd,3 \
::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
/etc /home /var/wwwЯк виконати prune і compact для репозиторію в режимі append-only?
Із довіреної адмінської машини, ключем без --append-only, після перевірки, що жоден архів не зник. У режимі append-only, як пояснюють нотатки Borg, prune і delete все ще виконуються, але лише позначають дані як видалені в новій транзакції, а compact ніколи не відбувається, без попередження і без помилки. Місце в репозиторії не звільняється, доки не запуститься borg compact із ключа, якому дозволено перезаписувати.
Ті самі нотатки містять підступ: перший запис у звичайному режимі робить кожне попереднє видалення остаточним, включно з тим, яке зловмисник зробив через клієнтський ключ. Тож спершу перелічіть архіви. Якщо якихось бракує, зупиніться і виконайте кроки відновлення з нотаток Borg про append-only, перш ніж щось prune-ити. Cron-завдання, що автоматично виконує prune з необмеженим ключем, робить append-only безглуздим. Документація Borg також рекомендує --dry-run з --list перед кожним справжнім prune.
export BORG_REPO=ssh://coffer-admin/srv/borg/repos/web1/main
borg list
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg compactЯк перевірити репозиторій і довести, що відновлення працює?
Запускайте borg check щотижня, borg check --verify-data щомісяця, і кожні кілька місяців видобувайте реальні файли на іншу машину. Звичайна перевірка перевіряє репозиторій і метадані архіву. --verify-data читає, розшифровує і розпаковує кожен чанк, що Borg називає дуже тривалим, і на жорстких дисках це справді так. Для великого репозиторію --repository-only --max-duration 3600 розбиває перевірку репозиторію на годинні частини, які продовжуються з місця зупинки. Ніщо з цього не замінює справжнього відновлення: бекап хороший настільки, наскільки добрим був останній раз, коли ви дістали з нього дані.
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
borg check -v
borg check -v --verify-data
borg check -v --repository-only --max-duration 3600
mkdir -p /tmp/restore-test && cd /tmp/restore-test
borg list
borg extract --list ::web1-2026-11-02T03:00 etc/nginxСкільки коштує Borg-ціль порівняно з хостинговим Borg-сховищем?
За оглядом Coffervale від 2 листопада 2026 року, хостингове Borg-сховище коштувало $9.17 за TB на місяць у BorgBase (тариф Medium на 1 TB, $110.00 на рік) і $15.00 за TB у rsync.net, тоді як тарифи Storage VPS від хостів, що приймають криптовалюту без документа, що посвідчує особу, мали медіану $4.00 за TB. Хостингові сервіси запускають сервер за вас; Storage VPS дає вам root і налаштування вище — вибір, зважений у Чи є Storage VPS дешевшою альтернативою rsync.net або BorgBase?. Ми не робимо бекапів вашого сервера й не зберігаємо копію ваших даних деінде, тож те, що лежить на storage VPS у Coffervale, має бути однією з ваших копій, але ніколи не єдиною, тож Borg-сервер — це одна копія серед кількох, як пояснює Як використовувати VPS для позасайтових бекапів?. Тариф на 1 TB детально описано в Де взяти VPS із 1 TB сховища?, а якщо ви віддаєте перевагу restic, читайте Restic: REST-сервер чи SFTP для бекапів на VPS?. Щоб зашифрувати ще й диск VPS, дивіться Як змонтувати і відформатувати диск сховища на Linux VPS?.
Borg-цілі за TB на місяць, 2 листопада 2026 року
| Borg-ціль | За TB на місяць | Що ви запускаєте самі | Оплата в криптовалюті |
|---|---|---|---|
| BorgBase Medium, 1 TB | $9.17 ($110.00 на рік) | Нічого: хостингові репозиторії Borg і restic | Не вказано |
| rsync.net, тариф від 0 до 9 TB | $15.00 | Нічого: сховище ZFS, доступне через SSH | Не вказано |
| Storage VPS, медіана 99 тарифів | $4.00 | Borg-сервер, налаштований на цій сторінці | Так: хости, що приймають криптовалюту без документа, що посвідчує особу |
| Coffervale Clay, 1 TB | $1.66 на 12 місяців | Borg-сервер, налаштований на цій сторінці | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
Ціни перевірено
Ціни, як прочитано на власній сторінці кожного сервісу 2 листопада 2026 року. BorgBase виставляє рахунок за тарифом Medium щороку і вказує ціни без VAT; медіана Storage VPS охоплює тарифи від 500 GB, у наявності й з місячною оплатою.
Запитання про Borg-сервер бекапів
Чи потрібна клієнту і серверу однакова версія Borg?
Тримайте обидва на Borg 1.x, бажано на однаковому випуску. Borg 2 досі в бета-версії, використовує новий формат репозиторію і не може відкривати репозиторії 1.x напряму. На Debian 13 встановлюйте borgbackup, а не borgbackup2.
Використовувати --restrict-to-path чи --restrict-to-repository?
--restrict-to-path дозволяє теку і все під нею — зручно, коли один клієнт тримає кілька репозиторіїв. --restrict-to-repository дозволяє рівно один репозиторій і без підтек — суворіший вибір, коли в кожного клієнта один репозиторій.
Чому мій репозиторій не зменшується після borg prune?
Prune лише позначає архіви як видалені; місце звільняє borg compact. Через append-only ключ compact взагалі не запускається, тож prune і compact робіть з адмінського ключа.
Чи може один Storage VPS тримати Borg-репозиторії для кількох машин?
Так. Кожній машині — окремий рядок ключа в authorized_keys, власний шлях і, якщо диск спільний, власний --storage-quota. Тоді один скомпрометований клієнт дістанеться лише одного репозиторію.
Що буде, якщо я втрачу парольну фразу Borg?
Репозиторій стане нечитабельним назавжди. Borg не зможе його відновити, і хост теж. Тримайте парольну фразу в менеджері паролів, а експортований ключ — на папері, окремо від VPS і клієнта.
Джерела (13)
- Документація Borg 1.4.5: Hosting repositories — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: borg serve (restrict options, append-only, storage quota) — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: borg init (режими шифрування, резервна копія ключа) — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: borg prune — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: borg compact — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: borg check — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: Additional notes, append-only mode — BorgBackup project (read 2026-11-02)
- Документація Borg 1.4.5: Quick start (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0 (попередня інформація) — BorgBackup project (read 2026-11-02)
- Релізи BorgBackup (1.4.5 — останній, 2.0.0b25 — попередній випуск) — BorgBackup project on GitHub (read 2026-11-02)
- Пакети Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- Плани та ціни borgbase.com — BorgBase (read 2026-11-02)
- Ціни на хмарне сховище rsync.net/pricing.html — rsync.net (read 2026-11-02)