-
Notifications
You must be signed in to change notification settings - Fork 94
Expand file tree
/
Copy pathgallery.config-example.yml
More file actions
459 lines (448 loc) · 12.6 KB
/
gallery.config-example.yml
File metadata and controls
459 lines (448 loc) · 12.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
# yaml-language-server: $schema=https://raw.githubusercontent.com/xemle/home-gallery/master/gallery.config.schema.json
#
# HomeGallery configuration file
#
# Default configuration file is gallery.config.yml.
# JSON format is also supported (gallery.config.json)
#
# Directory value examples:
# - /absolute/directory
# - relative/directory/to/current/working/dir
# - ~/directory/in/your/home
# - ./relative/directory/to/configuration/file
#
# Variable replacement example:
#
# baseDir: '~'
# configDir: '{baseDir}/.config/home-gallery'
#
# configDir is replaced to '~/.config/home-gallery' and than to '$HOME/.config/home-gallery'
#
# Variables are overwritten by environment variables
#
# Variables are baseDir, configDir, configPrefix, cacheDir and dir in sources
# or environment variables GALLERY_BASE_DIR, GALLERY_CONFIG_DIR, GALLERY_CONFIG_PREFIX, GALLERY_CACHE_DIR
#
# Base directory
#
# default: ~
#baseDir: ~
# default: '{baseDir}/.config/home-gallery'
#configDir: '{baseDir}/.config/home-gallery'
# file prefix for index, database and events
#
# default: ''
#configPrefix: ''
# Cache directory for storage directory and other cache files
#
# default: '{baseDir}/.cache/home-gallery'
#cacheDir: '{baseDir}/.cache/home-gallery'
#
# Sources
#
# List of media source directories. These can be read only.
#
# All sources are used to build the gallery database. If you need
# different databases or gallery instances use different gallery
# configurations
#
# default: []
#
#sources:
# Simple source directory with default settings
#- /home/me/Photos
# Source directory with custom settings
# [dir property] Path of source directory
#- dir: /home/me/Photos
# Index filename which must be unique
#
# For directory /mnt/photos the index file is {configDir}/photos.idx
# If two sources have the same index file an error is raised
#
# default: '{configDir}/{configPrefix}{basename(dir)}.idx'
#index: '{configDir}/{configPrefix}{basename(dir)}.idx'
#
# All files and subdirectories are included by default.
# Set exclude patterns to ignore some files or foldes.
# Last match wins
#
# Exclude patterns are using gitignore patterns (see https://git-scm.com/docs/gitignore)
#
# To include only one subdirectory you need to use:
# - ** # exclude/ignores everything
# - !/dir # include dir name
# - !/dir/** # include everything below /dir
#
#excludes:
# examples:
# * '.DS_Store'
# * '._*'
# * "'*.tmp'"
# * "'*cache*'"
#- '.DS_Store'
# Read exclude patterns from file (one pattern per line)
#excludeFromFile: '{configDir}/excludes'
# If a file with this name is present in a directory, the this directory is excluded
#
# default: '.galleryignore'
#excludeIfPresent: '.galleryignore'
# Exclude big files such as videos to speedup initial setup
#
# examples:
# * '20M'
# * '1G'
#maxFileSize: '20M'
# If source directory/disk is offline/unmounted set it to true.
# Offline sources require an index file. Previews and meta data
# should be extracted first before marking a source offline
#offline: true
# Allows the original files to be downloaded via de webapp.
# This adds a link to images of this source in the details view.
# Sources set as `offline` won't be made available
#downloadable: true
# File matcher for checksum recalculation and detecting file changes
#
# default: size-ctime-inode
# size-ctime-inode matcher should be used if possible,
# might not work on windows
#matcher: size-ctime-inode
# size-ctime matcher should be used if stable fs inodes are
# not available and might not work for fuse shares
#matcher: size-ctime
# size matcher should be used if you know what you are doing
#matcher: size
# Extractor settings
#extractor:
# Exclude file patterns
#excludes:
#- ...any string
# Read exclude patterns from file
#excludeFromFile: '{configDir}/excludes'
#image:
# default: [1920,1280,800,320,128]
#previewSizes:
#- ...any number
# default: 80
#previewQuality: 80
#video:
# used as preview size and preview filename
#
# default: 720
#previewSize: 720
# used as target video container and preview filename
#
# default: mp4
#ext: mp4
# overwrites previewSize.
# E.g. -2:'min(ih,max(720,min(1080,ih*.5)))' for 720p <= height*0.5 <= 1080p or height, if height < 720
#
# default: "-2:'min(720,ih)'"
#scale: "-2:'min(720,ih)'"
# default: 30
#frameRate: 30
# default: 30
#maxVideoBitRate: 30
# default: libx264
#videoEncoder: libx264
# default: slow
#preset: slow
# default: baseline
#profile: baseline
# default: '3.0'
#level: '3.0'
# Additional ffmpeg args
#addFfmpegArgs:
#- ...any string
# custom ffmpeg args for video conversion, replaces all other settings such previewSize, videoEncoder, addFfmpegArgs, ...
#customFfmpegArgs:
#- ...any string
#apiServer:
# URL of the API server
#
# In docker compose this is overwritten by GALLERY_API_SERVER env
#
# default: 'https://api.home-gallery.org'
#url: 'https://api.home-gallery.org'
# Timeout in seconds for each API request
#
# default: 30
#timeout: 30
# Concurrent requests to API server
#
# If you use a low power device you should reduce this value to 3
#
# default: 30
#concurrent: 30
#disable:
#- similarDetection
#- objectDetection
#- faceDetection
#geoReverse:
# default: 'https://nominatim.openstreetmap.org'
#url: 'https://nominatim.openstreetmap.org'
#
# Preffered address language of geo code reverse lookups
#
# default: ["en","de"]
#addressLanguage:
#- ...any string
#useNative:
# use libvips to resize images
#- vipsthumbnail
# use ImageMagick to resize images
#- convert
# Use ffprobe/ffmpeg from system
#- ffprobe
#- ffmpeg
# Storage settings
#storage:
# default: '{cacheDir}/storage'
#dir: '{cacheDir}/storage'
#database:
# default: '{configDir}/{configPrefix}database.db'
#file: '{configDir}/{configPrefix}database.db'
# The full database creation is memory consuming. The default value is 2048 MB.
# On memory errors or for larger photo collections (>50000 images) 4096 MB is recommended
# Use less memory for smaller devices (e.g. Raspberry Pi Zero), e.g. 512 MB.
# Node's default memory limit is 512 MB (changeable via --max-old-space-size node arg)
#maxMemory: 2048
# examples:
# * '*.xmp'
# * '*.svg'
#excludes:
#- ...any string
#excludeFromFile: '{configDir}/excludes'
#supportedTypes: image # one of: image, rawImage, video
#events:
# default: '{configDir}/{configPrefix}events.db'
#file: '{configDir}/{configPrefix}events.db'
#server:
# default: 3000
#port: 3000
# default: '0.0.0.0'
#host: '0.0.0.0'
# Optional https certificate key
#key: '{configDir}/server.key'
# Optional https certificate
#cert: '{configDir}/server.crt'
# Prefix of application, including basePath of http page
#prefix: /gallery
# Prefix path for browser only. basePath is Overwritten by prefix
# Use this if you use prefix by a http proxy which strips the prefix to / towards the gallery app
#basePath: /
# The public URL of the gallery instance
#publicUrl: 'https://acme.com/gallery'
# Open browser when server starts
#openBrowser: true
# Enable basic authentication users and ip whitelist rules which require no authentication
#auth:
#public:
# Database filter for anonymous users
#filter: 'year >= 2024 tag:public'
#
# Passwords can be in plain text, {SHA} or {SHA256-salted}.
#
# Hashed password can be generated via
# node -e "pw=process.argv[1];const {createHash,randomBytes}=require('crypto');salt=randomBytes(12);hash=createHash('sha256').update(salt.toString()+pw).digest('base64');console.log('{SHA256-salted}'+salt.toString('base64')+'.'+hash)" 'password'
# {SHA256-salted}FkcbhhcHYW0DdE9u.P9Ik9MG8ldtO0fzGB+RV186vi8PZMomsya5OWC0AEiA=
# node -e "pw=process.argv[1]||'';sha1=require('crypto').createHash('sha1').update(pw).digest('base64');console.log('{SHA}'+sha1)" password
# {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
#
#users:
# Simple username:password pair
#- johndoe: s3cr3t
# User object with dedicated username, password properties
#- username: guest
#password: '{SHA256-salted}W1jrZgK81z06YLhA.qTSmeyYtPP19ZEpGiiAyVn61nly4jqbuuGoSefzLm98='
# Database filter for the user
#filter: 'year >= 2019 not tag:private'
#
# Rules when the request need authentication
# First matching rule wins.
#
# For public gallery use
# rules:
# - allow: localhost
# - deny: all
#
#rules:
# [allow property] Allow rules without authentication like localhost
#
# examples:
# * all
# * localhost
# * '192.168/16'
#- allow: all
# [deny property] Deny rules which hosts requires authentication like all
#
# examples:
# * all
# * localhost
# * '192.168/16'
#- deny: all
# Import sources on server start
#
# default: true
#importSources: true
# Watch sources and import files on changes
#
# default: true
#watchSources: true
#api:
#tree:
# default: 4
#monthGroupSize: 4
# default: 4
#ignoreRecentYears: 4
# Configuration for webapp module
#webapp:
# Title of the webapp
#
# default: 'Home Gallery'
#title: 'Home Gallery'
#pluginManager:
#
# List of plugin urls to load
#
# default: []
#plugins:
#- ...any string
#
# List of feature flags to disable. By default all features are enabled.
#
# The feature flags can also be disabled by query param 'disabled'
#
# default: []
#disabled:
# Flags for edition tags
#- serverEvents
#- events
#- edit
# Disable database loading and use embedded entries only
#- database
# Enable progressive web application support
#- pwa
# Recommended performance features. Disable them on local dev issues
#- offlineDatabase
#- worker
#- ...any string
#
# List of downloadable media sources. This list will be injected from the server
#
# default: []
#sources:
# [downloadable property] default: false
#- downloadable: false
#indexName: ""
#
# Customize pages
#
# default: []
#pages:
#disabled:
#- edit
#- date
#- video
#- map
#- tag
#- ...any string
#
# Customize single media view
#
# default: []
#mediaView:
#disabled:
#- detail
#- map
#- similar
#- annotation
#- edit
#- tag
# Disables navigation to overview, prev and next
#- nav
#
# Date format as in linux date command
# %b month name
# %d day of month, eg 01
# %m month, eg 12
# %Y 4 full year, eg 2025
# %y 2-digit year, eg 25
# %a short weekday name, eg. Mon
# %A full weekday name, eg. Monday
# %H hour eg 18
# %I hour eg 06 (12-hour clock)
# %p am/AM
# %P AM/PM
# %M minute, eg 06
# %S seconds, eg 45
#
# default: []
#
#format:
# Date format
#
# default: '%d.%m.%Y'
#date: '%d.%m.%Y'
# Month year format
#
# default: '%b %Y'
#monthYear: '%b %Y'
# Year format
#
# default: '%Y'
#year: '%Y'
# time format
#
# default: '%H:%M:%S'
#time: '%H:%M:%S'
# time format with hour and minute
#
# default: '%H:%M'
#hourMinute: '%H:%M'
# Plugin manager settings
#pluginManager:
#
# Load plugins from following directories.
#
# Each file or directory is handled as plugin
#
# example:
# * plugins
#
#dirs:
#- ...any string
#
# List of dedicated plugin files
#
# example:
# * './my-plugin'
#plugins:
#- ...any string
#
# Disable plugins by name or by name.extension
#
# examples:
# * acmePlugin
# * acmePlugin.exentionName
#disabled:
#- ...any string
# Logger settings
#logger:
# Console logger
#- type: console
# Log level
#
# default: info
#level: info # one of: trace, debug, info, warn, error, fatal, silent
# Use newline delimited JSON if format is set to json
#format: json
# File logger
#- type: file
# Log level
#
# default: debug
#level: debug # one of: trace, debug, info, warn, error, fatal, silent
# Log file path
#
# File logger format is in newline delimited JSON. See http://ndjson.org
#file: '{configDir}/{configPrefix}gallery.log'