Configuration Options
INFO
Jarklin requires an existing configuration file in the current directory to start. (More information)
TIP
Use the wizard to create your config. The wizard should be more than enough for the average user. Only if you need more specialisation or optimization you should look here.
webeverything related to the web-server
web.debugWARNING
debug-mode is only if you know what you are doing. Better you don't touch this
type:
boolean
web.baseurlwhich baseurl to use in case you host multiple services on you device
has to start with
/eg:
/jarklintype:
string
web.serverjarklin uses waitress to serve the backend. All arguments are passed directly to
waitress.serve. (See all Arguments)WARNING
web.server.host&web.server.port,web.server.listenandweb.server.unix_socketare mutually exclusive
web.server.threadsnumber of threads to process requests
eg:
4,6type:
integer
web.server.hostwhich network interface to bind to
TIP
you can use
*as a wildcard for all available interfaceseg:
localhost,127.0.0.1,0.0.0.0type:
string
web.server.portwhich port to serve on
eg:
3000,5000,5050,8000,8080type:
integer
web.server.listenlisten on combinations of host:port arguments. Combinations should be a quoted, space-delimited list, as in the following examples.
eg:
127.0.0.1:8080 [::1]:8080,*:8080 *:6543type:
string
web.server.unix_socketUnix-Domain-Socket path to bind to
eg:
/tmp/jarklin.socktype:
string
web.server.threadsbasically the number of requests that can be concurrently processed
TIP
Browsers send around 6 requests at once. So the value should be set a bit higher to allow multiple clients at once.
eg:
4,6type:
integer
web.sessionrelated to
web.authand specifies how long a session stays
web.session.permanentif a session should be invalidated when the browser closes
eg:
yes,notype:
boolean
web.session.lifetimehow long a session is kept (in seconds) before the user has to log-in again.
INFO
note: only useful if
web.session.permanentis enabledeg:
3600(1 hour),86400(1 day),604800(1 week),2678400(1 month)type:
integer
web.session.refresh_each_requestIf the lifetime should be reset after each request.
eg:
yes,notype:
boolean
web.authAuthentication related options. Without this, everyone can visit the website and see the content.
web.auth.username/web.auth.passwordShould be pretty self-explanatory
type:
string
web.auth.userpasspath to an userpass file. Each line contains a
username:passwordpairtype:
string(path)
web.gzipWhether to gzip the content. Reduces the response-size of text-based responses on cost of CPU-Time.
note: Should be done by the Proxy-Server if possible. Otherwise, this is the option.
eg:
yes,notype:
boolean
web.optimizeAllow media optimization. Enabling this option allows for faster downloads as supported media is just-in-time optimized.
DANGER
Only use this option for a very small user-base as it can take up lots of system-resources.
WARNING
video optimization is currently buggy
eg:
yamlweb: optimize: image: yes video: no video/mkv: yestype:
mapping<mimetype | mimetype/subtype, boolean>
web.proxy_fixTell jarklin that it's behind a Proxy. If this config exists, the default-values are used.
keys:
x_forwarded_for,x_forwarded_proto,x_forwarded_host,x_forwarded_port,x_forwarded_prefixvalue: is the trusted depth
eg:
yamlweb: proxy_fix: x_forwarded_for: 2 # behind two proxies #x_forwarded_proto: 0 #x_forwarded_host: 0 #x_forwarded_port: 0 #x_forwarded_prefix: 0type:
mapping<x_forwarded_for|x_forwarded_proto|x_forwarded_host|x_forwarded_port|x_forwarded_prefix, integer>
cacheEverything related to the cache-generation.
These options can be used to reduce the required amount of disc-space for the cache. If you don't have that problem you can just ignore these options.
cache.gallerycache configuration for galleries
cache.gallery.dimensionsmaximum dimensions for previews
cache.gallery.dimensions.widthmaximum width of previews
type:
integer
cache.gallery.dimensions.heightmaximum height of previews
type:
integer
cache.gallery.animated
cache.gallery.animated.max_imagesmaximum number of images to include into the animated preview
type:
integer
cache.gallery.animated.frame_timeduration for each image in the animated preview
type:
float
cache.videocache configuration for videos
cache.video.dimensionsmaximum dimensions for previews
cache.video.dimensions.widthmaximum width of previews
type:
integer
cache.video.dimensions.heightmaximum height of previews
type:
integer
cache.video.animatedconfiguration for the animated preview
cache.video.animated.scene_lengthduration per scene in the animated preview
type:
integer
cache.video.fpsframes per second for the animated preview
type:
integer
cache.ignoreList of pattern which specify which files or directories should be ignored
eg:
/private/,*.mkvtype:
list<string>
loggingconfigure logging
logging.levelhow detailed the logging messages should be
options:
DEBUG,INFO,WARNING,ERROR,CRITICAL
logging.consolewhether to log to the console or not
eg:
yes,notype:
boolean
logging.filewhether to log to a file
WARNING
logging to a file could be buggy
logging.file.pathlocation of the log-file
type:
string(path)
logging.file.max_bytesmaximum size of a log-file before rotating
type:
integer
logging.file.backup_countnumber of log-files to keep
type:
integer