Commit graph

124 commits

Author SHA1 Message Date
Thomas Waldmann
83b0dd66c7
improve docs / comments 2026-06-09 00:49:50 +02:00
Thomas Waldmann
5415062564 borg serve --rest: serve rest:// repositories with borg
Make `borg serve` able to be the server-side component of a rest:// repository,
selected with a new --rest option. Plain `borg serve` (no option) keeps serving
legacy borg-1.x repos and stays command-line compatible with borg 1.x.

- serve_cmd.py: add --rest and --backend. With --rest, serve the given
  --backend FILE:<path> on stdio via borgstore.server.rest.serve(); honor
  --restrict-to-path/--restrict-to-repository (validated against the FILE path)
  and --permissions (mapped via borg_permissions). Without --rest, run the legacy
  RepositoryServer as before.
- repository.py: for rest:// locations, build the borgstore REST backend with a
  command that runs `borg serve --rest --backend FILE:<path>` (locally via
  sys.executable, or over ssh reusing borgstore's ssh_cmd / BORG_REMOTE_PATH),
  instead of borgstore's hardcoded `borgstore-server-rest`. So a remote only needs
  borg installed. Extracted the permissions string->dict mapping into the reusable
  borg_permissions().
- tests: unit tests for the rest serve command builder. The existing
  remote_archiver (rest:///) suite now runs against `borg serve --rest`.
- docs: changelog + quickstart updated.

Legacy serve and the legacy ssh client are unchanged (client still spawns plain
`borg serve`).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 14:52:41 +02:00
Thomas Waldmann
cac7237d3f remove ssh:// and socket:// remote repository for current repos
The modern client/server transport (RemoteRepository served by `borg serve`
over an msgpack RPC protocol) is now redundant for current (borg 2) repos:
its functionality is replaced by rest:// (which can tunnel over ssh to a
remote borgstore REST server).

Remove the modern RemoteRepository (both ssh:// and socket://) entirely.
Legacy v1 (borg 1.x) repos remain reachable over ssh:// via the separate
LegacyRemoteRepository client, and `borg serve` / RepositoryServer is kept,
trimmed to the legacy-only path, so a remote borg2 can still serve a v1 repo
for `borg transfer --from-borg1`.

Details:
- remote.py: delete RemoteRepository, SleepingBandwidthLimiter and the `api`
  decorator; trim RepositoryServer to legacy-only (drop modern _rpc_methods,
  socket serving, non-legacy open() branch); keep cache_if_remote /
  RepositoryCache / RepositoryNoCache (used by all repos).
- get_repository(): non-legacy ssh:// now raises a clear "use rest://" error;
  socket:// route and the global --socket option removed.
- parseformat: drop the socket:// scheme (now an invalid location).
- borg serve: keep the command (serves legacy v1 ssh only); update epilog.
- borg version: drop modern remote query; keep legacy ssh path.
- update isinstance/import sites (cache, archive, fuse/hlfuse, analyze/compact,
  archiver __init__ -> LegacyRemoteRepository.RPCError).
- tests/docs updated; obsolete socket serve test removed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 08:04:59 +02:00
Thomas Waldmann
f646d2c4d0
docs: consolidate key backup info in borg key export, fixes #6204
Consolidate key backup documentation into `borg key export` and reference
it from Quickstart and FAQ to avoid duplication and inconsistency.

Clarify that while `repokey` or `authenticated` mode stores the key in the
repo, a separate backup is still recommended to protect against repository
corruption or data loss.
2026-02-08 11:50:31 +01:00
Thomas Waldmann
3120f9cd1c
fixed typos and grammar (AI)
this was done by Junie AI.
2025-09-23 14:56:23 +02:00
Thomas Waldmann
48b39d878f
remove remainders of quota support
Some features like repository quotas rely on a server-side component
that enforces them (because that shall only be controllable server-side,
not client-side).

So, that can only work, if such a server-side component exists, which is the
case for borg 1.x ssh: repositories (but not for borg 1.x non-ssh: repositories).

For borg2, we currently have:
- fs repos
- sftp: repos
- rclone: repos (enabling many different cloud providers)
- s3/b3: repos
- ssh: repos using client/server rpc code similar as in borg 1.x

So, only for the last method we have a borg server-side process that could enforce some features, but not for any of the other repo types.

For quotas the current idea is that this should not be done within borg,
but enforced by a storage specific quota implementation (like fs quota,
or quota of the cloud storage provider). borg could offer information
about overall repo space used, but would not enforce quotas within borg.
2025-04-28 16:57:30 +02:00
TW
b553452911
Merge pull request #8484 from mrichtarsky/docs
Docs: Remove --bypass-lock, small changes regarding compression
2024-11-01 12:26:06 +01:00
Martin Richtarsky
b913d9dd1a docs/FAQ: Clean up entries regarding SSH settings
Link to recommended ones
2024-11-01 07:43:47 +01:00
Martin Richtarsky
f656f6b1f2 docs: Small changes regarding compression
- Mention zstd as the best general choice when not using lz4
  (as often acknowledged by public benchmarks)
- Mention 'auto' more prominently as a good heuristic to improve
  speed while retaining good compression
- Link to compression options
2024-10-25 07:44:26 +02:00
Thomas Waldmann
bd6caf835d
add support for rclone:// repositories (via borgstore) 2024-09-22 22:26:07 +02:00
Thomas Waldmann
1bc5902718
docs: update about archive series
in borg 1.x, we used to put a timestamp into the archive name to make
it unique, because borg1 required that.

borg2 does not require unique archive names, but it encourages you
to even use an identical archive name within the same SERIES of archives.
that makes matching (e.g. for prune, but also at other places) much
simpler and borg KNOWS which archives belong to the same series.
2024-09-18 14:05:12 +02:00
Thomas Waldmann
78c7aabbb6
docs: fix usage docs and references for repo-* commands 2024-09-08 18:06:26 +02:00
Thomas Waldmann
04dfadbbd6
cli: rename r* commands to repo-*
also:
- adapt tests
- adapt BuildMan manpage generation
- adapt help strings / doc strings
- docs
2024-09-08 18:06:24 +02:00
Thomas Waldmann
ace97fadec
docs: updates / removing outdated stuff 2024-09-08 12:00:50 +02:00
Thomas Waldmann
3408e942de
add sftp: / borgstore to quickstart docs 2024-09-07 22:01:18 +02:00
Paul D
991b53ebea Misc fixes. 2022-12-29 22:26:55 +00:00
Paul D
949dc51156 Rewrite for quickstart 2022-12-29 22:26:55 +00:00
Paul D
253d8e8d4e Docs grammar fixes
joined split infinitives, and relocated adverbs appropriately.
2022-12-29 22:26:54 +00:00
Paul D
a85b643866 Docs grammar fixes.
One cannot "to not x", but one can "not to x".
Avoiding split infinitives gives the added bonus that machine
translation yields better results.

setup (n/adj) vs set(v) up. We don't "I setup it" but "I set it up".

Likewise for login(n/adj) and log(v) in, backup(n/adj) and back(v) up.
2022-12-29 00:01:48 +00:00
Thomas Waldmann
4574ae0178 update quickstart docs with --match-archives 2022-10-03 20:30:34 +02:00
Thomas Waldmann
89e4a52c56 docs: misc. updates
- remove outdated stuff
- fix infos for borg 2.0
2022-08-03 11:35:25 +02:00
Thomas Waldmann
c7ed985ffd Merge branch 'master' into borg2 2022-07-02 23:28:39 +02:00
Thomas Waldmann
6888d5dcb2 remove -P (aka --prefix) option, fixes #6806
-a (aka --glob-archives) can be used for same purpose and is more powerful.
2022-07-02 20:52:41 +02:00
TW
e577ccb094
Merge pull request #6755 from fantasya-pbem/docs/5960_FAQ-quota-size
[DOCS] #5960 - FAQ: Full quota / full disk
2022-06-29 14:42:11 +02:00
Thomas Waldmann
51cf85e627 build_usage / build_man / doc updates 2022-06-25 21:58:19 +02:00
Thalian
036eb97f03 [DOCS] #5960 - FAQ: Full quota / full disk 2022-06-24 17:55:14 +02:00
Maltimore
4902398554 [DOCS] Remove unnecessary/dangerous line continuation 2022-06-10 21:21:52 +03:00
Thalian
b4d3859b9e #6407 - Document Borg 1.2 pattern behavior change
Make clear that absolute paths always go into the matcher as if they are relative (without leading slash). Adapt all examples accordingly.

fixes #6407
2022-05-27 14:13:12 +02:00
Thomas Waldmann
61299d23db Revert "Remove scp syntax for locations (#6697)"
This reverts commit 1b4b84dfd8.
2022-05-18 17:31:10 +02:00
Emil M George
1b4b84dfd8
Remove scp syntax for locations (#6697)
remove scp syntax support from cli and from Location parser, add note about converting scp-style URLs to ssh-style, fixes #6691
2022-05-15 21:55:19 +02:00
Thomas Waldmann
298c5ee539 docs: security infos only applying to legacy encryption 2022-03-26 17:05:57 +01:00
Mateusz Konieczny
b4f54399d8
minor rewrite to make it less confusing (get rid of "Avoid to create a mixup") (#5490)
docs: permissions note rewritten to make it less confusing

Original wording was confusing "Avoid to create a mixup of users and permissions in your repository (or cache)." is not clear, what should be avoided?

Also implement some feedback of @jdchristensen.

Co-authored-by: Thomas Waldmann <tw@waldmann-edv.de>
2022-01-22 20:21:36 +01:00
Matthew R. Trower
1e01aca301 docs: remove /var/cache exclusion in example commands
This is generally a poor idea and shouldn't be promoted through examples.

Fixes #5625
2021-02-12 14:32:33 -06:00
jeroen tiebout
ed5d3dfe24
fix small typo in quickstart docs 2020-10-12 19:33:45 +02:00
Thalian
bfbb1ca525 [DOCS] Move content of resources doc page to community project, #2088 2020-04-19 19:13:02 +02:00
Thalian
25ab198d41
[DOCS] #4883 – Doc downplays severity of Nonce reuse issue (#5082)
docs: Borg documentation downplays severity of Nonce reuse issue, fixes #4883
2020-04-05 23:31:08 +02:00
Milkey Mouse
f7f2493f75
docs: reflow some really long lines
I used `grep -Pnr '.{100}' *.rst` to find lines >100 characters long and
reflowed them where reasonable. Line length in the docs isn't too important (it
doesn't matter once they're compiled), but it's nice not to have super-long
lines in one's editor.
2020-03-11 16:27:57 -07:00
TW
ae2ff8066c
add restore docs, fixes #4670 (#4723)
add restore docs, fixes #4670
2019-08-22 23:45:21 +02:00
ntova
627ca1376b Fix various code blocks in the docs (#4708)
Fix various code blocks in the docs

- rst markup: put codeblock markup on separate line to make it better visible / separate it from normal text colons.

- borg help texts in archiver.py: put codeblock markup instead of colon - that way it looks like a single colon when using the cli help and also works as code block markup.
2019-08-09 23:13:11 +02:00
Thomas Waldmann
faae9c9d56 how to supply a passphrase, use crypto devices, fixes #4549 2019-06-10 22:31:29 +02:00
Luke Murphy
3f55841591
Add note for software for automating backup docs
Closes https://github.com/borgbackup/borg/issues/4581.
2019-05-21 12:48:03 +02:00
Greg Grossmeier
b311b62e0d Docs: Improve logging in example automation script (#4226)
docs: improve logging in example automation script

* add an info entry for the compacting step
* add a final info entry for successful completion
2018-12-21 18:54:58 +01:00
James Vasile
806d937c2e 4081 - Add note about files changing during backup (#4116)
Add note about files changing during backup
2018-11-01 21:11:05 +01:00
Thomas Waldmann
e6fcf4ea42 update docs about separated compaction 2018-07-14 14:53:23 +02:00
TW
485368d50d
docs: fix and deduplicate encryption quickstart docs (#3776)
docs: fix and deduplicate encryption quickstart docs

just refer to "borg init" docs rather than duplicating it in quickstart.

also: s/archive/repository/
2018-05-23 14:17:01 -07:00
TW
b6b8e1bb16
Merge pull request #3683 from milkey-mouse/repo-archive-quickstart
Add quickstart introduction to repositories & archives (fixes #3620)
2018-03-24 21:31:27 +01:00
Milkey Mouse
d41c9296c0
fixup! Add quickstart introduction to repositories & archives (fixes #3620) 2018-03-24 12:05:47 -07:00
Milkey Mouse
09beb64f34
Add quickstart introduction to repositories & archives (fixes #3620) 2018-03-10 17:19:46 -08:00
Thomas Waldmann
7bc2138dcb quickstart: add note about permissions, borg@localhost, fixes #3452 2018-03-09 20:01:38 +01:00
Jesus Fernandez Manzano
3a0ae9c7f3
[Docs] Update quickstart.rst to fix typo 2018-02-26 10:58:31 +01:00