From 0b84ef873e5cde3f7b7de617791a4f8555dae81f Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Tue, 9 Sep 2025 13:03:00 -0500 Subject: [PATCH] added remote provider --- Providers.md | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/Providers.md b/Providers.md index a303ead..b21fd41 100644 --- a/Providers.md +++ b/Providers.md @@ -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 **[Configuration‑File‑Options](Configuration%20File%20Options)** and **[CLI Usage](CLI%20Usage)**.