FileRun is a self-hosted Google Drive/Photos/Music alternative. It's a full-features web based file manager with exceptionally well-polished user interface.
I was looking for a docker image to run on my ODroid HC2 NAS for the choice of web file manager. FileRun's official documentation requires downloading a 800M+ PHP image based on Apache (what?) and a 300M+ MariaDB image. I don't want to spend 1GB space on just a simple file manager (filebrowser is only 30 MB. So I decide to build my own stack.
Use docker volumes to map /user-files
to the file root folder, /usr/share/nginx/html
to nginx root, /var/lib/mysql
to maria database.
$ docker-compose up -d
The default FileRun credentials are as follows:
I ended up creating two new docker images, one running nginx and another running php-fpm, due to the way PHP on nginx works (as opposite to Apache modules). For the custom php-fpm, I have followed the offical docker build and rewrote significantly on all the steps. This turns out to be much cleaner. For the nginx image, the increased size is mostly because of a pre-downloaded filerun zip file, that would be extracted to the html root the first time the container is created. I also added a modified version of init sql script to load when the mariadb loads (original copy is from https://github.com/filerun/docker-arm32v7).
My goal is to keep the size down. The final size is:
Name | Size |
---|---|
henryouly/filerun-alpine | |
henryouly/filerun-alpine-php-fpm |
Total on-disk size is below 100 MB.
I also used https://github.com/jbergstroem/mariadb-alpine in the docker-compose.yaml
file due to the tiny footprint and fast startup speed.
Thanks to these projects. My project has been greatly benefited based on their work: