FileRun - a self-hosted File Sync and Share web-based application
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