henryouly / filerun-alpine

3 stars 0 forks source link
alpine docker-compose docker-image filerun nginx odroid-xu4 php php-fpm raspberypi

A FileRun docker image on Alpine Linux

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.

Features

Usage

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:

Improvement

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).

Size

My goal is to keep the size down. The final size is:

Name Size
henryouly/filerun-alpine Docker Image Size
henryouly/filerun-alpine-php-fpm Docker Image Size

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.

Areas to improve (open for pull requests)

Acknowledge

Thanks to these projects. My project has been greatly benefited based on their work: