Skip to content

Getting Started

Graham Steffaniak edited this page Jun 14, 2025 · 26 revisions

Try it out

How to try out filebrowser -- no persistent database (default username and password is admin/admin)

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:
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 machines 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?

By default, starting v0.7.5 will run without a config file, with a default source being the current directory.

However, 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.

On docker, Non-root filebrowser user in docker is possible. When running as non-root or filebrowser make sure you either specify a server.cacheDir that points to a directory the user has permission to (creating one beforehand if necessary). By default the filebrowser attempts to create tmp directory in current directory.

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" #
    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.
      # Advanced: 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
auth:
  adminUsername: admin
  adminPassword: admin

What's next?

Want to configure your FileBrowser more? See configuration wiki.

Clone this wiki locally