FileRun is a browser-based application that enables users to manage files on a remote server. It offers a range of features, such as an intuitive graphical user interface, preview and editing, and file sharing, which makes file management easier and more efficient.

FileRun provides a free version, which is sufficient for individual users. This article demonstrates how to deploy the free version of FileRun using Docker.

Deployment

Install and run FileRun

Install docker and docker compose if they haven't been installed yet.

curl -sSL https://get.docker.com/ | sh
systemctl enable --now docker

Create docker-compose.yml.

version: '2'

services:
  db:
    image: mariadb:10.1
    environment:
      MYSQL_ROOT_PASSWORD: ROOTPASSWORD
      MYSQL_USER: knok
      MYSQL_PASSWORD: PASSWORD
      MYSQL_DATABASE: FileRun
    volumes:
      - ./FileRun/db:/var/lib/mysql

  web:
    image: FileRun/FileRun
    environment:
      FR_DB_HOST: db
      FR_DB_PORT: 3306
      FR_DB_NAME: FileRun
      FR_DB_USER: knok
      FR_DB_PASS: PASSWORD
      APACHE_RUN_USER: www-data
      APACHE_RUN_USER_ID: 33
      APACHE_RUN_GROUP: www-data
      APACHE_RUN_GROUP_ID: 33
    depends_on:
      - db
    links:
      - db:db
    ports:
      - "127.0.0.1:12345:80"
    volumes:
      - ./FileRun/html:/var/www/html
      - ./FileRun/user-files:/user-files

Then up docker compose.

docker compose up -d

Access IP:12345 to check if FileRun runs successfully.

Nginx conf file

Add a nginx configuration for FileRun as follows. If you don't have a domain certificate yet, see here and here.

server {
    listen      443 ssl http2;
    server_name file.domain.com;

    ssl_certificate     PATH/server.crt;
    ssl_certificate_key PATH/server.key;
    ssl_protocols       TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers   on;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        client_max_body_size    128m;
        proxy_pass          http://127.0.0.1:12345;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto $scheme;
    }
}

server {
    listen      80;
    server_name file.domain.com;
    return      301 https://$host$request_uri;
}

Restart nginx to reload new configuration.

nginx -s reload

Now, access the domain name to install FileRun.

Fill in the parameters set in the docker-compose.yml before.

Before completing the installation, FileRun will provide a username and random password for logging in. You can change the name and password in the Account Settings.

FileRun is capable of online previews for mp3, mp4, pdf, and image files. Furthermore, it provides an extensive selection of plugins that allow for previewing and editing office documents and CSV files.

Demo

Live demo provided by FileRun.

Username: admin
Password: admin

Reference

FileRun Documentation

Outline