# Як налаштувати сервер резервного копіювання Borg на Storage VPS?

> Налаштуйте Borg на VPS: користувач borg, borg serve --append-only в authorized_keys, repokey, prune і compact; 1 TB $1.66, крипта, без ID.

- URL: https://coffervale.com/uk/borg-backup-server-on-a-vps/
- Останнє оновлення: 2026-11-02
- Видавець: Coffervale (https://coffervale.com)

Сервер Borg — це не більше ніж SSH-акаунт, якому дозволено виконати одну команду. Обмежте цю команду для кожного ключа, тримайте клієнтів у режимі append-only і виконуйте prune звідти, куди атакувальник не дістанеться.

**Коротка відповідь — Як налаштувати сервер резервного копіювання 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).

## Які кроки, по порядку?

1. **Встановіть однаковий Borg 1.x на сервері та клієнтах** — apt install borgbackup на Debian або Ubuntu, потім порівняйте borg --version на обох боках.
2. **Створіть користувача borg і теку для репозиторію** — Один непривілейований акаунт на VPS володіє всіма репозиторіями; клієнти ніколи не отримують shell.
3. **Примусово задайте borg serve в authorized_keys** — Один рядок на ключ клієнта, кожен обмежений власним шляхом через --restrict-to-path і --append-only.
4. **Ініціалізуйте репозиторій з repokey** — Виконайте borg init --encryption=repokey з клієнта, потім експортуйте ключ і збережіть його подалі від обох машин.
5. **Заплануйте borg create на клієнті** — Щодня через cron або systemd timer, парольну фразу зчитує BORG_PASSCOMMAND.
6. **Виконуйте prune і compact з адмінського ключа** — Другий ключ без --append-only, який використовується з довіреної машини після перевірки списку архівів.
7. **Перевіряйте репозиторій і тестуйте відновлення** — 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. Встановіть той самий випуск на сервер і на кожен клієнт.

*На storage VPS, від імені root: Borg, користувач borg, тека для кожного клієнта*

```bash
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.

*/srv/borg/.ssh/authorized_keys (owner borg, mode 600)*

```text
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... admin
```

*Виправте власника після редагування, від імені root*

```bash
chown 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 також каже, що треба зберігати позасайтову копію ключа, наприклад на папері.

*На клієнті (тут: ноутбук)*

```bash
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
```

*/usr/local/sbin/borg-backup on a server client, run daily as root*

```bash
#!/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.

*На адмінській машині, Host coffer-admin з адмінським ключем*

```bash
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` розбиває перевірку репозиторію на годинні частини, які продовжуються з місця зупинки. Ніщо з цього не замінює справжнього відновлення: бекап хороший настільки, наскільки добрим був останній раз, коли ви дістали з нього дані.

*Перевірки і тестове відновлення, з клієнта*

```bash
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?](https://coffervale.com/uk/rsync-net-alternative/ "Storage VPS against hosted Borg storage"). Ми не робимо бекапів вашого сервера й не зберігаємо копію ваших даних деінде, тож те, що лежить на storage VPS у Coffervale, має бути однією з ваших копій, але ніколи не єдиною, тож Borg-сервер — це одна копія серед кількох, як пояснює [Як використовувати VPS для позасайтових бекапів?](https://coffervale.com/uk/backup-vps/ "Off-site backups and 3-2-1 with a storage VPS"). Тариф на 1 TB детально описано в [Де взяти VPS із 1 TB сховища?](https://coffervale.com/uk/1tb-vps/ "1 TB storage VPS"), а якщо ви віддаєте перевагу restic, читайте [Restic: REST-сервер чи SFTP для бекапів на VPS?](https://coffervale.com/uk/restic-rest-server-vs-sftp/ "restic on a storage VPS"). Щоб зашифрувати ще й диск VPS, дивіться [Як змонтувати і відформатувати диск сховища на Linux VPS?](https://coffervale.com/uk/mount-storage-disk-on-a-vps/ "Mount and encrypt the data disk").

### 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 р..*

Ціни, як прочитано на власній сторінці кожного сервісу 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 і клієнта.

## Джерела

1. [Документація Borg 1.4.5: Hosting repositories](https://borgbackup.readthedocs.io/en/stable/deployment/hosting-repositories.html) — BorgBackup project (read 2026-11-02)
2. [Документація Borg 1.4.5: borg serve (restrict options, append-only, storage quota)](https://borgbackup.readthedocs.io/en/stable/usage/serve.html) — BorgBackup project (read 2026-11-02)
3. [Документація Borg 1.4.5: borg init (режими шифрування, резервна копія ключа)](https://borgbackup.readthedocs.io/en/stable/usage/init.html) — BorgBackup project (read 2026-11-02)
4. [Документація Borg 1.4.5: borg prune](https://borgbackup.readthedocs.io/en/stable/usage/prune.html) — BorgBackup project (read 2026-11-02)
5. [Документація Borg 1.4.5: borg compact](https://borgbackup.readthedocs.io/en/stable/usage/compact.html) — BorgBackup project (read 2026-11-02)
6. [Документація Borg 1.4.5: borg check](https://borgbackup.readthedocs.io/en/stable/usage/check.html) — BorgBackup project (read 2026-11-02)
7. [Документація Borg 1.4.5: Additional notes, append-only mode](https://borgbackup.readthedocs.io/en/stable/usage/notes.html) — BorgBackup project (read 2026-11-02)
8. [Документація Borg 1.4.5: Quick start (BORG_PASSCOMMAND)](https://borgbackup.readthedocs.io/en/stable/quickstart.html) — BorgBackup project (read 2026-11-02)
9. [Borg 2.0 (попередня інформація)](https://www.borgbackup.org/releases/borg-2.0.html) — BorgBackup project (read 2026-11-02)
10. [Релізи BorgBackup (1.4.5 — останній, 2.0.0b25 — попередній випуск)](https://github.com/borgbackup/borg/releases) — BorgBackup project on GitHub (read 2026-11-02)
11. [Пакети Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19](https://packages.debian.org/search?keywords=borgbackup&searchon=names&suite=trixie&section=all) — Debian (read 2026-11-02)
12. [Плани та ціни](https://www.borgbase.com/) — BorgBase (read 2026-11-02)
13. [Ціни на хмарне сховище](https://www.rsync.net/pricing.html) — rsync.net (read 2026-11-02)

---

Coffervale: Coffervale продає storage VPS у Європі: KVM-сервери з HDD-сховищем від 500 GB до 8 TB для позамайданчикових бекапів, Nextcloud, Seafile, Syncthing та архівів, оплата в крипті без ID під час реєстрації. Сервери працюють в Амстердамі, Бухаресті та Кишиневі, а оператор — DomaineGoat LLC, компанія, зареєстрована в Панамі. На 12-місячному терміні кожен тариф коштує щонайменше на 25% на місяць дешевше за названий порівнюваний storage VPS, обраний із 10 no-KYC крипто-хостингів, чиї ціни були зчитані 2 листопада 2026 року.
