Published: October 8, 2025
Last updated: May 1, 2026

Configure server settings including port, address, database, and caching.

Basic Server Configuration

YAML
1
2
3
4
server:
  port: 80
  database: "database.db"
  cacheDir: "tmp"

Configuration Options

port

Server port (default: 80)

YAML
1
2
server:
  port: 80

listen

Server listen address (default: 0.0.0.0)

YAML
1
2
server:
  listen: "localhost" # override the default 0.0.0.0

baseURL

Base URL – primarily for reverse proxy

YAML
1
2
server:
  baseURL: "/filebrowser"

socket

Unix socket to listen on (alternative to TCP port). When set, overrides port configuration.

YAML
1
2
server:
  socket: "/var/run/filebrowser.sock"

minSearchLength

Minimum length of search query to begin searching (default: 3)

YAML
1
2
server:
  minSearchLength: 3

disableUpdateCheck

Disable backend update check service

YAML
1
2
server:
  disableUpdateCheck: false

numImageProcessors

Number of concurrent image processing jobs used to create previews. Default is number of CPU cores available.

YAML
1
2
server:
  numImageProcessors: 4

disablePreviews

Disable all previews and thumbnails. Simple icons will be used instead.

YAML
1
2
server:
  disablePreviews: false

disablePreviewResize

Disable resizing of previews for faster loading over slow connections.

YAML
1
2
server:
  disablePreviewResize: false

disableTypeDetectionByHeader

Disable type detection by header. Useful if filesystem is slow.

YAML
1
2
server:
  disableTypeDetectionByHeader: false

externalUrl

Used by share links if set. This is the base domain that share links will use.

YAML
1
2
server:
  externalUrl: "https://mydomain.com"

cacheDirCleanup

Whether to automatically cleanup the cache directory. Note: Docker must also mount a persistent volume to persist the cache (default: false).

YAML
1
2
server:
  cacheDirCleanup: false

filesystem

Filesystem settings for file and directory creation permissions.

YAML
1
2
3
4
server:
  filesystem:
    createFilePermission: "644"      # Unix permissions like 644, 755, 2755 (default: 644)
    createDirectoryPermission: "755" # Unix permissions like 755, 2755, 1777 (default: 755)

indexSqlConfig

Index database SQL configuration for performance tuning.

YAML
1
2
3
4
5
6
7
server:
  indexSqlConfig:
    batchSize: 1000           # Number of items to batch in a single transaction, typically 500-5000. Higher = faster but could use more memory.
    cacheSizeMB: 32         # Size of the SQLite cache in MB
    walMode: false          # WAL journaling mode: more memory, better for busy deployments
    disableReuse: false       # If true, always create a new indexing database on startup
    startupIntegrityCheck: quickCheck  # quickCheck | probe | off — how thoroughly to verify the index DB at startup (default: quickCheck)

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 SQLite PRAGMA 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.

disableWebDAV

Disable WebDAV support (default: false).

YAML
1
2
server:
  disableWebDAV: true

sources

Configure file system sources. See Sources configuration for detailed information.

logging

Configure logging output and levels. See Logging configuration for detailed information.

database

Database file path. See configuration file priority for default locations.

YAML
1
2
server:
  database: "data/database.db"

Default locations:

  • Current directory: ./database.db
  • Docker: first checks /home/filebrowser/data/database.db, then current directory ./database.db

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.

YAML
1
2
server:
  maxArchiveSize: 20   # GB; 0 = no limit (default: 20)

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

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
YAML
1
2
server:
  cacheDir: "tmp" # this is default when not configured.

Docker Examples

Basic Docker Setup:

YAML
1
2
3
4
5
6
7
8
9
# docker-compose.yaml
services:
  filebrowser:
    image: gtstef/filebrowser:stable
    volumes:
      - '/path/to/your/data:/srv'
      - '/var/cache/filebrowser:/tmp/filebrowser'  # Mount cache directory
    environment:
      FILEBROWSER_CONFIG: "/config/config.yaml"

Corresponding config.yaml:

YAML
1
2
server:
  cacheDir: /tmp/filebrowser # corrosponds to above

Troubleshooting

Permission Issues:

By default, FileBrowser uses UID 1000 for the user (you can change that):

BASH
1
2
# Fix permissions for cache directory
sudo chown -R 1000:1000 /var/cache/filebrowser

internalUrl

Internal URL for integrations to access FileBrowser (Currently just OnlyOffice)

This could be a docker network DNS name or a local IP address on the network. This address should allow the integration to communicate directly with the service.

YAML
1
2
server:
  internalUrl: "http://filebrowser:80"

TLS Configuration

YAML
1
2
3
server:
  tlsCert: "/path/to/cert.pem"
  tlsKey: "/path/to/key.pem"

Next Steps