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.