Configuration Files (v2.0.0)
Upgrading from v1.x?
v2.0.0 removes deprecated flat config formats and moves HTTP settings from server to http. Use the config migration tool and follow the v2 migration guide before upgrading.
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
| |
2. Environment Variable
3. Environment variable substitution in YAML
After the config file is loaded, string values in config.yaml may reference process environment variables using $VAR or ${VAR}. Expansion runs on the decoded YAML tree, so secrets can contain characters that would break unquoted YAML.
When a scalar is only a single $VAR or ${VAR} reference, the expanded value may be coerced to a boolean or number when unambiguous (for example port: ${PORT}). Partial substitutions and ordinary strings stay strings.
Named FILEBROWSER_* variables in Environment variables still override matching config keys after expansion. Prefer those variables or ${VAR} in YAML for secrets rather than plaintext in the file.
4. Default Locations
- Current directory (
./config.yaml) - Docker default:
/home/filebrowser/data/config.yaml
Database Path Configuration
The database path is configured under server.database.path. See Server configuration for details.
Default database locations (v2.0.0+):
- Standalone, when neither config nor
FILEBROWSER_DATABASE_PATHsets a path:./filebrowser.sqlite - Docker image, when config omits
server.database.path:/home/filebrowser/data/database.sqlite(FILEBROWSER_DATABASE_PATHin_docker/Dockerfile)
Priority for database path:
server.database.pathinconfig.yaml, when it is setFILEBROWSER_DATABASE_PATH, when the config path is emptyfilebrowser.sqlite
Upgrading from v1.x? v2.0.0 uses a new database instead of the legacy database (database.db). Rename your old database file, set migrateFrom, and follow the migration guide. The FILEBROWSER_DATABASE env var is removed — use FILEBROWSER_DATABASE_PATH instead.
Docker Configuration
Using Docker Run
Using Docker Compose
Mount a host directory on /home/filebrowser/data if you want config, database, and cache to persist across container restarts (see Docker setup).
Basic Configuration Example
Here’s a minimal config file to get you started:
| |
On v2.x (v2.0.0+), if adminPassword is unset or left as admin, a random admin password is generated, logged once, and a password reset is required on first login. Any other value of auth.methods.password.adminPassword or auth.adminPassword is used as-is.
Configuration Options
FileBrowser supports extensive configuration options. You can view the complete configuration reference at:
- Full config example: Full Config Example
- 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
- UsersDefaults: New user defaults
- 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:
2. Use Environment Variables for Secrets
Instead of putting secrets in your config file, use environment variables:
And set environment variables:
3. Restart After Changes
Configuration changes require a restart to take effect:
Next Steps
- Configuration Overview - Complete configuration guide
- Full Configuration Reference - All available options
- Source Configuration - Configure file sources
- Authentication Setup - Set up authentication methods