Skip to content

Getting Started

Graham Steffaniak edited this page Jul 22, 2025 · 39 revisions

Try it out

How to try out FileBrowser Quantum

with docker

Available docker images

Images are available from Dockerhub gtstef/filebrowser and GitHub ghcr ghcr.io/gtsteffaniak/filebrowser

image tag Download Size features description
latest, beta 60 MB ffmpeg and some document preview support (archs: arm64, amd64) this is the main image, which currently has the most features. Use this if you are working with documents -- even if you intend to include office integration.
beta-slim 15 MB core functionality for (archs: arm64, arm32, amd64) does not include media or office support in any way
dev 60 MB unstable, has ongoing new changes (archs: arm64, amd64) No not use

To try out using docker run, (changes will not be saved on exit):

  1. This will run with the default config and no persistent db -- just to try it out. You can log in with admin/admin:
# no persistent database (default username and password is admin/admin)
docker run -d -v /path/to/your/folder/to/use:/srv -p 80:80 gtstef/filebrowser:beta

You should be able to access the files from /path/to/your/folder/to/use when you visit your machine's http://localhost:80/ address on a browser

without docker

Go to releases and download the executable that matches your platform. Remember to install ffmpeg on your system if you want video preview support.

Note

You may need to enable executable permissions first. And platforms like macos will block and require allowing in security & privacy settings

You can execute the program (via running .\filebrowser.exe -c path\to\config.yaml on windows or ./filebrowser -c path/to/config.yaml on other platforms).

Tip

If you don't have a config file yet, you can generate one interactively with .\filebrowser.exe setup, which will ask a few questions and optionally backup/move any database you might have created by accident.

What is a config file? What should I use?

You can run without a config file, but a config file is generally necessary, you can download this example config and modify as needed with your sources path (absolute or relative paths are allowed).

Note

A full list of config file options can be found on the full config example wiki.

Warning

If you run the container with a user other than root or filerbowser, you will need to mount an additional volume from host machine to be used as temp directory, then point your server.cacheDir to use it.

By default, the filebrowser attempts to create tmp directory in the current directory (this requires linux user/group permissions):

docker run -u filebrowser -d -v $(pwd)/config.yaml:/home/filebrowser/config.yaml -v /path/to/folder:/srv -p 80:80 gtstef/filebrowser

You should be able to access the files from /path/to/folder when you visit your machine's http://localhost:80/ address on a browser

Docker Compose

I recommend using docker-compose if you want to run with a persistent database.

First, create a directory data and add a config file data/config.yaml which you can use this example config.yaml as reference.

Then create a docker compose file like this example docker-compose.yaml:

services:
  filebrowser:
    environment:
      FILEBROWSER_CONFIG: "data/config.yaml"
      FILEBROWSER_ADMIN_PASSWORD: admin
      #TZ: "America/New_York" # optionally set your local timezone https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    volumes:
      - '/path/to/folder:/folder' # Never mount root "/" directory to docker, always choose a sub-folder with your data.
      - './data:/home/filebrowser/data' # mount the data folder you created with the config file.
      # (and if unraid) If you plan to run with a different user besides root or filebrowser, you will need to mount a tmp directory.
      #- './tmp/:/home/filebrowser/tmp/'
    ports:
      - '80:80' # the left 80 is the port **you will use** to access. The right 80 is the container port that **must match the config.yaml**
    image: gtstef/filebrowser
    # Optionally run as non-root filebrowser user
    #user: filebrowser
    restart: unless-stopped

Then, make sure to mount a modified config file that points to the database file you want to use:

server:
  sources:
    - path: /folder # corresponds to the folder mounted above in docker-compose
      config:
        defaultEnabled: true # add source for all users by default 
auth:
  adminUsername: admin

What's next?

Want to configure your FileBrowser more? See configuration wiki.

Clone this wiki locally