16
Configuration File Options
Scott E. Graves edited this page 2025-09-11 07:54:16 -05:00

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.