main About me Back to Posts Personal Projects Links Privacy Contact
I’ve been working on de-Googling my life and one big thing I was looking to replace is the docs / Drive feature. They make it soo good and easy and free that it seems hard to replace, but it turns out that’s not true. I already have a home server running some other local apps – Immich for photos, Paperless for documents I want to keep long term, FreshRSS for my news feeds and so on – so getting an app for storing random files was the next step.
I found FileBrowser and it’s just what I needed. It’s a very simple but powerful enough self-hosted, FOSS application you can run on pretty much any PC you have handy. Some people run it on their own personal computer but I’m running it in Docker on my little Intel NUC 10. It supports multiple users, files and folders and sharing among users. When you upload a file into its GUI in a browser, the files are stored in a folder (you chose for this purpose) just the same, so you can still back them up from there however you like. Really simple but that’s a plus in this case. Less for me to support later on.
So now, from my desktop PC or my phone, I can visit the site and drop a file in there at any time. I can organize the files any way I like. And the app even has a great, fast search function so I can find files really easily in the future.
Their installation instructions are OK but for the Docker install, they’re lacking. They don’t mention a couple of things I had to do, to make the app run properly in Docker, so here is a list of the steps I had to follow to set this all up.
cd {someplace you want to install the app to}
mkdir filebrowser
cd filebrowser
Now you’ve got a home for the set up files, database and a settings file. So create those next.
touch filebrowser.db
touch settings.json
If you don’t create these files first and just run the command they give on their web site, you get errors from Docker.
Now edit the settings.json and give it some default settings:
nano settings.json
Paste this text into the file and save with Ctrl-X, Y, (Enter):
NB: Don’t change any of this! You don’t want to configure your server from this file; do that in the docker command file we’ll create next instead!
{
"port": 80,
"baseURL": "",
"address": "",
"log": "stdout",
"database": "/database/filebrowser.db",
"root": "/srv"
}
I then made a shell script to run the filebrowser command
nano run-filebrowser.sh
Contents for that script:
#!/bin/bash
docker run \
--name filebrowser \
-v /media/peter/filebrowser:/srv \
-v /home/peter/filebrowser/filebrowser.db:/database/filebrowser.db \
-v /home/peter/filebrowser/settings.json:/config/settings.json \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-p 3006:80 \
--detach \
filebrowser/filebrowser:s6
Explanation:
--name
-v /media/peter/filebrowser:/srv \
-v /home/peter/filebrowser/filebrowser.db:/database/filebrowser.db \
-v /home/peter/filebrowser/settings.json:/config/settings.json \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-p 3006:80 \
--detach \
filebrowser/filebrowser:s6
When that’s done, just make the script executable:
chmod +x run-filebrowser.sh
With that, you should be able to execute the run-filebrowser.sh script to get the app fired up. It will download the dockerhub copy of itself and get everything started.
Now you can go to the server’s name or IP address in a browser. For me, that looks like:
http://192.168.68.68:3007
YMMV.
Login there with username ‘admin’ and password ‘admin’, and get started. Add users and configure settings on the Settings page. Then add files!
If you run into any trouble, their Issues page on github.com is very helpful. Cheers,