-
Notifications
You must be signed in to change notification settings - Fork 404
Full Config Example
Graham Steffaniak edited this page May 13, 2025
·
43 revisions
A config needs to be validated using a few simple rules:
- Invalid fields are no longer supported; this helps spot typos. For example, if you type
userdefaultsinstead ofuserDefaults, it will let you know rather than ignoring all of your userDefault settings you intended to set. - required fields, such as
server.sourcesand different keys based on the settings that you add. - some additional light validation, such as min values for things like
minLengthfor password config if provided.
Note: you can view the current full config output by going to
{basePath}/static/config.generated.yamlwith an authenticated user.
server:
numImageProcessors: 0 # "number of concurrent image processing jobs"
socket: "" # "socket to listen on"
tlsKey: "" # "path to TLS key"
tlsCert: "" # "path to TLS cert"
disablePreviews: false # "disable all previews thumbnails, simple icons will be used"
disablePreviewResize: false # "disable resizing of previews for faster loading over slow connections"
disableTypeDetectionByHeader: false # "disable type detection by header, useful if filesystem is slow."
port: 0 # "port to listen on"
baseURL: "" # "base URL for the server, the subpath that the server is running on."
logging:
- levels: "" # "separated list of log levels to enable. (eg. "info|warning|error|debug")"
apiLevels: "" # "separated list of log levels to enable for the API. (eg. "info|warning|error")"
output: "" # "output location. (eg. "stdout" or "path/to/file.log")"
noColors: false # "disable colors in the output"
json: false # "output in json format, currently not supported"
database: "" # "path to the database file"
sources: # validate:required,dive
- path: "" # "file system path. (Can be relative)" validate:required
name: "" # "display name"
config:
indexingInterval: 0 # "optional manual overide interval in seconds to re-index the source"
disabled: false # "disable the indexing of this source"
maxWatchers: 0 # "number of concurrent watchers to use for this source, currently not supported"
neverWatchPaths: []
ignoreHidden: false # "ignore hidden files and folders."
ignoreZeroSizeFolders: false # "ignore folders with 0 size"
exclude: # "exclude files and folders from indexing, if include is not set"
files: []
folders: []
fileEndsWith: []
include: # "include files and folders from indexing, if exclude is not set"
files: []
folders: []
fileEndsWith: []
defaultUserScope: "" # "default "/" should match folders under path"
defaultEnabled: false # "should be added as a default source for new users?"
createUserDir: false # "create a user directory for each user"
externalUrl: "" # "used by share links if set"
internalUrl: "" # "used by integrations if set, this is the url that an integration service will use to communicate with filebrowser"
cacheDir: "" # "path to the cache directory, used for thumbnails and other cached files"
maxArchiveSize: 0 # "max pre-archive combined size of files/folder that are allowed to be archived (in GB)"
auth:
tokenExpirationHours: 0 # "the number of hours until the token expires. Default is 2 hours."
methods:
proxy: # validate:omitempty
enabled: false
createUser: false # "create user if not exists"
header: "" # "required header to use for authentication. Security Warning: FileBrowser blindly accepts the header value as username."
noauth: false # "if set to true, overrides all other auth methods and disables authentication"
password: # validate:omitempty
enabled: false
minLength: 0 # validate:omitempty,min=5
signup: false # "currently not used by filebrowser" validate:omitempty
recaptcha: # "recaptcha config, only used if signup is enabled" validate:omitempty
host: "" # validate:required
key: "" # validate:required
secret: "" # validate:required
oidc: # validate:omitempty
enabled: false # "whether to enable OIDC authentication"
clientId: "" # "client id of the OIDC application" validate:required
clientSecret: "" # "client secret of the OIDC application" validate:required
authorizationUrl: "" # "authorization URL of the OIDC provider" validate:required
tokenUrl: "" # "token URL of the OIDC provider" validate:required
userInfoUrl: "" # "user info URL of the OIDC provider" validate:required
scopes: "" # "space separated list of scopes to request from the OIDC provider" validate:required
userIdentifier: "" # "optional: which attribute should be used as the username? options: email, username, name, phone_number, sub"
jwksUrl: "" # "currently not used by filebrowser"
key: "" # "the key used to sign the JWT tokens. If not set, a random key will be generated."
adminUsername: "" # "the username of the admin user. If not set, the default is "admin"."
adminPassword: "" # "the password of the admin user. If not set, the default is "admin"."
resetAdminOnStart: false # "if set to true, the admin user will be reset to the default username and password on startup."
frontend:
name: "" # "display name"
disableDefaultLinks: false # "disable default links in the sidebar"
disableUsedPercentage: false # "disable used percentage for the sources in the sidebar"
externalLinks:
- text: "" # "the text to display on the link" validate:required
title: "" # "the title to display on hover"
url: "" # "the url to link to" validate:required
userDefaults:
preview:
highQuality: false
image: false
video: false
motionVideoPreview: false
office: false
popup: false
stickySidebar: false
darkMode: false
lockPassword: false
disableSettings: false
locale: ""
viewMode: ""
gallerySize: 0
singleClick: false
permissions:
api: false
admin: false
modify: false
share: false
realtime: false
showHidden: false
dateFormat: false
themeColor: ""
quickDownload: false
disableOnlyOfficeExt: ""
integrations:
office: # validate:omitempty
url: "" # "The URL to the OnlyOffice Document Server, needs to be accessible to the user." validate:required
internalUrl: "" # "An optional internal address that the filebrowser server can use to communicate with the OnlyOffice Document Server, could be useful to bypass proxy."
secret: "" # validate:required
media: # validate:omitempty
ffmpegPath: "" # "path to ffmpeg directory with ffmpeg and ffprobe (eg. /usr/local/bin)"