What is a Config File?

A configuration file (config file) is a YAML file that defines how FileBrowser Quantum should work. While FileBrowser can run without a config file using default settings, a config file is generally necessary and allows you to customize:

  • Server settings (port, database location, sources)
  • Authentication methods (password, OIDC, proxy)
  • User management and permissions
  • Frontend customization (themes, branding)
  • Media and office integrations

See an example config file on github.

How to Specify a Config File

FileBrowser looks for configuration in the following order of priority:

1. Command Line Argument

./filebrowser -c /path/to/config.yaml

2. Environment Variable

export FILEBROWSER_CONFIG="/path/to/config.yaml"
./filebrowser

3. Default Locations

  • Current directory (./config.yaml)
  • Docker default: /home/filebrowser/data/config.yaml

Docker Configuration

Using Docker Run

# Mount your config file
docker run -d \
  -v /path/to/your/config.yaml:/home/filebrowser/data/config.yaml \
  -v /path/to/your/folder:/folder \
  -p 80:80 \
  gtstef/filebrowser:beta

Using Docker Compose

services:
  filebrowser:
    volumes:
      - '/path/to/folder:/folder'
      - './data:/home/filebrowser/data'
    ports:
      - '80:80'
    image: gtstef/filebrowser
    restart: unless-stopped

Basic Configuration Example

Here’s a minimal config file to get you started:

server:
  sources:
    - path: "/path/to/your/files" # or '/folder' in above example
      config:
        defaultEnabled: true  # Give access to all users by default

auth:
  adminUsername: admin
  adminPassword: admin

Configuration Options

FileBrowser supports extensive configuration options. You can view the complete configuration reference at:

  • Full config example: Configuration Reference
  • Current config: In the web UI, Admins can go to Settings > System & Admin > Load Config

Key Configuration Sections

  • Server Settings: Port, database, sources, caching
  • Authentication: Password, OIDC, proxy authentication
  • Users: User management and permissions
  • Frontend: UI customization, themes, branding
  • Integrations: Media (FFmpeg) and office (OnlyOffice) support

Best Practices

1. Keep It Simple

Only configure the settings you need. A minimal config is easier to read and maintain:

server:
  sources:
    - path: "/data"
      config:
        defaultEnabled: true

auth:
  adminUsername: admin

2. Use Environment Variables for Secrets

Instead of putting secrets in your config file, use environment variables:

# In config.yaml
auth:
  methods:
    oidc:
      enabled: true
      clientId: "${OIDC_CLIENT_ID}"
      clientSecret: "${OIDC_CLIENT_SECRET}"

3. Restart After Changes

Configuration changes require a restart to take effect:

# Stop FileBrowser
# Edit your config.yaml
# Start FileBrowser again
./filebrowser -c config.yaml

Next Steps