config.schema.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "SPIS Configuration",
"type": "object",
"additionalProperties": false,
"properties": {
"dirs": {
"type": "object",
"additionalProperties": false,
"properties": {
"media": {
"type": "string",
"description": "Path to search for media files"
},
"data": {
"type": "string",
"description": "Path to store data (database, thumbnails)"
}
}
},
"processing": {
"type": "object",
"additionalProperties": false,
"properties": {
"schedule": {
"type": "string",
"description": "Cron schedule to run processing on",
"default": "0 0 2 * * *"
},
"run_on_start": {
"type": "boolean",
"description": "Run processing on startup",
"default": false
}
}
},
"api": {
"type": "object",
"additionalProperties": false,
"properties": {
"media_path": {
"type": "string",
"description": "Path webserver will serve media on",
"default": "/assets/media"
},
"thumbnail_path": {
"type": "string",
"description": "Path webserver will serve thumbnails on",
"default": "/assets/thumbnails"
}
}
},
"listener": {
"type": "object",
"additionalProperties": false,
"properties": {
"address": {
"type": "string",
"description": "Listen to address (e.g., '0.0.0.0:8080')"
},
"socket": {
"type": "string",
"description": "Listen to UNIX socket path"
}
},
"oneOf": [
{ "required": ["address"] },
{ "required": ["socket"] },
{ "not": { "anyOf": [{ "required": ["address"] }, { "required": ["socket"] }] } }
]
},
"features": {
"type": "object",
"additionalProperties": false,
"properties": {
"favorite": {
"type": "boolean",
"description": "Enable favorite feature",
"default": true
},
"archive": {
"type": "boolean",
"description": "Enable archive feature",
"default": true
},
"delete_on_archive": {
"type": "boolean",
"description": "Delete file when archived",
"default": false
},
"follow_symlinks": {
"type": "boolean",
"description": "Follow symbolic links when scanning",
"default": true
},
"allow_no_exif": {
"type": "boolean",
"description": "Allow processing files without EXIF data",
"default": true
}
}
},
"slideshow": {
"type": "object",
"additionalProperties": false,
"properties": {
"duration_seconds": {
"type": "integer",
"description": "Slideshow duration in seconds",
"default": 5,
"minimum": 1
}
}
},
"custom_command": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["name", "cmd", "fa_icon"],
"properties": {
"name": {
"type": "string",
"description": "Identifier of the command (lowercase, no spaces)",
"pattern": "^[a-z0-9_-]+$"
},
"cmd": {
"type": "array",
"description": "Command and arguments to execute",
"items": {
"type": "string"
}
},
"fa_icon": {
"type": "string",
"description": "FontAwesome icon identifier for the command"
},
"hotkey": {
"type": "string",
"description": "Single lowercase character hotkey",
"pattern": "^[a-z]$",
"minLength": 1,
"maxLength": 1
}
}
}
}
}
}