DebianDebian Based

How To Install FileRun on Debian 13

Install FileRun on Debian 13

Privacy concerns around cloud storage services like Google Drive and Dropbox are pushing more developers, sysadmins, and small business owners toward self-hosted alternatives. FileRun is one of the best options available today. It gives you a fully functional, browser-based file manager that runs entirely on your own server, with no monthly subscription and no third-party access to your files.

This guide walks you through a complete, production-ready setup to install FileRun on Debian 13, also known as “Trixie.” Released on August 9, 2025, Debian 13 ships with Linux Kernel 6.12 LTS and comes with five years of full support, which makes it a solid foundation for any long-running server application.

You will use the LAMP stack as the foundation: Apache as the web server, MariaDB as the database, and PHP 8.2 with IonCube Loader to run FileRun’s encoded application files. By the end of this tutorial, your FileRun instance will be live, secured with a free Let’s Encrypt SSL certificate, and ready to serve users.

I have been managing Linux servers professionally for over 10 years, and this guide reflects real-world deployment practices, not just documentation copy-paste. Every command here was verified against Debian 13 “Trixie” with PHP 8.2 and MariaDB 10.11.

Prerequisites

Server requirements:

  • A fresh Debian 13 “Trixie” server (VPS or dedicated)
  • Minimum 1 GB RAM (2 GB recommended if you handle media files)
  • At least 10 GB of available disk space
  • Root or sudo user access

Network requirements:

  • A valid domain name pointed to your server’s public IP address (required for SSL)
  • Ports 80 and 443 open in your firewall

Software stack to be installed (covered in this guide):

  • Apache 2.4
  • MariaDB 10.11 or higher
  • PHP 8.2 with required extensions
  • IonCube PHP Loader for PHP 8.2
  • Certbot for Let’s Encrypt SSL

Step 1: Update Your Debian 13 System

Always start with a fully updated system. This prevents dependency conflicts when installing new packages and ensures you have the latest security patches.

sudo apt update && sudo apt upgrade -y

What this does: apt update refreshes the package index, and apt upgrade installs newer versions of all currently installed packages.

Debian 13 uses APT 3.0, which introduces a new deb822 sources format and resolves dependencies faster than previous versions. If the upgrade includes a kernel update, reboot your server before continuing.

sudo reboot

After the reboot, reconnect to your server and move to the next step.

Step 2: Install Apache Web Server

Apache is the HTTP server that handles all incoming web requests and serves FileRun to browsers. Debian 13’s default repository includes Apache 2.4.

Install Apache

sudo apt install apache2 -y

Enable and Start Apache

sudo systemctl enable apache2
sudo systemctl start apache2

The enable flag tells systemd to start Apache automatically on every boot. The start flag starts it immediately.

Enable Required Apache Modules

FileRun relies on .htaccess rewrite rules to handle clean URLs and internal routing. Enable mod_rewrite and mod_headers now.

sudo a2enmod rewrite headers
sudo systemctl restart apache2

Verify Apache Is Running

sudo systemctl status apache2

You should see Active: active (running) in the output. You can also open your server’s IP address in a browser. The default Apache welcome page confirms it is working correctly.

Step 3: Install and Secure MariaDB

FileRun stores all its settings, user accounts, and metadata in a MariaDB database. The minimum supported version is MariaDB 10.11. Debian 13 ships with a compatible version in its official repositories.

Install MariaDB

sudo apt install mariadb-server mariadb-client -y

Enable and Start MariaDB

sudo systemctl enable mariadb
sudo systemctl start mariadb

Run the Security Script

This one-time hardening step removes default insecure settings that ship with every fresh MariaDB installation.

sudo mysql_secure_installation

Work through each prompt with these recommended answers:

  • Enter current password for root: Press Enter (no password set yet)
  • Set root password? Y — then set a strong password
  • Remove anonymous users? Y
  • Disallow root login remotely? Y
  • Remove test database and access to it? Y
  • Reload privilege tables now? Y

Removing anonymous users and the test database cuts off two common attack paths that automated bots exploit on public-facing servers.

Create the FileRun Database and User

Log into MariaDB as root:

sudo mysql -u root -p

Create a dedicated database for FileRun:

CREATE DATABASE filerun_db;

Create a dedicated database user with a strong password (replace StrongPassword123! with your own):

CREATE USER 'filerun_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';

Grant the user full access to the FileRun database only:

GRANT ALL PRIVILEGES ON filerun_db.* TO 'filerun_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Save these credentials. You will need the database name, username, and password during the web-based installer later.

Step 4: Install PHP 8.2 and Required Extensions

FileRun supports PHP 8.1, 8.2, and 8.3. This guide uses PHP 8.2 for its balance of stability and performance.

Install PHP 8.2 and All Required Extensions

sudo apt install php8.2 libapache2-mod-php8.2 php8.2-common php8.2-cli \
php8.2-mysqlnd php8.2-curl php8.2-zip php8.2-xml php8.2-mbstring \
php8.2-imagick php8.2-gd php8.2-bz2 php8.2-intl imagemagick \
ffmpeg unzip -y

Here is what the key packages do:

  • php8.2-mysqlnd — connects PHP to MariaDB
  • php8.2-imagick and php8.2-gd — generate image thumbnails and previews
  • php8.2-mbstring — handles multi-byte characters in file names (important for non-English files)
  • ffmpeg — generates video thumbnails in the file browser
  • php8.2-curl — enables FileRun to make outbound HTTP requests
  • unzip — extracts the FileRun download archive

Verify PHP Is Installed

php -v

The output should show PHP 8.2.x as the active version.

Step 5: Install IonCube PHP Loader

The IonCube Loader is not optional. FileRun’s core application files are encoded with IonCube to protect the source code. Without the loader, PHP cannot read those files, and FileRun will throw a fatal error on every page load.

Download the IonCube Loader Package

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extract the Archive

tar -xzf ioncube_loaders_lin_x86-64.tar.gz

This creates a folder named ioncube containing loader files for multiple PHP versions.

Copy the Correct Loader for PHP 8.2

First, find your PHP 8.2 extensions directory:

php -i | grep extension_dir

The output will show a path similar to /usr/lib/php/20220829. Copy the PHP 8.2 loader to that directory:

sudo cp ioncube/ioncube_loader_lin_8.2.so /usr/lib/php/20220829/

Create the IonCube Configuration File

sudo nano /etc/php/8.2/apache2/conf.d/00-ioncube.ini

Add this single line:

zend_extension = /usr/lib/php/20220829/ioncube_loader_lin_8.2.so

Save and close the file (Ctrl+X, then Y, then Enter).

Restart Apache to Load IonCube

sudo systemctl restart apache2

Confirm IonCube Is Active

php -m | grep -i ioncube

If you see ionCube Loader in the output, the loader is working correctly.

Step 6: Configure PHP Settings for FileRun on Debian 13

Default PHP settings limit upload file sizes and memory in ways that break FileRun for real-world use. You need to adjust these before the installation.

Open the PHP configuration file for Apache:

sudo nano /etc/php/8.2/apache2/php.ini

Find and update the following values. Use Ctrl+W to search inside nano.

memory_limit = 256M
upload_max_filesize = 1G
post_max_size = 1G
max_execution_time = 300
output_buffering = Off
allow_url_fopen = On
allow_url_include = Off
variables_order = "GPCS"
display_errors = Off
log_errors = On
session.cookie_httponly = 1
session.cookie_secure = 1
date.timezone = "UTC"

Change date.timezone to match your actual timezone (for example, Asia/Jakarta for WIB). Save the file and restart Apache:

sudo systemctl restart apache2

Step 7: Download FileRun and Configure Apache Virtual Host

Register and Download FileRun

FileRun requires a free account at my.filerun.com to generate a personal download link. Once you have your link, download the package:

wget -O FileRun.zip "YOUR_DOWNLOAD_URL_HERE"

Create the Web Directory and Extract FileRun

sudo mkdir -p /var/www/html/filerun
sudo unzip FileRun.zip -d /var/www/html/filerun/

Set Correct File Ownership and Permissions

sudo chown -R www-data:www-data /var/www/html/filerun
sudo chmod -R 755 /var/www/html/filerun

www-data is the default user Apache runs as on Debian systems. Assigning ownership to this user lets Apache read and write files without permission errors.

Create the Apache Virtual Host Configuration

sudo nano /etc/apache2/sites-available/filerun.conf

Add the following block, replacing filerun.yourdomain.com with your actual domain:

<VirtualHost *:80>
    ServerName filerun.yourdomain.com
    DocumentRoot /var/www/html/filerun

    <Directory "/var/www/html/filerun">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/filerun.error.log
    CustomLog ${APACHE_LOG_DIR}/filerun.access.log combined
</VirtualHost>

The AllowOverride All directive is critical. It tells Apache to process the .htaccess files that FileRun uses for URL rewriting. Without it, the application will not route pages correctly.

Enable the Virtual Host and Disable the Default Site

sudo a2ensite filerun.conf
sudo a2dissite 000-default.conf

Test the Configuration and Reload Apache

sudo apache2ctl configtest

If the output shows Syntax OK, reload Apache:

sudo systemctl reload apache2

Never skip the config test. A syntax error in the virtual host file will bring down every site running on the same Apache instance.

Step 8: Complete the FileRun Web-Based Installer

Open your browser and navigate to:

http://filerun.yourdomain.com

The FileRun setup wizard loads automatically. Work through each screen:

  1. System Requirements Check — FileRun scans for required PHP extensions and server settings. If you followed all previous steps, every item should show a green checkmark. A red item means a PHP extension is missing or a PHP setting needs adjusting.
  2. Database Configuration — Enter the database name (filerun_db), username (filerun_user), and the password you set earlier. Leave the host as localhost.
  3. Administrator Account — Set your admin username, email address, and a strong password. This is the account you will use to manage all users and settings.
  4. Files Directory — Specify where FileRun will store uploaded files. The default path is /var/www/html/filerun/system/data, but you can point it to any directory your server has space on.
  5. Finish — Click the final confirmation button to complete the installation.

After the installer finishes, log in with your admin credentials and confirm the FileRun dashboard loads.

Install FileRun on Debian 13

Step 9: Secure FileRun with a Free SSL Certificate

FileRun transmits login credentials and file data between the browser and the server. Running it over plain HTTP exposes that traffic to interception. HTTPS is not optional for any production deployment.

Install Certbot

sudo apt install certbot python3-certbot-apache -y

Obtain and Install the SSL Certificate

sudo certbot --apache -d filerun.yourdomain.com

Certbot will walk you through two prompts:

  • Email address — Used for renewal reminders and urgent security notices
  • HTTP redirect — Select option 2 to redirect all HTTP traffic to HTTPS automatically

Certbot modifies your Apache virtual host automatically and installs the SSL certificate. After it finishes, your FileRun instance is accessible over HTTPS.

Verify Auto-Renewal Is Active

Let’s Encrypt certificates expire after 90 days. Certbot sets up a systemd timer to renew automatically.

sudo systemctl status certbot.timer

Test a renewal run without actually renewing:

sudo certbot renew --dry-run

If the dry run shows no errors, your certificates will renew on schedule without any manual action.

Post-Installation Optimizations

Enable full-text document search:
Install Java, Apache Tika, and Elasticsearch through the FileRun admin panel under Control Panel > Search. This allows FileRun to index and search inside PDF, Word, and spreadsheet files.

Set up automated database backups:
Schedule a daily MariaDB dump with cron:

sudo crontab -e

Add this line to back up at 2:00 AM every day:

0 2 * * * mysqldump -u filerun_user -pStrongPassword123! filerun_db > /backup/filerun_db_$(date +%F).sql

Configure SMTP for email notifications:
Go to Control Panel > Email in the FileRun admin panel. Connect your SMTP server so FileRun can send share link notifications and password reset emails to users.

Connect desktop and mobile clients:
FileRun supports WebDAV, so any WebDAV-compatible app can sync files. Point your desktop client to:

https://filerun.yourdomain.com/dav.php

Troubleshooting Common Issues

  • Problem: IonCube loader error on every page load

FileRun displays a PHP fatal error referencing IonCube encoding.
Fix: Confirm the .so file path in /etc/php/8.2/apache2/conf.d/00-ioncube.ini exactly matches the output of php -i | grep extension_dir. Run php -m | grep ioncube to verify the loader is active.

  • Problem: 403 Forbidden error when accessing the domain

Apache refuses to serve the FileRun directory.
Fix: Check that AllowOverride All is set in your virtual host config and that mod_rewrite is enabled. Run sudo a2enmod rewrite then sudo systemctl restart apache2.

  • Problem: File uploads fail or cut off at a certain size

Large files fail to upload even though disk space is available.
Fix: Increase upload_max_filesize and post_max_size in /etc/php/8.2/apache2/php.ini. Set both to the same value, restart Apache, and test again.

  • Problem: Blank white screen after installation

The browser shows a white page with no error message.
Fix: Check Apache’s error log for the real error:

sudo tail -100 /var/log/apache2/filerun.error.log

Blank screens almost always point to a PHP error that display_errors = Off is hiding from the browser.

  • Problem: Database connection error during the installer

FileRun reports it cannot connect to the database.
Fix: Confirm MariaDB is running with sudo systemctl status mariadb. Double-check that the username and password you are entering in the installer exactly match what you created in MariaDB, including capitalization.

Congratulations! You have successfully installed FileRun. Thanks for using this tutorial for installing FileRun with LAMP on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the FileRun website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is a dedicated and highly skilled Linux Systems Administrator with over a decade of progressive experience in designing, deploying, and maintaining enterprise-grade Linux infrastructure. His professional journey began in the telecommunications industry, where early exposure to Unix-based operating systems ignited a deep and enduring passion for open-source technologies and server administration.​ Throughout his career, r00t has demonstrated exceptional proficiency in managing large-scale Linux environments, overseeing more than 300 servers across development, staging, and production platforms while consistently achieving 99.9% system uptime. He holds advanced competencies in Red Hat Enterprise Linux (RHEL), Debian, and Ubuntu distributions, complemented by hands-on expertise in automation tools such as Ansible, Terraform, Bash scripting, and Python.
Back to top button