Docker
The fastest way to get started with FileBrowser Quantum.
Available Images
Images from Docker Hub (gtstef/filebrowser) and GitHub Container Registry (ghcr.io/gtsteffaniak/filebrowser):
| Tag | Size | Features | Architectures |
|---|---|---|---|
latest, stable | 60 MB | FFmpeg + document preview | arm64, amd64 |
stable-slim | 15 MB | Core service only (no media/office) | arm64, arm32, amd64 |
beta | 60 MB | FFmpeg + document preview | arm64, amd64 |
beta-slim | 15 MB | Core service only (no media/office) | arm64, arm32, amd64 |
Learn more about the versions and tags here.
Quick Try
Test without persistence (changes not saved):
Access at http://localhost with admin / admin
Basic Setup with Docker Compose
This set up is just to get the feel of FileBrowser before you get into customization, defining access control, etc. For regular use, Check out the slightly upgraded guide here.
Step 1: Create a base folder for FileBrowser
| |
Default Config Location: In Docker, the default config location is /home/filebrowser/data/config.yaml. So we create a data directory so we can mount the config, database files, and (optionally) cacheDir in the same volume. If you don’t want to follow this process, you can use environment variables to set the config path and database path manually.
Step 2: Create Config
Add a config.yaml file inside the data directory:
| |
Then fill out your config as needed, for example:
Important: Source path specified in the config.yaml are in terms of container point of view. (Check this page for more information on configurations.)
Step 3: Create Docker Compose
Create docker-compose.yaml in the directory.
| |
Then type in the below docker configuration.
| |
Step 4: Start
| |
Healthcheck Configuration
This is only needed if you change the server.port in the config.yaml – this is not needed for the above guide where the port remains 80 in the config.yaml
The FileBrowser Docker image includes a default healthcheck that uses port 80:
If you configure FileBrowser to use a different port in your config.yaml, you must override the healthcheck in your docker-compose.yaml to match:
| |
Healthcheck options:
test- Command to run (must match your configured port)interval- Time between health checks (default: 30s)timeout- Time to wait for response (default: 3s)start_period- Grace period on startup (default: 10s)retries- Number of failures before marking unhealthy (default: 3)
Database Location
Default Database Location: In Docker, the default database location is /home/filebrowser/data/database.db. This is different from the standalone default of ./database.db in the current directory.
To persist your database, mount a volume to /home/filebrowser/data:
See Server configuration and configuration file priority for more information on database paths.
Running container with a different user
On v1.2.x and earlier, the default user is root.
On v1.3.x and later, the default user is filebrowser (1000:1000).
FileBrowser Quantum docker images have a non-default filebrowser user built-in. This user has UID:GID of 1000:1000. In v1.2.x and earlier you need to specify this user manually:
Add to docker-compose.yaml:
You can also specify any user UID:GID, but you will also need to mount a temp directory that the user has filesystem permissions to. (See cacheDir config)
Create tmp in your FileBrowser directory and change owner for it to the ID of the user/group as mentioned in docker-compose file.
| |