Skip to content

Full Config Example

Graham Steffaniak edited this page Sep 5, 2025 · 43 revisions

A config needs to be validated using a few simple rules:

  1. Invalid fields are no longer supported; this helps spot typos. For example, if you type userdefaults instead of userDefaults, it will let you know rather than ignoring all of your userDefault settings you intended to set.
  2. required fields, such as server.sources and different keys based on the settings that you add.
  3. some additional light validation, such as min values for things like minLength for password config if provided.

Full Config Example

Note

The values may change between versions. You can view the default full config for the version you are running by going to {basePath}/static/config.generated.yaml with an authenticated user.

server:
  minSearchLength: 3                      # minimum length of search query to begin searching (default: 3)
  disableUpdateCheck: false               # disables backend update check service
  numImageProcessors: 4                   # number of concurrent image processing jobs used to create previews, default is number of cpu cores available.
  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: 80                                # 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: "stdout"                    # 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
      utc: false                          # use UTC time in the output instead of local time
  debugMedia: false                       # output ffmpeg stdout for media integration -- careful can produces lots of output!
  database: "database.db"                 # path to the database file
  sources:                                #  validate:required,dive
    - path: "/relative/or/absolute/path"  # file system path. (Can be relative)  validate:required
      name: "backend"                     # display name
      config:
        denyByDefault: false              # deny access unless an "allow" access rule was specifically created.
        private: false                    # designate as source as private -- currently just means no sharing permitted.
        disabled: false                   # disable the source, this is useful so you don't need to remove it from the config file
        indexingIntervalMinutes: 0        # optional manual overide interval in minutes to re-index the source
        disableIndexing: false            # disable the indexing of this source
        maxWatchers: 0                    # number of concurrent watchers to use for this source, currently not supported
        neverWatchPaths: []
        exclude:                          # exclude files and folders from indexing, if include is not set
          hidden: false                   # exclude hidden files and folders.
          ignoreZeroSizeFolders: false    # ignore folders with 0 size
          filePaths: []
          folderPaths: []
          fileNames: []
          folderNames: []
          fileEndsWith: []
          folderEndsWith: []
        include:                          # include files and folders from indexing, if exclude is not set
          rootFolders: []
          rootFiles: []
        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 (eg. http://mydomain.com)
  internalUrl: ""                         # used by integrations if set, this is the base domain that an integration service will use to communicate with filebrowser (eg. http://localhost:8080)
  cacheDir: "tmp"                         # path to the cache directory, used for thumbnails and other cached files
  maxArchiveSize: 50                      # max pre-archive combined size of files/folder that are allowed to be archived (in GB)
auth:
  tokenExpirationHours: 2                 # time in hours each web UI session token is valid for. 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.
      logoutRedirectUrl: ""               # if provider logout url is provided, filebrowser will also redirect to logout url. Custom logout query params are respected.
    noauth: false                         # if set to true, overrides all other auth methods and disables authentication
    password:                             #  validate:omitempty
      enabled: true
      minLength: 5                        # minimum pasword length required, default is 5.  validate:omitempty
      signup: false                       # allow signups on login page if enabled -- not secure.  validate:omitempty
      recaptcha:                          # recaptcha config, only used if signup is enabled  validate:omitempty
        host: ""                          #  validate:required
        key: ""                           #  validate:required
        secret: ""                        #  validate:required
      enforcedOtp: false                  # if set to true, TOTP is enforced for all password users users. Otherwise, users can choose to enable TOTP.
    oidc:                                 #  validate:omitempty
      enabled: false                      # whether to enable OIDC authentication
      clientId: "**hidden**"              # secret: client id of the OIDC application
      clientSecret: "**hidden**"          # secret: client secret of the OIDC application
      issuerUrl: ""                       # authorization URL of the OIDC provider
      scopes: "openid email profile"      # scopes to request from the OIDC provider
      userIdentifier: "preferred_username" # the field value to use as the username. Default is "preferred_username", can also be "email" or "username", or "phone"
      disableVerifyTLS: false             # disable TLS verification for the OIDC provider. This is insecure and should only be used for testing.
      logoutRedirectUrl: ""               # if provider logout url is provided, filebrowser will also redirect to logout url. Custom logout query params are respected.
      createUser: false                   # create user if not exists
      adminGroup: ""                      # if set, users in this group will be granted admin privileges.
      groupsClaim: "groups"               # the JSON field name to read groups from. Default is "groups"
  key: "**hidden**"                       # secret: the key used to sign the JWT tokens. If not set, a random key will be generated.
  adminUsername: "**hidden**"             # secret: the username of the admin user. If not set, the default is "admin".
  adminPassword: "**hidden**"             # secret: the password of the admin user. If not set, the default is "admin".
  totpSecret: "**hidden**"                # secret: secret used to encrypt TOTP secrets
frontend:
  name: "FileBrowser Quantum"             # display name
  disableDefaultLinks: false              # disable default links in the sidebar
  disableUsedPercentage: false            # disable used percentage for the sources in the sidebar
  externalLinks:
    - text: "(untracked)"                 # the text to display on the link  validate:required
      title: "untracked"                  # the title to display on hover
      url: "https://github.com/gtsteffaniak/filebrowser/releases/" # the url to link to  validate:required
    - text: "Help"                        # the text to display on the link  validate:required
      title: ""                           # the title to display on hover
      url: "help prompt"                  # the url to link to  validate:required
  disableNavButtons: false                # disable the nav buttons in the sidebar
  styling:
    customCSS: ""                         # if a valid path to a css file is provided, it will be applied for all users. (eg. "reduce-rounded-corners.css")
    lightBackground: "#f5f5f5"            # specify a valid CSS color property value to use as the background color in light mode
    darkBackground: "#141D24"             # Specify a valid CSS color property value to use as the background color in dark mode
    customThemes:                         # A list of custom css files that each user can select to override the default styling. if "default" is key name then it will be the default option.
      default:
        description: "The default theme"  # The description of the theme to display in the UI.
        css: ""                           # The css file path and filename to use for the theme.
      alternative:
        description: "Reduce rounded corners" # The description of the theme to display in the UI.
        css: "reduce-rounded-corners.css" # The css file path and filename to use for the theme.
  favicon: ""                             # path to a favicon to use for the frontend
  description: "FileBrowser Quantum is a file manager for the web which can be used to manage files on your server" # description that shows up in html head meta description
userDefaults:
  editorQuickSave: false                  # show quick save button in editor
  hideSidebarFileActions: false           # hide the file actions in the sidebar
  disableQuickToggles: false              # disable the quick toggles in the sidebar
  disableSearchOptions: false             # disable the search options in the search bar
  stickySidebar: true                     # keep sidebar open when navigating
  darkMode: true                          # should dark mode be enabled
  locale: "en"                            # language to use: eg. de, en, or fr
  viewMode: "normal"                      # view mode to use: eg. normal, list, grid, or compact
  singleClick: false                      # open directory on single click, also enables middle click to open in new tab
  showHidden: false                       # show hidden files in the UI. On windows this includes files starting with a dot and windows hidden files
  dateFormat: false                       # when false, the date is relative, when true, the date is an exact timestamp
  gallerySize: 3                          # 0-9 - the size of the gallery thumbnails
  themeColor: "var(--blue)"               # theme color to use: eg. #ff0000, or var(--red), var(--purple), etc
  quickDownload: false                    # show icon to download in one click
  disablePreviewExt: ""                   # space separated list of file extensions to disable preview for
  disableViewingExt: ""                   # space separated list of file extensions to disable viewing for
  lockPassword: false                     # disable the user from changing their password
  disableSettings: false                  # disable the user from viewing the settings page
  preview:
    disableHideSidebar: false
    highQuality: false
    image: false
    video: false
    motionVideoPreview: false
    office: false
    popup: false
    autoplayMedia: false
    defaultMediaPlayer: false
  permissions:
    api: false
    admin: false
    modify: false
    share: false
    realtime: false
  loginMethod: "password"                 # login method to use: eg. password, proxy, oidc
  disableUpdateNotifications: false       # disable update notifications banner for admin users
  deleteWithoutConfirming: false          # delete files without confirmation
  fileLoading:                            # upload and download settings
    maxConcurrentUpload: 10
    uploadChunkSizeMb: 10
  disableOnlyOfficeExt: ""                # list of file extensions to disable onlyoffice editor for
  customTheme: ""                         # Name of theme to use chosen from custom themes config.
  showSelectMultiple: false               # show select multiple files on desktop
  debugOffice: false                      # debug onlyoffice editor
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: "**hidden**"                  # secret: authentication key for OnlyOffice integration  validate:required
  media:                                  #  validate:omitempty
    ffmpegPath: ""                        # path to ffmpeg directory with ffmpeg and ffprobe (eg. /usr/local/bin)

Clone this wiki locally