mirror of
https://github.com/bpatrik/pigallery2.git
synced 2024-12-10 11:10:35 +02:00
418 lines
24 KiB
Markdown
418 lines
24 KiB
Markdown
# Pigallery 2 man page
|
|
pigallery2 uses [typeconfig](https://github.com/bpatrik/typeconfig) for configuration
|
|
|
|
`npm start -- --help` prints the following:
|
|
|
|
```
|
|
Usage: <appname> [options]
|
|
|
|
Meta cli options:
|
|
--help prints this manual
|
|
--config-path sets the config file location
|
|
--config-attachState prints the value state (default, readonly, volatile, etc..) to the config file
|
|
--config-attachDesc prints description to the config file
|
|
--config-rewrite-cli updates the config file with the options from cli switches
|
|
--config-rewrite-env updates the config file with the options from environmental variables
|
|
--config-string-enum enums are stored as string in the config file (instead of numbers)
|
|
--config-save-if-not-exist creates config file if not exist
|
|
--config-save-and-exist creates config file and terminates
|
|
|
|
<appname> can be configured through the configuration file, cli switches and environmental variables.
|
|
All settings are case sensitive.
|
|
Example for setting config MyConf through cli: '<appname> --MyConf=5'
|
|
and through env variable: 'SET MyConf=5' .
|
|
|
|
Default values can be also overwritten by prefixing the options with 'default-',
|
|
like '<appname> --default-MyConf=5' and 'SET default-MyConf=5'
|
|
|
|
App CLI options:
|
|
--Server-sessionSecret (default: [])
|
|
--Server-port (default: 80)
|
|
--Server-host (default: '0.0.0.0')
|
|
--Server-Media-folder Images are loaded from this folder (read permission required) (default: 'demo/images')
|
|
--Server-Media-tempFolder Thumbnails, coverted photos, videos will be stored here (write permission required) (default: 'demo/tmp')
|
|
--Server-Media-Video-transcoding-bitRate (default: 5242880)
|
|
--Server-Media-Video-transcoding-resolution (default: 720)
|
|
--Server-Media-Video-transcoding-fps (default: 25)
|
|
--Server-Media-Video-transcoding-codec (default: 'libx264')
|
|
--Server-Media-Video-transcoding-format (default: 'mp4')
|
|
--Server-Media-Video-transcoding-crf Constant Rate Factor. The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible. (default: 23)
|
|
--Server-Media-Video-transcoding-preset A preset is a collection of options that will provide a certain encoding speed to compression ratio (default: 'medium')
|
|
--Server-Media-Video-transcoding-customOptions It will be sent to ffmpeg as it is, as custom options. (default: [])
|
|
--Server-Media-Photo-Converting-onTheFly Converts photos on the fly, when they are requested. (default: true)
|
|
--Server-Media-Photo-Converting-resolution (default: 1080)
|
|
--Server-Media-Thumbnail-qualityPriority if true, photos will have better quality. (default: true)
|
|
--Server-Media-Thumbnail-personFaceMargin (default: 0.6)
|
|
--Server-Threading-enabled App can run on multiple thread (default: true)
|
|
--Server-Threading-thumbnailThreads Number of threads that are used to generate thumbnails. If 0, number of 'CPU cores -1' threads will be used. (default: 0)
|
|
--Server-Database-type (default: 'sqlite')
|
|
--Server-Database-dbFolder (default: 'db')
|
|
--Server-Database-sqlite-DBFileName (default: 'sqlite.db')
|
|
--Server-Database-mysql-host (default: 'localhost')
|
|
--Server-Database-mysql-port (default: 3306)
|
|
--Server-Database-mysql-database (default: 'pigallery2')
|
|
--Server-Database-mysql-username (default: '')
|
|
--Server-Database-mysql-password (default: '')
|
|
--Server-Sharing-updateTimeout (default: 300000)
|
|
--Server-sessionTimeout unit: ms (default: 604800000)
|
|
--Server-Indexing-cachedFolderTimeout (default: 3600000)
|
|
--Server-Indexing-reIndexingSensitivity (default: 'low')
|
|
--Server-Indexing-excludeFolderList If an entry starts with '/' it is treated as an absolute path. If it doesn't start with '/' but contains a '/', the path is relative to the image directory. If it doesn't contain a '/', any folder with this name will be excluded. (default: [".Trash-1000",".dtrash","$RECYCLE.BIN"])
|
|
--Server-Indexing-excludeFileList Any folder that contains a file with this name will be excluded from indexing. (default: [])
|
|
--Server-photoMetadataSize only this many bites will be loaded when scanning photo for metadata (default: 524288)
|
|
--Server-Duplicates-listingLimit (default: 1000)
|
|
--Server-Log-level (default: 'info')
|
|
--Server-Log-sqlLevel (default: 'error')
|
|
--Server-Jobs-maxSavedProgress Job history size (default: 10)
|
|
--Server-Jobs-scheduled (default: [{"name":"Indexing","jobName":"Indexing","config":{},"allowParallelRun":false,"trigger":{"type":1}},{"name":"Thumbnail Generation","jobName":"Thumbnail Generation","config":{"sizes":[240],"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Indexing"}},{"name":"Photo Converting","jobName":"Photo Converting","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Thumbnail Generation"}},{"name":"Video Converting","jobName":"Video Converting","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Photo Converting"}},{"name":"Temp Folder Cleaning","jobName":"Temp Folder Cleaning","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Video Converting"}}])
|
|
--Client-applicationTitle (default: 'PiGallery 2')
|
|
--Client-publicUrl (default: '')
|
|
--Client-urlBase (default: '')
|
|
--Client-Search-enabled (default: true)
|
|
--Client-Search-searchCacheTimeout (default: 3600000)
|
|
--Client-Search-AutoComplete-enabled (default: true)
|
|
--Client-Search-AutoComplete-maxItemsPerCategory (default: 5)
|
|
--Client-Search-AutoComplete-cacheTimeout (default: 3600000)
|
|
--Client-Search-maxMediaResult (default: 2000)
|
|
--Client-Search-maxDirectoryResult (default: 200)
|
|
--Client-Sharing-enabled (default: true)
|
|
--Client-Sharing-passwordProtected (default: true)
|
|
--Client-Map-enabled (default: true)
|
|
--Client-Map-useImageMarkers (default: true)
|
|
--Client-Map-mapProvider (default: 'OpenStreetMap')
|
|
--Client-Map-mapboxAccessToken (default: '')
|
|
--Client-Map-customLayers (default: [{"name":"street","url":""}])
|
|
--Client-RandomPhoto-enabled (default: true)
|
|
--Client-Other-enableCache (default: true)
|
|
--Client-Other-enableOnScrollRendering (default: true)
|
|
--Client-Other-defaultPhotoSortingMethod (default: 'ascDate')
|
|
--Client-Other-enableOnScrollThumbnailPrioritising (default: true)
|
|
--Client-Other-NavBar-showItemCount (default: true)
|
|
--Client-Other-captionFirstNaming (default: false)
|
|
--Client-authenticationRequired (default: true)
|
|
--Client-unAuthenticatedUserRole (default: 'Admin')
|
|
--Client-Media-Thumbnail-iconSize (default: 45)
|
|
--Client-Media-Thumbnail-personThumbnailSize (default: 200)
|
|
--Client-Media-Thumbnail-thumbnailSizes (default: [240,480])
|
|
--Client-Media-Video-enabled (default: true)
|
|
--Client-Media-Photo-Converting-enabled (default: true)
|
|
--Client-MetaFile-enabled (default: true)
|
|
--Client-Faces-enabled (default: true)
|
|
--Client-Faces-keywordsToPersons (default: true)
|
|
--Client-Faces-writeAccessMinRole (default: 'Admin')
|
|
--Client-Faces-readAccessMinRole (default: 'User')
|
|
|
|
Environmental variables:
|
|
Server-sessionSecret (default: [])
|
|
Server-port (default: 80)
|
|
PORT same as Server-port
|
|
Server-host (default: '0.0.0.0')
|
|
Server-Media-folder Images are loaded from this folder (read permission required) (default: 'demo/images')
|
|
Server-Media-tempFolder Thumbnails, coverted photos, videos will be stored here (write permission required) (default: 'demo/tmp')
|
|
Server-Media-Video-transcoding-bitRate (default: 5242880)
|
|
Server-Media-Video-transcoding-resolution (default: 720)
|
|
Server-Media-Video-transcoding-fps (default: 25)
|
|
Server-Media-Video-transcoding-codec (default: 'libx264')
|
|
Server-Media-Video-transcoding-format (default: 'mp4')
|
|
Server-Media-Video-transcoding-crf Constant Rate Factor. The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible. (default: 23)
|
|
Server-Media-Video-transcoding-preset A preset is a collection of options that will provide a certain encoding speed to compression ratio (default: 'medium')
|
|
Server-Media-Video-transcoding-customOptions It will be sent to ffmpeg as it is, as custom options. (default: [])
|
|
Server-Media-Photo-Converting-onTheFly Converts photos on the fly, when they are requested. (default: true)
|
|
Server-Media-Photo-Converting-resolution (default: 1080)
|
|
Server-Media-Thumbnail-qualityPriority if true, photos will have better quality. (default: true)
|
|
Server-Media-Thumbnail-personFaceMargin (default: 0.6)
|
|
Server-Threading-enabled App can run on multiple thread (default: true)
|
|
Server-Threading-thumbnailThreads Number of threads that are used to generate thumbnails. If 0, number of 'CPU cores -1' threads will be used. (default: 0)
|
|
Server-Database-type (default: 'sqlite')
|
|
Server-Database-dbFolder (default: 'db')
|
|
Server-Database-sqlite-DBFileName (default: 'sqlite.db')
|
|
Server-Database-mysql-host (default: 'localhost')
|
|
MYSQL_HOST same as Server-Database-mysql-host
|
|
Server-Database-mysql-port (default: 3306)
|
|
MYSQL_PORT same as Server-Database-mysql-port
|
|
Server-Database-mysql-database (default: 'pigallery2')
|
|
MYSQL_DATABASE same as Server-Database-mysql-database
|
|
Server-Database-mysql-username (default: '')
|
|
MYSQL_USERNAME same as Server-Database-mysql-username
|
|
Server-Database-mysql-password (default: '')
|
|
MYSQL_PASSWORD same as Server-Database-mysql-password
|
|
Server-Sharing-updateTimeout (default: 300000)
|
|
Server-sessionTimeout unit: ms (default: 604800000)
|
|
Server-Indexing-cachedFolderTimeout (default: 3600000)
|
|
Server-Indexing-reIndexingSensitivity (default: 'low')
|
|
Server-Indexing-excludeFolderList If an entry starts with '/' it is treated as an absolute path. If it doesn't start with '/' but contains a '/', the path is relative to the image directory. If it doesn't contain a '/', any folder withthis name will be excluded. (default: [".Trash-1000",".dtrash","$RECYCLE.BIN"])
|
|
Server-Indexing-excludeFileList Any folder that contains a file with this name will be excluded from indexing. (default: [])
|
|
Server-photoMetadataSize only this many bites will be loaded when scanning photo for metadata (default: 524288)
|
|
Server-Duplicates-listingLimit (default: 1000)
|
|
Server-Log-level (default: 'info')
|
|
Server-Log-sqlLevel (default: 'error')
|
|
Server-Jobs-maxSavedProgress Job history size (default: 10)
|
|
Server-Jobs-scheduled (default: [{"name":"Indexing","jobName":"Indexing","config":{},"allowParallelRun":false,"trigger":{"type":1}},{"name":"Thumbnail Generation","jobName":"Thumbnail Generation","config":{"sizes":[240],"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Indexing"}},{"name":"Photo Converting","jobName":"Photo Converting","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Thumbnail Generation"}},{"name":"Video Converting","jobName":"Video Converting","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Photo Converting"}},{"name":"Temp Folder Cleaning","jobName":"Temp Folder Cleaning","config":{"indexedOnly":true},"allowParallelRun":false,"trigger":{"type":4,"afterScheduleName":"Video Converting"}}])
|
|
Client-applicationTitle (default: 'PiGallery 2')
|
|
Client-publicUrl (default: '')
|
|
Client-urlBase (default: '')
|
|
Client-Search-enabled (default: true)
|
|
Client-Search-searchCacheTimeout (default: 3600000)
|
|
Client-Search-AutoComplete-enabled (default: true)
|
|
Client-Search-AutoComplete-maxItemsPerCategory (default: 5)
|
|
Client-Search-AutoComplete-cacheTimeout (default: 3600000)
|
|
Client-Search-maxMediaResult (default: 2000)
|
|
Client-Search-maxDirectoryResult (default: 200)
|
|
Client-Sharing-enabled (default: true)
|
|
Client-Sharing-passwordProtected (default: true)
|
|
Client-Map-enabled (default: true)
|
|
Client-Map-useImageMarkers (default: true)
|
|
Client-Map-mapProvider (default: 'OpenStreetMap')
|
|
Client-Map-mapboxAccessToken (default: '')
|
|
Client-Map-customLayers (default: [{"name":"street","url":""}])
|
|
Client-RandomPhoto-enabled (default: true)
|
|
Client-Other-enableCache (default: true)
|
|
Client-Other-enableOnScrollRendering (default: true)
|
|
Client-Other-defaultPhotoSortingMethod (default: 'ascDate')
|
|
Client-Other-enableOnScrollThumbnailPrioritising (default: true)
|
|
Client-Other-NavBar-showItemCount (default: true)
|
|
Client-Other-captionFirstNaming (default: false)
|
|
Client-authenticationRequired (default: true)
|
|
Client-unAuthenticatedUserRole (default: 'Admin')
|
|
Client-Media-Thumbnail-iconSize (default: 45)
|
|
Client-Media-Thumbnail-personThumbnailSize (default: 200)
|
|
Client-Media-Thumbnail-thumbnailSizes (default: [240,480])
|
|
Client-Media-Video-enabled (default: true)
|
|
Client-Media-Photo-Converting-enabled (default: true)
|
|
Client-MetaFile-enabled (default: true)
|
|
Client-Faces-enabled (default: true)
|
|
Client-Faces-keywordsToPersons (default: true)
|
|
Client-Faces-writeAccessMinRole (default: 'Admin')
|
|
Client-Faces-readAccessMinRole (default: 'User')
|
|
```
|
|
|
|
### `config.json` sample:
|
|
```json
|
|
{
|
|
"Server": {
|
|
"sessionSecret": [],
|
|
"port": 80,
|
|
"host": "0.0.0.0",
|
|
"Media": {
|
|
"//[folder]": "Images are loaded from this folder (read permission required)",
|
|
"folder": "demo/images",
|
|
"//[tempFolder]": "Thumbnails, coverted photos, videos will be stored here (write permission required)",
|
|
"tempFolder": "demo/tmp",
|
|
"Video": {
|
|
"transcoding": {
|
|
"bitRate": 5242880,
|
|
"resolution": 720,
|
|
"fps": 25,
|
|
"codec": "libx264",
|
|
"format": "mp4",
|
|
"//[crf]": "Constant Rate Factor. The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.",
|
|
"crf": 23,
|
|
"//[preset]": "A preset is a collection of options that will provide a certain encoding speed to compression ratio",
|
|
"preset": "medium",
|
|
"//[customOptions]": "It will be sent to ffmpeg as it is, as custom options.",
|
|
"customOptions": []
|
|
}
|
|
},
|
|
"Photo": {
|
|
"Converting": {
|
|
"//[onTheFly]": "Converts photos on the fly, when they are requested.",
|
|
"onTheFly": true,
|
|
"resolution": 1080
|
|
}
|
|
},
|
|
"Thumbnail": {
|
|
"//[qualityPriority]": "if true, photos will have better quality.",
|
|
"qualityPriority": true,
|
|
"personFaceMargin": 0.6
|
|
}
|
|
},
|
|
"Threading": {
|
|
"//[enabled]": "App can run on multiple thread",
|
|
"enabled": true,
|
|
"//[thumbnailThreads]": "Number of threads that are used to generate thumbnails. If 0, number of 'CPU cores -1' threads will be used.",
|
|
"thumbnailThreads": 0
|
|
},
|
|
"Database": {
|
|
"type": "sqlite",
|
|
"dbFolder": "db",
|
|
"sqlite": {
|
|
"DBFileName": "sqlite.db"
|
|
},
|
|
"mysql": {
|
|
"host": "localhost",
|
|
"port": 3306,
|
|
"database": "pigallery2",
|
|
"username": "",
|
|
"password": ""
|
|
}
|
|
},
|
|
"Sharing": {
|
|
"updateTimeout": 300000
|
|
},
|
|
"//[sessionTimeout]": "unit: ms",
|
|
"sessionTimeout": 604800000,
|
|
"Indexing": {
|
|
"cachedFolderTimeout": 3600000,
|
|
"reIndexingSensitivity": "low",
|
|
"//[excludeFolderList]": "If an entry starts with '/' it is treated as an absolute path. If it doesn't start with '/' but contains a '/', the path is relative to the image directory. If it doesn't contain a '/', any folder with this name will be excluded.",
|
|
"excludeFolderList": [
|
|
".Trash-1000",
|
|
".dtrash",
|
|
"$RECYCLE.BIN"
|
|
],
|
|
"//[excludeFileList]": "Any folder that contains a file with this name will be excluded from indexing.",
|
|
"excludeFileList": []
|
|
},
|
|
"//[photoMetadataSize]": "only this many bites will be loaded when scanning photo for metadata",
|
|
"photoMetadataSize": 524288,
|
|
"Duplicates": {
|
|
"listingLimit": 1000
|
|
},
|
|
"Log": {
|
|
"level": "info",
|
|
"sqlLevel": "error"
|
|
},
|
|
"Jobs": {
|
|
"//[maxSavedProgress]": "Job history size",
|
|
"maxSavedProgress": 10,
|
|
"scheduled": [
|
|
{
|
|
"name": "Indexing",
|
|
"jobName": "Indexing",
|
|
"config": {},
|
|
"allowParallelRun": false,
|
|
"trigger": {
|
|
"type": "never"
|
|
}
|
|
},
|
|
{
|
|
"name": "Thumbnail Generation",
|
|
"jobName": "Thumbnail Generation",
|
|
"config": {
|
|
"sizes": [
|
|
240
|
|
],
|
|
"indexedOnly": true
|
|
},
|
|
"allowParallelRun": false,
|
|
"trigger": {
|
|
"type": "after",
|
|
"afterScheduleName": "Indexing"
|
|
}
|
|
},
|
|
{
|
|
"name": "Photo Converting",
|
|
"jobName": "Photo Converting",
|
|
"config": {
|
|
"indexedOnly": true
|
|
},
|
|
"allowParallelRun": false,
|
|
"trigger": {
|
|
"type": "after",
|
|
"afterScheduleName": "Thumbnail Generation"
|
|
}
|
|
},
|
|
{
|
|
"name": "Video Converting",
|
|
"jobName": "Video Converting",
|
|
"config": {
|
|
"indexedOnly": true
|
|
},
|
|
"allowParallelRun": false,
|
|
"trigger": {
|
|
"type": "after",
|
|
"afterScheduleName": "Photo Converting"
|
|
}
|
|
},
|
|
{
|
|
"name": "Temp Folder Cleaning",
|
|
"jobName": "Temp Folder Cleaning",
|
|
"config": {
|
|
"indexedOnly": true
|
|
},
|
|
"allowParallelRun": false,
|
|
"trigger": {
|
|
"type": "after",
|
|
"afterScheduleName": "Video Converting"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Client": {
|
|
"applicationTitle": "PiGallery 2",
|
|
"publicUrl": "",
|
|
"urlBase": "",
|
|
"Search": {
|
|
"enabled": true,
|
|
"searchCacheTimeout": 3600000,
|
|
"AutoComplete": {
|
|
"enabled": true,
|
|
"maxItemsPerCategory": 5,
|
|
"cacheTimeout": 3600000
|
|
},
|
|
"maxMediaResult": 2000,
|
|
"maxDirectoryResult": 200
|
|
},
|
|
"Sharing": {
|
|
"enabled": true,
|
|
"passwordProtected": true
|
|
},
|
|
"Map": {
|
|
"enabled": true,
|
|
"useImageMarkers": true,
|
|
"mapProvider": "OpenStreetMap",
|
|
"mapboxAccessToken": "",
|
|
"customLayers": [
|
|
{
|
|
"name": "street",
|
|
"url": ""
|
|
}
|
|
]
|
|
},
|
|
"RandomPhoto": {
|
|
"enabled": true
|
|
},
|
|
"Other": {
|
|
"enableCache": true,
|
|
"enableOnScrollRendering": true,
|
|
"defaultPhotoSortingMethod": "ascDate",
|
|
"enableOnScrollThumbnailPrioritising": true,
|
|
"NavBar": {
|
|
"showItemCount": true
|
|
},
|
|
"captionFirstNaming": false
|
|
},
|
|
"authenticationRequired": true,
|
|
"unAuthenticatedUserRole": "Admin",
|
|
"Media": {
|
|
"Thumbnail": {
|
|
"iconSize": 45,
|
|
"personThumbnailSize": 200,
|
|
"thumbnailSizes": [
|
|
240,
|
|
480
|
|
]
|
|
},
|
|
"Video": {
|
|
"enabled": true
|
|
},
|
|
"Photo": {
|
|
"Converting": {
|
|
"enabled": true
|
|
}
|
|
}
|
|
},
|
|
"MetaFile": {
|
|
"enabled": true
|
|
},
|
|
"Faces": {
|
|
"enabled": true,
|
|
"keywordsToPersons": true,
|
|
"writeAccessMinRole": "Admin",
|
|
"readAccessMinRole": "User"
|
|
}
|
|
}
|
|
}
|
|
```
|