Server Settings
v2.0.0 behavior change
In v2.0.0, server.database is an object with path (and optional migrateFrom during upgrade). Listening, URLs, TLS, WebDAV, and proxy options moved to the top-level http key — see HTTP settings. Default database is SQLite (filebrowser.sqlite), not BoltDB (database.db).
Configure server-side behavior: database, caching, indexing, previews, sources, and logging. For port, baseURL, TLS, and reverse-proxy options, see HTTP settings.
Basic Server Configuration
Configuration Options
minSearchLength
Minimum length of search query to begin searching (default: 3)
numImageProcessors
Number of concurrent image processing jobs used to create previews. Default is number of CPU cores available.
disablePreviews
Disable all previews and thumbnails. Simple icons will be used instead.
disablePreviewResize
Disable resizing of previews for faster loading over slow connections.
disableTypeDetectionByHeader
Disable type detection by header. Useful if filesystem is slow.
cacheDirCleanup
Whether to automatically cleanup the cache directory. Note: Docker must also mount a persistent volume to persist the cache (default: false).
filesystem
Filesystem settings for file and directory creation permissions.
indexSqlConfig
Index database SQL configuration for performance tuning.
| |
startupIntegrityCheck (default: quickCheck):
If you notice long delays on startup, you could configure this to probe (recommended) or off to reduce the startup check time.
quickCheck— Runs SQLitePRAGMA quick_check. Thorougher on very large databases.probe— Lightweight check (catalog / sample read); faster for huge indexes.off— Minimal check beyond opening the DB; fastest boot, least safety.
sources
Configure file system sources. See Sources configuration for detailed information.
logging
Configure logging output and levels. See Logging configuration for detailed information.
database
SQLite database file path. See database path priority for defaults and env var overrides.
Default locations (v2.0.0+):
- Standalone:
./filebrowser.sqlite - Docker (with
./datamount):/home/filebrowser/data/filebrowser.sqlite
During upgrade from v1.x, set migrateFrom to your renamed BoltDB file. Remove it after migration — see v2 migration guide.
Storage quotas (v2.1.0+) (folder, per-user scope, and share caps) use additional SQLite tables added in v2.1.0. They are created automatically on upgrade; legacy Bolt imports do not carry over quota limits. See Storage quotas (v2.1.0+).
Optional quota counter flush tuning (v2.1.0+):
maxArchiveSize
FileBrowser limits the maximum size of archive and unarchive operations (folder downloads, ZIP handling, etc.). The limit is the combined size of files involved, in gigabytes. Default is 20 GB. Set to 0 for no limit.
This cap exists because archiving uses temporary files under cacheDir and an unlimited value could exhaust disk or memory on the server.
Ensure you have enough free space in cacheDir if you raise this value.
cacheDir
The cacheDir is a critical configuration that defines where FileBrowser stores temporary files during various operations. By default, a tmp folder is created in the same directory as the program is run, but this may not be ideal. For example unRAID uses a different user by default and that causes permission issues with the default cache directory creation process.
Important Considerations
Permissions: The user running the FileBrowser process must have read/write permissions on the cache directory. This is especially critical in Docker environments.
Disk Space: The cache directory can grow significantly during large file operations. Monitor disk usage and ensure adequate space. If you are using docker – consider mounting a sufficient volume for temp directory if you need more space.
Reliable: Must be available and not tampered with during operation. Make sure its not in a location that could be moved or modified by accident. Do not use network locations!
unRAID Users: If you’re using unRAID, you must mount a volume for the cache directory. The default container user (if not uid 1000) needs write access to this directory.
The cacheDir is used by:
- Image preview generation: Thumbnails and processed images are cached
- Archive operations: ZIP extraction and compression temporary files
- Document processing: Temporary files during PDF/image conversion
- Video processing: Some media files during video operations
Docker Examples
Basic Docker Setup:
Corresponding config.yaml:
Alternatively, in Docker, we can mount a single directory called data that contains the config, database files, and cacheDir. Check the Standalone docker setup guide to see how it’s done.
Troubleshooting
Permission Issues:
By default, FileBrowser uses UID 1000 for the user (you can change that):
Next Steps
- HTTP settings — port, baseURL, TLS, WebDAV, trusted headers, and auth rate limiting
- Configure sources
- Set up authentication
- Configure logging