Skip to content

Configuration File Options

Scott E. Graves edited this page Oct 16, 2025 · 1 revision

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.

Clone this wiki locally