LinuxCommandLibrary

filebrowser

Manage files through a web interface

TLDR

Start a new server instance serving the current directory

$ filebrowser
copy

Start a new server instance serving a specific root directory
$ filebrowser [[-r|--root]] [path/to/directory]
copy

Start an instance with different host address (defaults to 127.0.0.1) and port (defaults to 8080)
$ filebrowser [[-a|--address]] [host] [[-p|--port]] [port] [[-r|--root]] [path/to/directory]
copy

Start an instance with a specified configuration file, storing the application database in a specific location (defaults to filebrowser.db on the current directory)
$ filebrowser [[-c|--config]] [path/to/file] [[-d|--database]] [path/to/database.db] [[-r|--root]] [path/to/directory]
copy

Set up a different default first-time account username and password (both default to admin) when setting up a new instance
$ filebrowser --username [username] --password [password] [[-r|--root]] [path/to/directory]
copy

Set up the maximum amount of image processors used when generating thumbnails (defaults to 4)
$ filebrowser --img-processors [4] [[-r|--root]] [path/to/directory]
copy

Disable image thumbnails as well as the Command Runner feature, limiting access for hosted script files from being executed inside the app
$ filebrowser --disable-exec --disable-thumbnails [[-r|--root]] [path/to/directory]
copy

Disable resizing of image previews as well as detecting file types by reading their headers
$ filebrowser --disable-preview-resize --disable-type-detection-by-header [[-r|--root]] [path/to/directory]
copy

SYNOPSIS

filebrowser [-a address] [-p port] [-r root] [-d database] [-c config] [serve]

PARAMETERS

-a, --address value
    HTTP address to listen on (default: :80)

-p, --port value
    Port to listen on

-r, --root value
    Root directory (default: /srv)

-d, --database value
    Database path (default: ~/.filebrowser.db)

-c, --config value
    Config file path (default: ~/.filebrowser.json)

--log value
    Log file location (default: stderr)

--banner value
    Login page banner text

--motd value
    Message of the day

--noauth
    Disable authentication

-h, --help
    Show help

-v, --version
    Print version

DESCRIPTION

File Browser is a self-hosted, open-source web application for managing files and directories via a browser. Written in Go as a single binary, it's lightweight and easy to deploy on Linux systems.

Run filebrowser to start an HTTP server (default port 80) that provides a graphical interface for browsing, uploading, downloading, editing, zipping, sharing, and previewing files. Supports multi-user authentication, permissions, quotas, and commands execution.

Ideal for remote file access without FTP/SMB setup. Secure with HTTPS via reverse proxy (e.g., Caddy, Nginx). Database stores users/config; defaults to SQLite at ~/.filebrowser.db.

CLI subcommands handle config init, user management, updates. No root required unless accessing protected paths.

CAVEATS

Not installed by default; download binary from filebrowser.org. Runs as single process; use systemd for production. Default admin: admin/admin – change immediately. Exposes files publicly without auth; always configure users.

SUBCOMMANDS

config init: Initialize config.
users add/list/rm: Manage users.
update: Check/update binary.
serve: Start server explicitly.

INSTALLATION

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
Or static binary: wget https://github.com/filebrowser/filebrowser/releases/latest/download/linux-amd64-filebrowser

HISTORY

Released in 2018 by File Browser team. Evolved from simple viewer to full manager with v2 (2020+): added subcommands, sharing, rules. Actively maintained; latest v2.25+ supports Docker, plugins.

SEE ALSO

ranger(1), mc(1), nginx(8), caddy(8)

Copied to clipboard