# Jak skonfigurować serwer kopii zapasowych Borg na VPS do przechowywania danych?

> Jak skonfigurować serwer kopii zapasowych Borg na VPS: użytkownik borg, borg serve --append-only w authorized_keys, repokey, prune i compact; 1 TB $1.66 | 1 TB.

- URL: https://coffervale.com/pl/borg-backup-server-on-a-vps/
- Ostatnia aktualizacja: 2026-11-02
- Wydawca: Coffervale (https://coffervale.com)

Serwer Borg to nic więcej niż konto SSH, które może uruchomić jedno polecenie. Ogranicz to polecenie dla każdego klucza, utrzymuj klientów w trybie append-only i wykonuj prune z miejsca, do którego atakujący nie dotrze.

**Krótka odpowiedź — Jak skonfigurować serwer kopii zapasowych Borg na VPS?**

Aby skonfigurować serwer kopii zapasowych Borg na VPS, zainstaluj Borg 1.x po obu stronach, utwórz użytkownika `borg` i wymuś `borg serve --restrict-to-path --append-only` na każdym kluczu klienta. Zainicjuj każde repozytorium za pomocą `repokey`; wykonuj prune i compact z osobnego klucza administratora. **Coffervale** VPS 1 TB kosztuje $1.66 miesięcznie przy 12 miesiącach (2 November 2026).

## Jakie są kroki, po kolei?

1. **Zainstaluj ten sam Borg 1.x na serwerze i klientach** — apt install borgbackup na Debian lub Ubuntu, następnie porównaj borg --version po obu stronach.
2. **Utwórz użytkownika borg i folder repozytorium** — Jedno konto bez uprawnień na VPS jest właścicielem wszystkich repozytoriów; klienci nigdy nie dostają shella.
3. **Wymuś borg serve w authorized_keys** — Jedna linia na klucz klienta, każda ograniczona do własnej ścieżki przez --restrict-to-path i --append-only.
4. **Zainicjuj repozytorium za pomocą repokey** — Uruchom borg init --encryption=repokey z klienta, następnie wyeksportuj klucz i przechowuj go z dala od obu maszyn.
5. **Zaplanuj borg create na kliencie** — Codziennie z cron lub timera systemd, z hasłem odczytywanym przez BORG_PASSCOMMAND.
6. **Wykonuj prune i compact z klucza administratora** — Drugi klucz bez --append-only, używany z zaufanej maszyny po sprawdzeniu listy archiwów.
7. **Sprawdź repozytorium i przetestuj przywracanie** — borg check co tydzień, --verify-data co miesiąc i prawdziwe borg extract co kilka miesięcy.

## Jaką wersję Borg powinien uruchamiać serwer?

**Uruchom Borg 1.x na obu stronach: 1.4.5 było najnowszym stabilnym wydaniem 2 listopada 2026, a Borg 2 jest wciąż w wersji beta.** Strona Borg 2.0 nazywa go wydaniem łamiącym zgodność, które nie jest bezpośrednio kompatybilne z repozytoriami Borg 1.x, i zmienia nazwę `borg init` na `borg repo-create`. W Debianie 13 pakiet do zainstalowania to `borgbackup` (1.4.0 w trixie); osobny pakiet `borgbackup2` to beta 2.0. Zainstaluj to samo wydanie na serwerze i na każdym kliencie.

*Na VPS do przechowywania danych, jako root: Borg, użytkownik borg, folder dla każdego klienta*

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

## Jak przypisać każdego klienta do jego własnego repozytorium?

**Umieść wymuszone polecenie `borg serve` przed każdym kluczem w `/srv/borg/.ssh/authorized_keys`, aby klucz mógł uruchamiać Borg i nic więcej.** Słowo kluczowe `restrict` blokuje przekierowanie portów, przekierowanie agenta i terminale, a dokumentacja Borg zauważa, że obejmuje ono również funkcje SSH dodane w przyszłych wydaniach. Przykłady zakładają powłokę POSIX jako powłokę logowania konta, dlatego powyższy użytkownik otrzymuje `/bin/sh`.

- `--restrict-to-path PATH` zezwala na tę ścieżkę i każdy folder pod nią, więc jeden klient może przechowywać kilka repozytoriów.
- `--restrict-to-repository PATH` jest bardziej restrykcyjne: dokładnie jedno repozytorium, bez podfolderów.
- `--append-only` pozwala kluczowi dodawać archiwa, ale nie usuwać danych z repozytorium.
- `--storage-quota 500G` ogranicza to, ile jeden klucz może przechowywać, więc wymykający się spod kontroli klient nie może zapełnić dysku.

Każda linia pozostaje w jednej linii w pliku; klucz administratora na końcu nie ma `--append-only` i jest używany tylko do usuwania starych danych.

*/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
```

*Popraw własność po edycji, jako root*

```bash
chown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keys
```

## Jak utworzyć repozytorium z szyfrowaniem repokey?

**Uruchom `borg init --encryption=repokey` z klienta, następnie wyeksportuj klucz i przechowuj go poza zarówno VPS, jak i maszyną, którą tworzysz kopię zapasową.** Dokumentacja Borg zaleca jako zasadę ogólną `repokey` z silnym hasłem; `repokey-blake2` to ten sam tryb z hashem BLAKE2b, prawdopodobnie szybszy na procesorach bez sprzętowo przyspieszonego SHA-256. W przypadku `repokey` klucz znajduje się w pliku `config` repozytorium, zabezpieczony Twoim hasłem. Jeśli zgubisz hasło, kopie zapasowe staną się nieczytelne, zarówno dla Ciebie, jak i dla wszystkich innych. Borg mówi również, że musisz przechowywać kopię klucza poza siedzibą, na przykład na papierze.

*Na kliencie (tutaj: laptop)*

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

## Jak usunąć stare dane i skompaktować repozytorium tylko do dopisywania?

**Z zaufanej maszyny administratora, kluczem, który nie ma `--append-only`, po sprawdzeniu, że żadne archiwum nie zaginęło.** W trybie tylko do dopisywania, jak wyjaśniają notatki Borg, `prune` i `delete` nadal działają, ale jedynie oznaczają dane jako usunięte w nowej transakcji, a kompakcja nigdy nie następuje, bez ostrzeżenia i bez błędu. Miejsce w repozytorium nie jest zwalniane, dopóki `borg compact` nie zostanie uruchomione z klucza, który może przepisywać dane.

Te same notatki zawierają haczyk: pierwszy zapis w trybie normalnym czyni każde wcześniejsze usunięcie trwałym, w tym takie, które atakujący wykonał przez klucz klienta. Więc najpierw wypisz archiwa. Jeśli niektórych brakuje, zatrzymaj się i postępuj zgodnie z krokami odzyskiwania w notatkach Borg o trybie tylko do dopisywania, zanim cokolwiek usuniesz. Zadanie cron, które automatycznie usuwa stare dane z nieograniczonym kluczem, czyni tryb tylko do dopisywania bezcelowym. Dokumentacja Borg zaleca również `--dry-run` z `--list` przed każdym rzeczywistym usunięciem.

*Na maszynie administratora, Host coffer-admin przy użyciu klucza administratora*

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

## Jak sprawdzić repozytorium i udowodnić, że przywracanie działa?

**Uruchamiaj `borg check` co tydzień, `borg check --verify-data` co miesiąc i co kilka miesięcy wyodrębniaj rzeczywiste pliki na inną maszynę.** Zwykłe sprawdzenie weryfikuje repozytorium i metadane archiwum. `--verify-data` odczytuje, odszyfrowuje i dekompresuje każdy fragment, co Borg nazywa bardzo czasochłonnym, i na dyskach twardych tak jest. W przypadku dużego repozytorium `--repository-only --max-duration 3600` dzieli sprawdzenie repozytorium na jednogodzinne fragmenty, które wznawiają się od miejsca przerwania. Żadne z nich nie zastępuje rzeczywistego przywracania: kopia zapasowa jest tyle warta, ile ostatnie udane wyciągnięcie z niej danych.

*Sprawdzenia i testowe przywracanie, z klienta*

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

## Ile kosztuje cel Borg w porównaniu z hostowanym miejscem na Borg?

**Według ankiety Coffervale z 2 listopada 2026 hostowane miejsce na Borg kosztowało $9.17 za TB miesięcznie w BorgBase (plan Medium 1 TB, $110.00 rocznie) i $15.00 za TB w rsync.net, podczas gdy plany Storage VPS u hostingodawców przyjmujących kryptowaluty bez dokumentu tożsamości miały medianę $4.00 za TB.** Usługi hostowane uruchamiają serwer za Ciebie; Storage VPS daje Ci root i powyższą konfigurację, wybór rozważany w [Czy Storage VPS to tańsza alternatywa dla rsync.net lub BorgBase?](https://coffervale.com/pl/rsync-net-alternative/ "Storage VPS against hosted Borg storage"). Nie wykonujemy kopii zapasowej Twojego serwera ani nie przechowujemy kopii Twoich danych nigdzie indziej, więc to, co znajduje się na storage VPS Coffervale, powinno być jedną z Twoich kopii, nigdy jedyną, więc serwer Borg jest jedną kopią spośród kilku, jak wyjaśnia [Jak używać VPS do kopii zapasowych poza siedzibą?](https://coffervale.com/pl/backup-vps/ "Off-site backups and 3-2-1 with a storage VPS"). Plan 1 TB opisano w [Gdzie mogę dostać VPS z 1 TB miejsca?](https://coffervale.com/pl/1tb-vps/ "1 TB storage VPS"), a jeśli wolisz restic, przeczytaj [Restic: serwer REST czy SFTP do kopii zapasowych na VPS?](https://coffervale.com/pl/restic-rest-server-vs-sftp/ "restic on a storage VPS"). Aby zaszyfrować również dysk VPS, zobacz [Jak zamontować i sformatować dysk do przechowywania danych na Linux VPS?](https://coffervale.com/pl/mount-storage-disk-on-a-vps/ "Mount and encrypt the data disk").

### Cele Borg za TB miesięcznie, 2 listopada 2026

| Cel Borg | Za TB miesięcznie | Co uruchamiasz samodzielnie | Płatność kryptowalutą |
| --- | --- | --- | --- |
| BorgBase Medium, 1 TB | $9.17 ($110.00 rocznie) | Nic: hostowane repozytoria Borg i restic | Nie podano |
| rsync.net, przedział 0 do 9 TB | $15.00 | Nic: pamięć ZFS osiągana przez SSH | Nie podano |
| Storage VPS, mediana z 99 planów | $4.00 | Serwer Borg skonfigurowany na tej stronie | Tak: hostingodawcy przyjmujący kryptowaluty bez dokumentu tożsamości |
| Coffervale Clay, 1 TB | $1.66 przy 12 miesiącach | Serwer Borg skonfigurowany na tej stronie | BTC, USDT, USDC, ETH, SOL, LTC, XMR |

*Ceny sprawdzone dnia 2 listopada 2026.*

Ceny odczytane na własnej stronie każdej usługi 2 listopada 2026. BorgBase rozlicza plan Medium rocznie i podaje ceny bez VAT; mediana Storage VPS obejmuje plany o pojemności 500 GB lub większej, dostępne w magazynie i rozliczane miesięcznie.

## Pytania o serwer kopii zapasowych Borg

### Czy klient i serwer potrzebują tej samej wersji Borg?

Trzymaj oba na Borg 1.x, najlepiej to samo wydanie. Borg 2 jest wciąż w wersji beta, używa nowego formatu repozytorium i nie może bezpośrednio otwierać repozytoriów 1.x. W Debianie 13 zainstaluj `borgbackup`, a nie `borgbackup2`.

### Czy powinienem używać --restrict-to-path czy --restrict-to-repository?

`--restrict-to-path` zezwala na folder i wszystko pod nim, przydatne, gdy jeden klient przechowuje kilka repozytoriów. `--restrict-to-repository` zezwala na dokładnie jedno repozytorium i żadnych podfolderów, to bardziej restrykcyjny wybór, gdy każdy klient ma jedno.

### Dlaczego moje repozytorium nie zmniejsza się po borg prune?

Prune jedynie oznacza archiwa jako usunięte; `borg compact` zwalnia miejsce. Przez klucz tylko do dopisywania kompakcja nigdy nie działa, więc usuwaj i kompaktuj z klucza administratora.

### Czy jeden Storage VPS może przechowywać repozytoria Borg dla kilku maszyn?

Tak. Nadaj każdej maszynie własny wiersz klucza w `authorized_keys`, własną ścieżkę, a jeśli dysk jest współdzielony, również własny `--storage-quota`. Wtedy jeden przejęty klient sięga tylko do jednego repozytorium.

### Co się stanie, jeśli zgubię passphrase do Borg?

Repozytorium stanie się trwale nieczytelne. Borg nie może go odzyskać, a host również nie. Trzymaj passphrase w menedżerze haseł, a wyeksportowany klucz na papierze, z dala od VPS i klienta.

## Źródła

1. [Dokumentacja Borg 1.4.5: Hosting repositories](https://borgbackup.readthedocs.io/en/stable/deployment/hosting-repositories.html) — BorgBackup project (read 2026-11-02)
2. [Dokumentacja Borg 1.4.5: borg serve (opcje restrict, append-only, limit miejsca)](https://borgbackup.readthedocs.io/en/stable/usage/serve.html) — BorgBackup project (read 2026-11-02)
3. [Dokumentacja Borg 1.4.5: borg init (tryby szyfrowania, kopia zapasowa klucza)](https://borgbackup.readthedocs.io/en/stable/usage/init.html) — BorgBackup project (read 2026-11-02)
4. [Dokumentacja Borg 1.4.5: borg prune](https://borgbackup.readthedocs.io/en/stable/usage/prune.html) — BorgBackup project (read 2026-11-02)
5. [Dokumentacja Borg 1.4.5: borg compact](https://borgbackup.readthedocs.io/en/stable/usage/compact.html) — BorgBackup project (read 2026-11-02)
6. [Dokumentacja Borg 1.4.5: borg check](https://borgbackup.readthedocs.io/en/stable/usage/check.html) — BorgBackup project (read 2026-11-02)
7. [Dokumentacja 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. [Dokumentacja 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 (informacje wstępne)](https://www.borgbackup.org/releases/borg-2.0.html) — BorgBackup project (read 2026-11-02)
10. [Wydania BorgBackup (1.4.5 najnowsze, 2.0.0b25 pre-release)](https://github.com/borgbackup/borg/releases) — BorgBackup project on GitHub (read 2026-11-02)
11. [Pakiety 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. [Plany i cennik](https://www.borgbase.com/) — BorgBase (read 2026-11-02)
13. [Cennik przechowywania w chmurze](https://www.rsync.net/pricing.html) — rsync.net (read 2026-11-02)

---

Coffervale: Coffervale sprzedaje storage VPS w Europie: serwery KVM z od 500 GB do 8 TB przestrzeni HDD na kopie zapasowe poza siedzibą, Nextcloud, Seafile, Syncthing i archiwa, z płatnością kryptowalutą i bez dokumentu tożsamości przy rejestracji. Serwery działają w Amsterdamie, Bukareszcie i Kiszyniowie, a operatorem jest DomaineGoat LLC, firma zarejestrowana w Panamie. W rozliczeniu 12-miesięcznym każdy plan jest wyceniony co najmniej 25% miesięcznie poniżej wskazanego porównywalnego storage VPS, wybranego spośród 10 hostów krypto bez KYC, których ceny odczytano 2 listopada 2026 r.
