Configuration is loaded from appsettings.json, overridden by appsettings.{Environment}.json, then by appsettings.local.json (not committed), and finally by environment variables.

Environment variables use __ as the section separator: Watcher__StandId=stand-1.

Full example

  {
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "Watcher": {
    "Path": "/path/to/watch",
    "StandId": "stand-1",
    "ProcessedPath": "/path/to/processed",
    "FailedPath": "/path/to/failed"
  },
  "Resize": {
    "MaxWidth": 800,
    "MaxHeight": 800
  },
  "Storage": {
    "Endpoint": "localhost:9000",
    "AccessKey": "minioadmin",
    "SecretKey": "minioadmin",
    "UseSSL": false,
    "Bucket": "photos",
    "FullPrefix": "full",
    "LowPrefix": "low",
    "RetryInitialDelayMs": 1000,
    "RetryMaxDelayMs": 60000
  }
}
  

Reference

Watcher

KeyTypeDefaultDescription
PathstringrequiredDirectory to watch for .jpg files
StandIdstringrequiredIdentifier prepended to each photo key ({StandId}-{UUID}.jpg)
ProcessedPathstringrequiredDestination folder for successfully processed files
FailedPathstringrequiredDestination folder for files that failed processing

Resize

KeyTypeDefaultDescription
MaxWidthint800Maximum width in pixels for the low-resolution version
MaxHeightint800Maximum height in pixels for the low-resolution version

If the original image is smaller than the configured maximum, it is not upscaled.

Storage

KeyTypeDefaultDescription
EndpointstringrequiredMinIO endpoint, without scheme (e.g. localhost:9000)
AccessKeystringrequiredMinIO access key
SecretKeystringrequiredMinIO secret key
UseSSLboolfalseWhether to connect over HTTPS
BucketstringrequiredTarget bucket name
FullPrefixstringrequiredObject prefix for full-resolution uploads (e.g. full)
LowPrefixstringrequiredObject prefix for low-resolution uploads (e.g. low)
RetryInitialDelayMsint1000Initial delay in milliseconds before the first retry
RetryMaxDelayMsint60000Maximum delay in milliseconds between retries (exponential backoff cap)

Logging

KeyValuesDefaultDescription
LogLevel.DefaultDebug, Information, Warning, ErrorInformationMinimum log level. Use Debug to see all processing steps