Page:
Configuration File Options
Clone
16
Configuration File Options
Scott E. Graves edited this page 2025-09-11 07:54:16 -05:00
Table of Contents
Configuration File Options
This wiki describes configuration settings for Repertory across all provider types — S3, Sia, and Remote — with ✅ meaning settings update live and ❌ meaning they require a restart.
🛠 Common Settings (S3, Sia, Remote)
Setting | Description | Providers | Live Update |
---|---|---|---|
ApiUser | API username for authentication | ✅ Remote / ✅ S3 / ✅ Sia | ❌ |
ApiPassword | API password for authentication | ✅ Remote / ✅ S3 / ✅ Sia | ❌ |
ApiPort | API listening port | ✅ Remote / ✅ S3 / ✅ Sia | ❌ |
DatabaseType | Storage backend type (rocksdb, sqlite) | ✅ Remote / ✅ S3 / ✅ Sia | ❌ |
DownloadTimeoutSeconds | Max time in seconds before a download is aborted | ✅ S3 / ✅ Sia | ✅ |
EnableDownloadTimeout | Whether download timeout is enforced | ✅ S3 / ✅ Sia | ✅ |
EnableDriveEvents | Enable event tracking for drive operations | ✅ Remote / ✅ S3 / ✅ Sia | ✅ |
EventLevel | Logging verbosity (info, debug, etc.) | ✅ Remote / ✅ S3 / ✅ Sia | ✅ |
EvictionDelayMinutes | Delay before cached files are evicted | ✅ S3 / ✅ Sia | ✅ |
EvictionUseAccessedTime | Use last access time for eviction logic | ✅ S3 / ✅ Sia | ✅ |
HighFreqIntervalSeconds | Interval for high-frequency tasks | ✅ S3 / ✅ Sia | ❌ |
LowFreqIntervalSeconds | Interval for low-frequency tasks | ✅ S3 / ✅ Sia | ❌ |
MedFreqIntervalSeconds | Interval for medium-frequency tasks | ✅ S3 / ✅ Sia | ❌ |
MaxCacheSizeBytes | Maximum cache size in bytes | ✅ S3 / ✅ Sia | ✅ |
MaxUploadCount | Max simultaneous uploads | ✅ S3 / ✅ Sia | ✅ |
OnlineCheckRetrySeconds | Seconds between online check retries | ✅ S3 / ✅ Sia | ✅ |
PreferredDownloadType | Download strategy (default, direct, ring_buffer) | ✅ S3 / ✅ Sia | ✅ |
RemoteMount.ApiPort | API port for remote mounting | ✅ S3 / ✅ Sia | ❌ |
RemoteMount.ClientPoolSize | Number of pooled clients for remote mounting | ✅ S3 / ✅ Sia | ❌ |
RemoteMount.Enable | Enable remote mounting | ✅ S3 / ✅ Sia | ❌ |
RemoteMount.EncryptionToken | Encryption token for secure remote mount | ✅ S3 / ✅ Sia | ❌ |
RetryReadCount | Number of read retries before failing | ✅ S3 / ✅ Sia | ✅ |
RingBufferFileSize | Size of the ring buffer file in MiB | ✅ S3 / ✅ Sia | ✅ |
TaskWaitMs | Delay between queued tasks in ms | ✅ Remote / ✅ S3 / ✅ Sia | ✅ |
Version | Config schema version | ✅ Remote / ✅ S3 / ✅ Sia | ✅ |
🪣 S3 Provider
Description
Provides cloud storage access using S3-compatible APIs, with optional transparent encryption passthrough.
Example config.json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10100,
"ApiUser": "repertory",
"DatabaseType": "rocksdb",
"DownloadTimeoutSeconds": 30,
"EnableDownloadTimeout": true,
"EnableDriveEvents": false,
"EventLevel": "info",
"EvictionDelayMinutes": 1,
"EvictionUseAccessedTime": false,
"HighFreqIntervalSeconds": 30,
"LowFreqIntervalSeconds": 3600,
"MaxCacheSizeBytes": 21474836480,
"MaxUploadCount": 5,
"MedFreqIntervalSeconds": 120,
"OnlineCheckRetrySeconds": 60,
"PreferredDownloadType": "default",
"RemoteMount": {
"ApiPort": 20100,
"ClientPoolSize": 20,
"Enable": false,
"EncryptionToken": ""
},
"RetryReadCount": 6,
"RingBufferFileSize": 512,
"S3Config": {
"AccessKey": "<my access key>",
"Bucket": "<my bucket name>",
"EncryptionToken": "",
"ForceLegacyEncryption": false,
"Region": "any",
"SecretKey": "<my secret key>",
"TimeoutMs": 60000,
"URL": "http://localhost:9000",
"UsePathStyle": true,
"UseRegionInURL": false
},
"TaskWaitMs": 100,
"Version": 1
}
S3-specific Settings
Setting | Description | Live Update |
---|---|---|
S3Config.AccessKey | AWS/S3 access key | ❌ |
S3Config.Bucket | Bucket name | ❌ |
S3Config.EncryptionToken | Encryption key/token for encrypted buckets | ❌ |
S3Config.ForceLegacyEncryption | Disables Argon2id KDF and switches from Base-64 object key names to hex strings. Bucket must be empty or must be a non-empty encrypted bucket created using repertory v2.0.x. If this setting is false , the bucket will be automatically upgraded to v2.1.0 behavior (Argon2id and Base-64 object key names) when empty. |
❌ |
S3Config.Region | S3 region | ❌ |
S3Config.SecretKey | AWS/S3 secret key | ❌ |
S3Config.TimeoutMs | Timeout for S3 API calls in ms | ❌ |
S3Config.URL | Endpoint URL | ❌ |
S3Config.UsePathStyle | Use path-style addressing | ❌ |
S3Config.UseRegionInURL | Include region in endpoint URL | ❌ |
☁️ Sia Provider
Description
Integrates with the Sia renterd backend for decentralized cloud storage.
Example config.json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10000,
"ApiUser": "repertory",
"DatabaseType": "rocksdb",
"DownloadTimeoutSeconds": 30,
"EnableDownloadTimeout": true,
"EnableDriveEvents": false,
"EventLevel": "info",
"EvictionDelayMinutes": 1,
"EvictionUseAccessedTime": false,
"HighFreqIntervalSeconds": 30,
"HostConfig": {
"AgentString": "Sia-Agent",
"ApiPassword": "<renterd api password>",
"ApiPort": 9980,
"ApiUser": "",
"HostNameOrIp": "localhost",
"Path": "",
"Protocol": "http",
"TimeoutMs": 60000
},
"LowFreqIntervalSeconds": 3600,
"MaxCacheSizeBytes": 21474836480,
"MaxUploadCount": 5,
"MedFreqIntervalSeconds": 120,
"OnlineCheckRetrySeconds": 60,
"PreferredDownloadType": "default",
"RemoteMount": {
"ApiPort": 20000,
"ClientPoolSize": 20,
"Enable": false,
"EncryptionToken": ""
},
"RetryReadCount": 6,
"RingBufferFileSize": 512,
"SiaConfig": {
"Bucket": "my_bucket"
},
"TaskWaitMs": 100,
"Version": 1
}
Sia-specific Settings
Setting | Description | Live Update |
---|---|---|
HostConfig.AgentString | User-agent string for API requests | ❌ |
HostConfig.ApiPassword | renterd API password | ❌ |
HostConfig.ApiPort | renterd API port | ❌ |
HostConfig.ApiUser | renterd API user | ❌ |
HostConfig.HostNameOrIp | renterd host address | ❌ |
HostConfig.Path | API path | ❌ |
HostConfig.Protocol | http or https | ❌ |
HostConfig.TimeoutMs | API timeout in ms | ❌ |
SiaConfig.Bucket | Target Sia bucket | ❌ |
🔗 Remote Provider
Description
Connects to another Repertory instance over the network.
Example config.json
{
"ApiPassword": "<random generated rpc password>",
"ApiPort": 10010,
"ApiUser": "repertory",
"EnableDriveEvents": false,
"EventLevel": "info",
"RemoteConfig": {
"ApiPort": 20000,
"EncryptionToken": "<my secure password>",
"HostNameOrIp": "192.168.1.10",
"MaxConnections": 20,
"ReceiveTimeoutMs": 120000,
"SendTimeoutMs": 30000
},
"TaskWaitMs": 100,
"Version": 1
}
Remote-specific Settings
Setting | Description | Live Update |
---|---|---|
RemoteConfig.ApiPort | Remote instance API port | ❌ |
RemoteConfig.EncryptionToken | Token used for secure communication | ❌ |
RemoteConfig.HostNameOrIp | Remote instance hostname/IP | ❌ |
RemoteConfig.MaxConnections | Max simultaneous connections | ❌ |
RemoteConfig.ReceiveTimeoutMs | Receive timeout in ms | ❌ |
RemoteConfig.SendTimeoutMs | Send timeout in ms | ❌ |
🔄 Updating Settings via CLI
You can update most settings directly from the CLI using dotted notation for nested values.
repertory -set S3Config.Bucket my_bucket_name
Rules:
- Nested values (with a dot
.
in the name) ❌ do not update live — restart is required. - All others ✅ can be updated live.