Sign inSign up

80x86/filebrowser

By 80x86

Updated over 3 years ago

[build 20200430] filebrowser enhanced v2.9.3 for amd64/arm64 machine

Image
237

5M+

80x86/filebrowser repository overview

filebrowser enhanced for amd64 and arm64 machine 80x86/filebrowser pull stats


warning: latest tag has bee removed [2020-03-01]

init username: admin

init password: admin

the most powerfull fork of filebrowser/filebrowser you can find in the world!


filebrowser enhanced for amd64 and arm64 machine

how to enable hardware encoding

just add --device=/dev/dri/renderD128:/dev/dri/renderD128 to the run command

hardware encoding notice

currently, only Intel CPU is supported, please do check your CPU see if it supports harware encoding and decoding:

https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding

https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Intel

drawing

volume must map

containerdescription
/configdir to save config file, ssl certificate and search index db
/myfilesroot dir for filebrowser
volume mapping: special tips for Synology NAS users

if you want FBE to manage all the volume files, you can do this:

ssh login to your NAS, and run ls -ld /volume* to see how many volumes you have.

let's say that you have 2 volumes: /volume1 and /volume2 , then you can map the volume like this:

/volume1 => /myfiles/volume1

/volume2 => /myfiles/volume2
volume mapping: special tips for QNAP NAS users

if you want FBE to manage all the volume files, you can just map /share dir to /myfiles

/share => /myfiles
volume mapping: special tips for NanoDM users

if you want FBE to manage all the volume files, you can just map /media dir to /myfiles

/media => /myfiles

env vars

container vars
namedefault valuedescription
PUID1000run as uid
PGID100run as gid
UMASK_SET000umask for app running user
WEB_PORT8082http or https listen port
FB_SSLoffset to on to startup as https server and use custom certificate under /config/ssl/
AUTOCERT_DOMAINlocalhostset to your ACME domains if AUTOCERT=true, can be multi like foo.com,b.bar.com, can be wildcard like *.foo.com
AUTOCERT_DOMAIN_WHITELISTdomain name allowed, empty means allow all, can be multi like foo.com,b.bar.com
AUTOCERT_DNS_PROVIDERsee available DNS providers below
AUTOCERT_KEYTYPEEC256must be one of RSA2048, RSA4096, RSA8192, EC256, EC384
FBE vars
namecli flagsdefault valuedescription
FB_PORT-p, --portFBE listen port, do not use this, use WEB_PORT
FB_BASEURL-b, --baseurlbase URL must start with / and end without /
FB_ADDRESS-a, --addressaddress to listen on, in container it should be 0.0.0.0
FB_ROOT-r, --rootroot path for FBE, forced to be /myfiles in container
FB_CERT-t, --certtls certificate file path
FB_KEY-k, --keytls key file path
FB_AUTH_EXP_HOUR24the JWT token expiration time in hours
FB_AUTH_SERVER_ADDR127.0.0.1optional, dashboard IP, for auto authenticate with NanoDm dashboard

ACME additional env var for DNS provider

# ACME related env vars
# acme check interval in hours, default to 24 hours
GO_ACME_INTERVAL=24

# change CA server to `https://acme-staging-v02.api.letsencrypt.org/directory` if you want to test
GO_ACME_CA_SERVER=""

# set to http://IP:PORT if you want to use http proxy for ACME
HTTP_PROXY=""
AUTOCERT_EMAIL=""

# ACME domain like `foo.com`, can be multi like `foo.com,b.bar.com`, can be wildcard like `*.foo.com`
AUTOCERT_DOMAIN=""

# must be one of `RSA2048`, `RSA4096`, `RSA8192`, `EC256`, `EC384`
AUTOCERT_KEYTYPE=EC256

# ACME DNS provider, default is cloudflare
AUTOCERT_DNS_PROVIDER=cloudflare

# this env var is only used by `cloudflare` DNS provider
CF_DNS_API_TOKEN=""

# ACME private key file location, should keep the same as FB_KEY in container
GO_ACME_KEY_PATH="/config/ssl/ssl.key"
# ACME cert file location, should keep the same as FB_CERT in container
GO_ACME_CERT_PATH="/config/ssl/ssl.crt"

# ACME certificate cache dir
GO_ACME_STORAGE_DIR="/config/ssl"
availabel DNS providers
alidns,azure,cloudflare,cloudxns,digitalocean,dnspod,gcloud,linodev4,namecheap,qcloud,rfc2136,vultr

cloudflare:

get token from "My Profile -> API Tokens" API token must include the following permissions: Zone.Zone: Read Zone.DNS: Edit Zone Resources: All zones

Environment Variable Namedescription
CF_DNS_API_TOKENAPI Token

dnspod:

Environment Variable Namedescription
DNSPOD_API_KEYformat is: id,token

qcloud:

Environment Variable Namedescription
QCLOUD_SECRET_IDThe SecretId
QCLOUD_SECRET_KEYThe SecretKey

alidns:

Environment Variable Namedescription
ALICLOUD_ACCESS_KEYAccess key ID
ALICLOUD_SECRET_KEYAccess Key secret

for other provider please ref to: https://go-acme.github.io/lego/dns/#dns-providers

ACME Testing

To test or experiment with your configuration,

make sure you change the ACME endpoint to a staging or development URL,

otherwise you are likely to hit rate limits which can block your access to HTTPS for up to a week,

depending on which rate limit you hit.

the default CA is Let's Encrypt, which has a staging endpoint that is not subject to the same rate limits:

https://acme-staging-v02.api.letsencrypt.org/directory

you can set it for your container by using env var

GO_ACME_CA_SERVER="https://acme-staging-v02.api.letsencrypt.org/directory"


config file path

containerdescription
/config/.filebrowser.tomlconfig file
/config/database.dbdatabase file path
/config/ssl/ssl.crtSSL cert file path
/config/ssl/ssl.keySSL key file path

run examples

attenion: change $HOME/docker/fb/config and $HOME/docker/fb/myfiles ... to your own path, DO NOT copy and paste!

the tag name 2.9.3-amd64 will not update frequently, replace tag 2.9.3-amd64 with the newest tag name based on your requirement

use 2.9.3-arm64` instead of 2.9.3-amd64`` if you are running docker on an arm64 machine

http
IMAGE_NAME=80x86/filebrowser

WEB_PORT=8082
FB_AUTH_SERVER_ADDR="127.0.0.1"
mkdir -p $HOME/docker/fb/config $HOME/docker/fb/myfiles
podman run -d --name fb \
  --restart=unless-stopped \
  -e PUID=$UID \
  -e PGID=$GID \
  -e WEB_PORT=$WEB_PORT \
  -e FB_AUTH_SERVER_ADDR=$FB_AUTH_SERVER_ADDR \
  -p $WEB_PORT:$WEB_PORT \
  -v $HOME/docker/fb/config:/config \
  -v $HOME/docker/fb/myfiles:/myfiles \
  --mount type=tmpfs,destination=/tmp \
  ${IMAGE_NAME}:2.9.3-amd64
http + hardware encoding

just add --device=/dev/dri/renderD128:/dev/dri/renderD128

IMAGE_NAME=80x86/filebrowser

WEB_PORT=8082
FB_AUTH_SERVER_ADDR="127.0.0.1"
mkdir -p $HOME/docker/fb/config $HOME/docker/fb/myfiles
podman run -d --name fb \
  --restart=unless-stopped \
  --device=/dev/dri/renderD128:/dev/dri/renderD128 \
  -e PUID=$UID \
  -e PGID=$GID \
  -e WEB_PORT=$WEB_PORT \
  -e FB_AUTH_SERVER_ADDR=$FB_AUTH_SERVER_ADDR \
  -p $WEB_PORT:$WEB_PORT \
  -v $HOME/docker/fb/config:/config \
  -v $HOME/docker/fb/myfiles:/myfiles \
  --mount type=tmpfs,destination=/tmp \
  ${IMAGE_NAME}:2.9.3-amd64
https

just add -e FB_SSL=on

IMAGE_NAME=80x86/filebrowser

WEB_PORT=8082
FB_AUTH_SERVER_ADDR="127.0.0.1"
mkdir -p $HOME/docker/fb/config $HOME/docker/fb/myfiles
podman run -d --name fb \
  --restart=unless-stopped \
  -e PUID=$UID \
  -e PGID=$GID \
  -e WEB_PORT=$WEB_PORT \
  -e SSL=on \
  -e FB_AUTH_SERVER_ADDR=$FB_AUTH_SERVER_ADDR \
  -p $WEB_PORT:$WEB_PORT \
  -v $HOME/docker/fb/config:/config \
  -v $HOME/docker/fb/myfiles:/myfiles \
  --mount type=tmpfs,destination=/tmp \
  ${IMAGE_NAME}:2.9.3-amd64
How to Enable Automatic HTTPS via ACME (let's encrypt by default)

first we need to enable SSL:

just add -e FB_SSL=on

then we need add some ACME related env vars.

take the provider cloudflare for example, your need add following env vars:

-e FB_SSL=on \
-e AUTOCERT_EMAIL=your-email-for-acme \
-e AUTOCERT_DOMAIN=you-domain.com \
-e AUTOCERT_DNS_PROVIDER=cloudflare \
-e CF_DNS_API_TOKEN="your-cf-token-here" \

an full example:

IMAGE_NAME=80x86/filebrowser

WEB_PORT=8082
FB_AUTH_SERVER_ADDR="127.0.0.1"
mkdir -p $HOME/docker/fb/config $HOME/docker/fb/myfiles
docker run -d --name fb \
  --restart=unless-stopped \
  -e PUID=$UID \
  -e PGID=$GID \
  -e WEB_PORT=$WEB_PORT \
  -e FB_AUTH_SERVER_ADDR=$FB_AUTH_SERVER_ADDR \
        -e FB_SSL=on \
        -e AUTOCERT_EMAIL=your-email-for-acme \
        -e AUTOCERT_DOMAIN=you-domain.com \
        -e AUTOCERT_DNS_PROVIDER=cloudflare \
        -e CF_DNS_API_TOKEN="your-cf-token-here" \
  -p $WEB_PORT:$WEB_PORT \
  -v $HOME/docker/fb/config:/config \
  -v $HOME/docker/fb/myfiles:/myfiles \
  --mount type=tmpfs,destination=/tmp \
  ${IMAGE_NAME}:2.9.3-amd64

compare with original version

drawing
drawing

changelog

  • 2.9.3

    • commit 4e31ada6
    • fixup rename permission bug
    • baseURL must start with / and end without /
    • settings: qrcode src: respect baseURL config
    • file list: context menu: disable no permission menu
    • container: removed AUTOCERT env var, but keep using AUTOCERT_DOMAIN_WHITELIST, ACME feature provided by auto-acme instead of filebrowser
    • fix: err when the app exit: use of closed network connection
    • frontend: updated yarn.lock
    • feat: fallback to GO_ACME_KEY_PATH and GO_ACME_CERT_PATH if both tls cert and key config is not set or empty
    • refactor:warn user if TLS not enabled
    • env var SSL renamed to FB_SSL
    • bump version to 2.9.3
  • 2.9.2

    • bring the server's baseurl parameter back (which removed in v2.8.3)
    • optimized thumbnail generator.
    • build with golang 1.4.2
    • global settings: disabled "Auto make thumbnail for video" option
  • 2.9.1

    • updated words segment engine. build with golang 1.4.0
  • 2.9.0

    • new tag 2.9.0-amd64 and 2.9.0-arm64, latest tag has not been updated yet, do not use it. lots of improvement and bugfix.
  • 2.8.6

    • File Browser Enhanced v2.8.6/6940e014
    • video embedded subtitle selection feature
    • image thumbnail: disable AutoOrientation (we should respect the original photo)
    • runner: removed caddyserver/caddy depends
  • 2.8.4

    • File Browser Enhanced v2.8.4/a08a44e2
    • docker: env var INDEXED_SEARCH, INDEX_DIR, INDEX_INTERVAL, CACHE_DIR has been removed, you can config these in FBE setttings
    • file list: copy external link: support copy video playlist (.pls) URL for client player like PotPlayer or mpv, for SMPlayer, you need to
    • download the .pls file and open it.
    • settings - users: add superadmin icon
    • refractor: optimize probe API
    • Preview: audio: support rename,delete,download,info buttons
    • photo gallery: removed zoom plugin due to performance problem
    • security: new feature: add failed login log, block IPs which failed login time >= 5
    • websocket: only show failed message no more than 3 times
  • 2.8.4

    • File Browser Enhanced v2.8.4/97df9ae9
    • video and image thumbnail cache: add CacheGcProbability config for garbage collection (GC)
    • bug fix: if it is under cache dir, do not mkthumb
    • lot's of improvement
  • 2.8.3

    • File Browser Enhanced v2.8.3/ae517519
    • keyboard: fixup t key bind
    • disabled the server's baseurl parameter
    • settings: video: add Disable realtime video thumbnail preview option
    • mkthumb task: if overwrite is not enabled, skip any item if there is already a screencap present
    • bump version to 2.8.3
  • 2.8.2

    • File Browser Enhanced v2.8.2/5af0f5f5
    • settings: fixup fieldset style
    • package.json: upgrade package
    • i18n: only keep en, ja, ko, ru, zh-cn, zh-tw
    • http: set max-age for Chrome/Chromium
    • video frame: add hwaccel support
    • BrotliPlugin: only compress js and css file
  • 2.8.2

    • File Browser Enhanced v2.8.2/7fc8696e
    • video: bar preview thumbnail now works well
    • image: disable tooltip for mobile device
    • improved slideshow config related description
    • settings: add Video config
    • http server: Brotli compression enabled
  • 2.8.1

    • File Browser Enhanced v2.8.1/2a7260b7
    • get blueimp gallery deprecated (because it's fullscreen mode does not works good on mobile device like iPad)
    • new gallery with lots of transition effects
    • global settings improved
  • 2.7.2

    • File Browser v2.7.2/65849aec
    • photo gallery: add Show Indicator option (default disabled),
    • video transcode: hardware encoder and hardware decoder enabled!
  • 2.7.1

    • File Browser v2.7.1/716e4430
    • transcode feature added now, h.265 and mov, wmv, avi , flv all playable now!
  • 2.6.9

    • File Browser v2.6.9/1dfcdaa5
    • more thumbnail config added, now you can control the image thumbnail width and video thumbnail (caps) width, caps number, columns
  • 2.6.8

    • File Browser v2.6.8/44e0a7d6 build 20190904
    • Passwd Rename fixup
    • Delete prompt: add style to file list
    • Indexed search: fixup windows path for JSON.parse() , increased indexed search result limit to 100 files ( previuse 50)
    • info: Torrent Info Length
    • windows: fixup 7z absolute path for windows, fixup one top level dir feature
    • list: increased mosaic style list filename width
    • Preview: fixup single file preview route directly from URL 404 problem
    • file preview: support view .nfo file and list .rar,.7z,.zip files now
    • image thumbnail feature added , CACHE_DIR env var added
    • video thumbnail hover preview feature added
    • thumbnail config feature added
    • image: Auto Orientation feature added, and also delete image now will not reload the page.
    • config: indexed search web UI config added
  • 2.6.5

    • File Browser v2.6.5/9658a244
    • hidden file: also ignore "lost+found", "System Volume Information", and "$RECYCLE.BIN"
    • Files: fixup 404, 403 500 error detection
    • indexed search: ignore error like "err: open /xxxxx/lost+found: permission denied"
    • File list: add Ctrl + a keyboard shortcut to select all, add t key event to toggle task panel
    • Prompts: make rename, delete, move prompts wider (default 25em which seems too small)
    • Delete prompt: show detailed files to delete
    • Help prompt: update keyboard shortcuts
  • 2.6.1

    • File Browser v2.6.1/beede404
    • file list: add ShowHidden button to filter dot files out(the eye icon means normal for human being, the ghost means see hidden files),
    • hide the fucking http: TLS handshake error from xxxx:port: remote error: tls: unknown certificate error by default,
    • Indexed Search : show less info level log message,
    • file list: add Mode column to show file/dir permission
    • file list context menu: add Chmod action
  • 2.5.9

    • File Browser v2.5.9/20109290
    • mobile: native player prompt: add Copy direct play link button,
    • add FB_AUTH_EXP_HOUR ENV var allow user to change the default JWT token expiration hours
  • 2.5.7

    • File Browser v2.5.7/5219266f
    • fixup Auto Fix Garbled Filename problem under AlpineLinux container. this feature is now tested and works stable.
  • 2.5.6

    • File Browser v2.5.6/7ab6f5d9, fixup preview path with # cause API call error.
  • 2.5.5

    • File Browser v2.5.5/76b79b1f
    • unarchive: add Auto Fix Garbled Filename option, add support for rar, zip file as well.
    • mkthumb and unarchive task now support directory as well.
  • 2.5.3

    • File Browser v2.5.3/33c6f4ef, many optimization. unarchive and mkthumb task now support directory.
    • do not show error when ios Safari with wss (safari does not support self signed SSL cert).
    • double click to hide the task panel.
    • limit concurrent task to CPU core number.
    • unarchive: add one top level directory extraction option.
  • 2.4.8

    • File Browser v2.4.8/4780a7e9
    • websocket: add ping/pong (heartbeating) request for websocket connection alive
  • 2.4.7

    • File Browser v2.4.7/109761fc
    • unarchive and mkthumb task now supported directory.
    • new: cancel all, remove all, cancel action added.
    • pressF4 to toggle task panel, esc to hide task panel.
  • 2.4.6

    • File Browser v2.4.6/0c03d0c5
    • context menu: add unarchive menu item
  • 2.4.5

    • MediaInfo.vue: fixup CSS, fixed a bug that if no files only directories context menu won't shown up.
  • 2.4.4

    • File Browser v2.4.4/3339e7d2
    • file list: add context menu. add MediaInfo viewer and quick copy button
  • 2.4.3

    • File Browser v2.4.3/319c302e
    • show detailed error message (not just simple message like 403 Forbidden),
    • do not write http data to ws hijacked connection
  • 2.4.2

    • fixup: add missing FB_AUTH_SERVER_ADDR env var support for podman container
  • 2.4.1

    • new background async task feature added
    • add make torrent button and make video thumbnail button
    • replaced Shell button with Task button. you can click Task button to toggle background task panel.
  • 2.3.x

    • optimize CPU usage for indexed based search feature. INDEX_INTERVAL env var added.

Tag summary

Content type

-

Digest

Size

-

Last updated

over 6 years ago

docker pull 80x86/filebrowser