added remote provider

2025-09-09 13:03:00 -05:00
parent 4bb657400a
commit 0b84ef873e

@@ -4,7 +4,10 @@
- **S3 Provider**
- **Sia Provider**
- **Encryption Provider** (Work-in-Progress — use with caution)
- **Remote Mount Provider**
- **Encrypt Provider** (Work-in-Progress — use with caution)
Each provider can be mounted on Linux (FUSE), macOS (macFUSE), and Windows (WinFSP).
---
@@ -25,11 +28,47 @@
## ☁️ Sia Provider
- Uses the **renterd HTTP REST API** via `libcurl`
- Configuration is handled within the **SiaConfig** section of `config.json`
- Configuration is handled within the **SiaConfig** and **HostConfig** sections of `config.json`
---
## 🔒 Encryption Provider (WIP — Use With Caution)
## 🔗 Remote Mount Provider
Connects to a **different machine running Repertory** and exposes its active mount locally. This is a **client** that talks to a Repertory **server** which has remote mounting enabled.
### How it works (high level)
- **Server side**: an existing S3 or Sia mount is configured to allow remote access via the `RemoteMount` section of its config.
- **Client side**: you mount using `-rm host:port`, and the client forwards file operations over a secure packet channel with a **shared EncryptionToken**.
### Required settings
- **Server (on the original S3/Sia mount) — `RemoteMount` section**
- `RemoteMount.Enable``true` to expose the mount.
- `RemoteMount.ApiPort` — listening port for remote clients.
- `RemoteMount.ClientPoolSize` — size of server's client pool. *(default **20**)*
- `RemoteMount.EncryptionToken`**shared secret**; must match the client's token.
- **Client — `RemoteConfig` section**
- `RemoteConfig.HostNameOrIp` — server address.
- `RemoteConfig.ApiPort` — server remote API port.
- `RemoteConfig.EncryptionToken`**same value** as the server.
- `RemoteConfig.MaxConnections` — max concurrent connections. *(default **20**)*
- `RemoteConfig.ReceiveTimeoutMs` — receive timeout in ms. *(default **120000**)*
- `RemoteConfig.SendTimeoutMs` — send timeout in ms. *(default **30000**)*
**Default Remote API ports** (from source):
| Provider | Default Remote API Port |
|---------|--------------------------|
| Sia | 20000 |
| Remote | 20010 |
| S3 | 20100 |
| Encrypt | 20001 |
---
## 🔒 Encrypt Provider (WIP — Use With Caution)
- Acts as a **local pass-through provider** - configure it to use any existing folder on your file system and it will transparently encrypt file/directory names and file data using `XChaCha20-Poly1305`.
- **Important:** There is currently **no decryption provider**. Data encrypted this way cannot be decrypted by Repertory; additional support is planned for future versions.
@@ -42,5 +81,7 @@
|----------------------|----------------------------------------------------------------------------------------|
| **S3 Provider** | Using standard S3-compatible storage (e.g., AWS S3, MinIO, etc.), with optional encryption at transfer time |
| **Sia Provider** | Mounting Sia buckets with `renterd` |
| **Encryption Provider** | Locally encrypting data before uploading elsewhere — but be mindful of irreversible encryption . intended to add a layer of security when using online backup platforms, for instance. |
| **Remote Mount** | Mount a Repertory instance running elsewhere (LAN/WAN). |
| **Encrypt Provider** | Locally encrypting data before uploading elsewhere — but be mindful of irreversible encryption . intended to add a layer of security when using online backup platforms, for instance. |
> For exhaustive option names and examples, see **[ConfigurationFileOptions](Configuration%20File%20Options)** and **[CLI Usage](CLI%20Usage)**.