---
title: 🗃️ Repositories
eleventyNavigation:
key: 🗃️ Repositories
parent: ⚙️ Configuration
---
Borg repositories are where your backups get stored. You can define them in
borgmatic's configuration via the `repositories` option, something like:
```yaml
repositories:
- path: /path/to/first.borg
label: first
- path: /path/to/second.borg
label: second
```
Each repository has a `path` and an optional `label`. The [Borg repository URLs
documentation](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls)
has examples of valid repositories paths, but see below for some
borgmatic-specific examples.
The `label` shows up in [logged
messages](https://torsion.org/borgmatic/reference/command-line/logging/) about
the repository and also serves as a way to refer to the repository via
the `--repository` flag on the command-line for supported
[actions](https://torsion.org/borgmatic/reference/command-line/actions/).
When you run borgmatic's [`create`
action](https://torsion.org/borgmatic/reference/command-line/actions/create/),
it invokes Borg once for each configured repository in sequence. (So, not in
parallel.) That means—in each repository—borgmatic creates a single new backup
archive containing all of your [source
directories](https://torsion.org/borgmatic/reference/configuration/patterns-and-excludes/).
## SSH
Backing up to a remote server via
[SSH](https://en.wikipedia.org/wiki/Secure_Shell) looks like:
```yaml
repositories:
- path: ssh://user@host:port/./absolute/path/to/repo
```
Or relative to the remote user's home directory:
```yaml
repositories:
- path: ssh://user@host:port/~/relative/path/to/repo
```
This assumes that you've already configured SSH access (e.g. public keys, known
hosts, authorized hosts, etc.) outside of borgmatic and that Borg is installed
on the server.
With Borg version 2.xThe SSH
syntax is a little different:
```yaml
repositories:
- path: ssh://user@host:port//absolute/path/to/repo
```
Or relative to the remote user's home directory:
```yaml
repositories:
- path: ssh://user@host:port/relative/path/to/repo
```
Also see the [`ssh_command` configuration
option](https://torsion.org/borgmatic/reference/configuration/) for overriding
the path to the SSH binary or passing it custom flags. For example:
```yaml
ssh_command: ssh -i /path/to/private/key
```
### SFTP
[SFTP](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol) repositories
work just like SSH repositories, but with `sftp://` substituted for `ssh://`.
## Rclone
New in Borg version 2.x If you're
using Borg 2, you can backup to repositories via [Rclone](https://rclone.org/),
which supports a large number of [cloud
providers](https://rclone.org/#providers). This means that Borg, via Rclone,
backs up directly to a cloud provider without having to create an intermediate
repository.
The borgmatic configuration for Rclone looks like:
```yaml
repositories:
- path: rclone:remote:path
```
Note the lack of "`//`" after `rclone:`.
This configuration assumes that you've already [configured a corresponding
Rclone remote](https://rclone.org/docs/).
## S3 / B2
New in Borg version 2.x Borg 2
supports storing repositories directly on [Amazon
S3](https://aws.amazon.com/s3/), [Backblaze
B2](https://www.backblaze.com/cloud-storage), or an S3-alike service, even
without the use of Rclone or an intermediate repository. The configuration for
that might look like one of the following:
```yaml
repositories:
- path: s3:access_key_id:access_key_secret@/bucket/path
- path: b2:access_key_id:access_key_secret@schema://hostname:port/bucket/path
```
Note the lack of "`//`" after `s3:` or `b2:`.
When selecting your cloud hosting provider, be aware that Amazon in particular
has [financially
supported](https://en.wikipedia.org/wiki/White_House_State_Ballroom) the Trump
regime.
## Related documentation
* [How to make backups redundant](https://torsion.org/borgmatic/how-to/make-backups-redundant/)
* [How to provide your passwords](https://torsion.org/borgmatic/how-to/provide-your-passwords/)