Sign inSign up

hurlenko/filebrowser

By hurlenko

•Updated 2 months ago

Web-based file manager. Small image size. Supports arm, arm64 and amd64 architectures.

Image
87

10M+

hurlenko/filebrowser repository overview

⁠filebrowser⁠ inside a docker container⁠

Latest Github release Image size Docker Pulls Docker Stars

⁠Introduction

filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory. It can be used as a standalone app or as a middleware.

⁠Table of Contents

⁠Screenshots

⁠Desktop

Preview

⁠Mobile device
PreviewPreview

⁠Features

  • Confgurable via environment variables
  • Can be run using different user
  • Supports multiple architectures, tested on Ubuntu 18.04 (amd64), Rock64 🍍 (arm64) and Raspberry Pi 🍓 (arm32)

⁠Usage

⁠Docker
docker run -d --name filebrowser -p 80:8080 hurlenko/filebrowser

To run as current user and to map custom volume locations use:

docker run -d \
    --name filebrowser \
    --user $(id -u):$(id -g) \
    -p 8080:8080 \
    -v /DATA_DIR:/data \
    -v /CONFIG_DIR:/config \
    -e FB_BASEURL=/filebrowser \
    hurlenko/filebrowser
⁠docker-compose

Minimal docker-compose.yml may look like this:

version: "3"

services:
  filebrowser:
    image: hurlenko/filebrowser
    user: "${UID}:${GID}"
    ports:
      - 443:8080
    volumes:
      - /DATA_DIR:/data
      - /CONFIG_DIR:/config
    environment:
      - FB_BASEURL=/filebrowser
    restart: always

Simply run:

docker-compose up
⁠Running behind Nginx proxy

You can use this nginx config:

location /filebrowser {
    # prevents 502 bad gateway error
    proxy_buffers 8 32k;
    proxy_buffer_size 64k;

    client_max_body_size 75M;

    # redirect all HTTP traffic to localhost:8088;
    proxy_pass http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_set_header X-NginX-Proxy true;

    # enables WS support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_read_timeout 999999999;
}
⁠Ports description
  • 8080 - default filebrowser port
⁠Supported environment variables

The environment variables are prefixed by FB_ followed by the option name in caps. So to set "database" via an env variable, you should set FB_DATABASE. The list of avalable options can be found here⁠.

⁠Supported volumes
  • /data - Data directory to browse
  • /config - filebrowser.db location
⁠Attaching multiple directories

If you want to attach multiple directories you need to mount them as subdirectories of the data directory inside of the container (/data by default):

docker run \
    -v /path/to/music:/data/music \
    -v /path/to/movies:/data/movies \
    -v /path/to/photos:/data/photos \
    hurlenko/filebrowser

⁠Building

git clone https://github.com/hurlenko/filebrowser-docker
cd filebrowser-docker
docker build -t hurlenko/filebrowser .

Tag summary

Content type

Image

Digest

sha256:09f52f48b…

Size

18.7 MB

Last updated

2 months ago

docker pull hurlenko/filebrowser