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