-
Notifications
You must be signed in to change notification settings - Fork 404
Full Config Example
Graham Steffaniak edited this page May 1, 2025
·
43 revisions
Starting with v0.6.8, 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.
I understand this can be annoying, because it means a config that worked before may not run anymore. However, once you get your config.yaml validated and working, any future changes should have a much better experience because of this.
Since most configs will probably not work as-is anymore, I decided to take this opportunity to also move some keys into more appropriate locations.
To help with this, I wanted to provide a full config example that works in v0.6.8:
# Authentication settings
auth:
tokenExpirationHours: 24
methods:
proxy:
enabled: false # Whether proxy auth is enabled
createUser: false # Create user if not exists
header: "X-Auth-User" # Header to look for user
noauth: false # Whether to enable no-auth mode
password:
enabled: true # Enable password auth
minLength: 8 # Minimum password length (min=5)
signup: true # Enable user signup
# OpenID Connect settings
oidc:
enabled: false # Enable OIDC
clientId: "client-id" # OIDC client ID (required)
clientSecret: "secret" # OIDC secret (required)
authorizationUrl: "https://auth.example.com/auth" # (required)
tokenUrl: "https://auth.example.com/token" # (required)
userInfoUrl: "https://auth.example.com/userinfo" # (required)
scopes: "openid email profile" # (required)
userIdentifier: "email" # Username field (email, sub, etc.)
jwksUrl: "" # JWKS URL (optional)
key: "supersecretkey" # HMAC key for tokens
adminUsername: "admin" # Admin username
adminPassword: "adminpass" # Admin password
# Server settings
server:
numImageProcessors: 4
socket: ""
tlsKey: "/path/to/key.pem"
tlsCert: "/path/to/cert.pem"
disablePreviews: false
resizePreviews: true
disableTypeDetectionByHeader: false
port: 8080
baseURL: "/"
logging:
- levels: "info"
apiLevels: "warn"
output: "stdout"
noColors: false
json: false
database: "bolt"
sources:
- path: "/srv"
name: "default"
config:
indexingInterval: 60
disabled: false
maxWatchers: 128
neverWatchPaths: []
ignoreHidden: true
ignoreZeroSizeFolders: true
exclude:
files: []
folders: []
fileEndsWith: []
include:
files: []
folders: []
fileEndsWith: []
defaultUserScope: ""
defaultEnabled: true
createUserDir: true
externalUrl: "https://example.com"
internalUrl: "http://internal.service"
cacheDir: "/tmp/cache"
maxArchiveSize: 2
# Frontend settings
frontend:
name: "filebrowser"
disableDefaultLinks: false
disableUsedPercentage: false
externalLinks:
- text: "Docs"
title: "Documentation"
url: "https://docs.example.com"
# Integrations
integrations:
office:
url: "https://onlyoffice.example.com"
secret: "onlyoffice-secret"
media:
ffmpegPath: "/usr/bin/ffmpeg"
# User defaults
userDefaults:
stickySidebar: true
darkMode: false
lockPassword: true
disableSettings: false
locale: "en"
viewMode: "list"
gallerySize: 150
singleClick: true
showHidden: false
dateFormat: false
themeColor: "#3B82F6"
quickDownload: true
disableOnlyOfficeExt: "docx"
preview:
# replace with actual preview options
permissions:
# replace with actual permissions
-
numImageProcessors: This is the number of image processors available. Default:4 -
socket: This is the socket configuration. -
tlsKey: This is the TLS key configuration. -
tlsCert: This is the TLS certificate configuration. -
enableThumbnails: This boolean value determines whether thumbnails are enabled on ui. Default:true -
resizePreview: This boolean value determines whether preview resizing is enabled. Default:false -
port: This is the port number on which the server is running. Default:80 -
baseURL: This is the base URL for the server. Default:"" -
database: This is the database file path + filename that will be created if it does not already exist. If it exists, it will use the existing file. Defaultdatabase.db -
externalUrl: String to define a domain andbaseURLfor shared links to use. Examplehttps://mydomain.com/. If you have a baseUrl set as "/filebrowser", you'll want to include that on the external URLhttps://mydomain.com/filebrowser. Default:"" -
internalUrl: String to define a domain and potentially additionalbaseURLfor internal integrations to use instead for faster communication. Example "https://192.168.1.100/". Default:"" -
cacheDir: If path is defined here, that directory will be used to store file cache. -
sources: list of sources to use, if nothing is provided it defaults to the current running directory. See example configuration above. -
maxArchiveSize: the max combined total size of all files before compressing in GB. This prevents users from crashing the server by creating enormous archives that could exceed the available storage space. Default:50
-
adminUsername: This is the username of the admin user. Default:admin -
adminPassword: This is the password of the admin user. Default:admin -
tokenExpirationHours: this is the time in hours that the web token expires and needs renewing. Does not apply to API tokens. Default:2 -
methods: see Example auth config for method configuration help.-
methods.password.recaptcha:-
host: This is the host for reCAPTCHA. -
key: This is the reCAPTCHA key. -
secret: This is the reCAPTCHA secret.
-
-
methods.password.signup: This boolean value indicates whether user signup is enabled on the login page. NOTE: Be mindful ofuserDefaultssettings if enabled. Default:false
-
-
name: This is the name of the frontend. -
disableExternal: This boolean value determines whether external access is disabled. -
disableUsedPercentage: This boolean value determines whether the used percentage is disabled or not. -
theme: This is the theme configuration. -
color: This is the color configuration.
-
darkMode: Determines whether dark mode is enabled for the user (trueorfalse) -
settingsAllowed: Determines whether settings page is enabled for the user (trueorfalse) -
locale: String locale configuration. Default:en -
viewMode: This is the view mode configuration. Possible values:normal,compact,list, andgallery. default:normal -
singleClick: This boolean value determines whether single-click is enabled. (trueorfalse) -
permissions:-
admin: This boolean value determines whether admin permissions are granted. -
modify: This boolean value determines whether modify permissions are granted. -
share: This boolean value determines whether share permissions are granted. -
api: Ability to create and manage API keys.
-
-
showHidden: true/false value. Defaults to false and can be updated in the user settings. Windows hidden file properties are only supported when running the windows executable, because it relies on windows system calls. -
dateFormat: This boolean value determines whether date formatting is enabled. (trueorfalse) -
gallerySize: integer from 0-9 indicating smaller to larger gallery size. Defaults to 3. -
ThemeColor: user specified theme color, defaults toblue, can also bered,green,violet,yellowororange -
quickDownload: Always show the download button on files/folders in the listing view. Default:false -
disableOnlyOfficeExt: A string of extensions to default disable onlyoffice editor for (using regular editor instead). Default:".txt .csv .html"