bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward
eco Beginner Tutorial/How-to

Install File Browser on VPS

calendar_month Aug 11, 2026 schedule 20 min read visibility 19 views
Установка File Browser на VPS: управление файлами через веб-интерфейс с Nginx и SSL
info

Need a server for this guide? We offer dedicated servers and VPS in 50+ countries with instant setup.

Need a server for this guide?

Deploy a VPS or dedicated server in minutes.

Installing File Browser on VPS: File Management via Web Interface with Nginx and SSL

TL;DR

In this guide, we will set up File Browser — a lightweight web interface for file management — on your VPS. We will ensure secure access via Nginx as a reverse proxy and protect the connection with SSL certificates from Let's Encrypt, obtained through Certbot. As a result, you will get a fully controlled cloud file storage, accessible from anywhere in the world via a browser.

  • Installing File Browser as a system service for automatic startup.
  • Nginx configuration for traffic routing and acting as a reverse proxy.
  • SSL/TLS setup with Certbot for a secure HTTPS connection.
  • Ensuring basic server security with UFW and Fail2ban.
  • Recommendations for backup and system maintenance.
  • Full control over your files and data without third-party services.

What we are setting up and why

Diagram: What we are setting up and why
Diagram: What we are setting up and why

In the modern world, where data plays a key role, the ability to manage your files from anywhere in the world becomes a necessity. Cloud storage services like Google Drive, Dropbox, or OneDrive offer convenience, but often at the cost of privacy and full control. For those who value independence and security, deploying their own file manager on a Virtual Private Server (VPS) or dedicated server is an ideal solution.

We will be installing File Browser — a lightweight and powerful file manager with a web interface. It's a single-binary application written in Go, which makes it extremely efficient, easy to deploy, and operate. File Browser allows you to upload, download, view, edit, delete, and share files and folders directly from your web browser. It supports multiple users with different access permissions, making it an excellent choice for both personal use and small teams.

What the reader will get in the end

Upon completing this guide, you will have a fully functional file management system, accessible via a secure HTTPS connection through your domain. You will be able to:

  • Access your files on the VPS through an intuitive web interface.
  • Upload and download files and folders.
  • Create, rename, move, and delete files and directories.
  • View media files and edit text documents directly in the browser.
  • Configure multiple users with individual access rights to different directories.
  • Share files and folders with other users via temporary or permanent links.

What alternatives exist and why self-hosted on a VPS

There are several approaches to file management:

  • Cloud services (Google Drive, Dropbox, iCloud): Convenient, require no setup, but you don't control your data, depend on the provider's policy, and often pay a subscription fee.
  • Comprehensive self-hosted solutions (Nextcloud, ownCloud): Offer a wide range of features (calendars, contacts, notes, synchronization), but are significantly heavier, require a database, and are more complex to set up and maintain. For a simple file management task, they can be overkill.
  • Protocols (SFTP, SMB/CIFS): Require specialized client software, are less convenient for quick browser access, and are not always suitable for non-technical users.

Why File Browser on a VPS? Choosing File Browser on a VPS is the golden mean. You get full control over your data, high performance, and flexibility, while File Browser remains lightweight and easy to manage. It is an ideal solution for:

  • A personal "cloud" for storing documents, photos, and videos.
  • File sharing within a small team or family.
  • Accessing project files for developers and designers.
  • Managing files on the server without the need for SSH and the command line.

Ultimately, you build your own secure and private file infrastructure that will work exactly as you need it to, without hidden fees or limitations from third-party services.

What VPS configuration is needed for this task

Diagram: What VPS configuration is needed for this task
Diagram: What VPS configuration is needed for this task

File Browser is a very lightweight application, so its resource requirements are minimal. However, general recommendations for a VPS include resources needed for the operating system, potential file storage, and ensuring stable operation of Nginx and Certbot.

Minimum Requirements

  • CPU: 1 vCPU with a frequency of 2 GHz or higher. File Browser is not CPU-intensive unless there is intensive file processing (e.g., mass conversion).
  • RAM: 1 GB of RAM. This is sufficient for the OS (e.g., Ubuntu 24.04 LTS), File Browser, Nginx, and Certbot. If you plan to upload very large files or serve many concurrent users, consider 2 GB.
  • Disk: 20-40 GB SSD. The system itself and software will take up 10-15 GB. The rest is for your files. SSD is highly recommended for fast file operations.
  • Network: 100 Mbps or 1 Gbps port with unlimited or sufficient traffic. Network speed will directly affect file upload and download speeds.

Specific VPS Plan for the Task

For most users, including developers, solo founders, and small teams, the optimal configuration will be the following:

  • CPU: 2 vCPU
  • RAM: 2-4 GB
  • Disk: 80-100 GB NVMe/SSD
  • Network: 1 Gbps port

Such a configuration will be more than enough for comfortable work with File Browser, storing tens of thousands of files, and serving several dozen concurrent users. For these purposes, you can get a VPS with the specified characteristics.

When a dedicated server is needed, not a VPS

A dedicated server may be required in the following cases:

  • Very large data volume: If you plan to store terabytes of data, for which a VPS might be too expensive or have disk space limitations.
  • High load: Hundreds of concurrent users, constant intensive uploading/downloading.
  • Specific performance requirements: For example, for applications that heavily use the disk subsystem or require maximum CPU performance without "neighbors" on the same physical host.
  • Compliance requirements: Some regulatory norms may require complete physical separation of hardware.

For File Browser, in most cases, a VPS is the optimal choice in terms of price/performance/flexibility.

Location: What it affects

The choice of VPS location matters for several aspects:

  • Latency: The closer the server is to your primary audience (you, your team, users), the lower the latency and faster the web interface response.
  • Data Jurisdiction: If you have specific data storage requirements (e.g., GDPR in Europe), choose a country that complies with these requirements.
  • Network Speed: Some regions have better connectivity to certain parts of the world. Check ping to test servers in different locations to choose the best option.

Server Preparation

Diagram: Server Preparation
Diagram: Server Preparation

Before installing File Browser, you need to perform basic security configuration and install the necessary utilities. It is assumed that you are using a fresh installation of Ubuntu Server 24.04 LTS (current version for 2026) and have SSH access with root privileges.

1. System Update

Always start by updating the package list and installing them to ensure your system is using the most current software versions and security patches.


sudo apt update         # Updates the list of available packages
sudo apt upgrade -y     # Installs updates for all packages
sudo apt autoremove -y  # Removes unused packages

2. Creating a new user with sudo privileges

Operating as the root user is insecure. Let's create a new user, add them to the sudo group, and configure SSH keys for them. Replace youruser with your desired username.


adduser youruser                            # Create a new user
usermod -aG sudo youruser                   # Add user to the sudo group
mkdir -p /home/youruser/.ssh                # Create directory for SSH keys
chmod 700 /home/youruser/.ssh               # Set correct permissions for the directory
cp ~/.ssh/authorized_keys /home/youruser/.ssh/ # Copy your public SSH key (if you logged in with a root key)
chown -R youruser:youruser /home/youruser/.ssh # Set owner for the SSH directory

After this, log out of the root session and log in as the new user youruser to ensure everything is working.

3. Disabling SSH access for root and by password

To enhance security, it is recommended to disable SSH login for the root user and disallow password authentication, leaving only SSH keys.


sudo nano /etc/ssh/sshd_config

Find and modify the following lines (or add them if they don't exist):


# PermitRootLogin no
# PasswordAuthentication no
# ChallengeResponseAuthentication no
# UsePAM no

Ensure that PermitRootLogin is set to no and PasswordAuthentication to no. If these lines are commented out (start with #), uncomment them.

After saving the file, restart the SSH service:


sudo systemctl restart sshd

IMPORTANT: Make sure you can log in as the new user with an SSH key before disabling root access and password authentication. Otherwise, you might lose access to the server.

4. Firewall Configuration (UFW)

UFW (Uncomplicated Firewall) is an easy-to-use interface for configuring iptables rules. We will only allow the necessary ports: SSH (22), HTTP (80), and HTTPS (443).


sudo apt install ufw -y                 # Install UFW
sudo ufw allow OpenSSH                  # Allow SSH access (port 22)
sudo ufw allow http                     # Allow HTTP access (port 80)
sudo ufw allow https                    # Allow HTTPS access (port 443)
sudo ufw enable                         # Enable firewall
sudo ufw status verbose                 # Check firewall status

After enabling UFW, ensure that you can still connect via SSH.

5. Installing Fail2ban

Fail2ban scans server logs for suspicious activity (e.g., SSH password brute-force attempts) and temporarily blocks the IP addresses of attackers by adding rules to the firewall.


sudo apt install fail2ban -y            # Install Fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Create a local copy of the config
sudo systemctl enable fail2ban          # Enable Fail2ban autostart
sudo systemctl start fail2ban           # Start Fail2ban
sudo systemctl status fail2ban          # Check status

In the file /etc/fail2ban/jail.local, you can configure blocking parameters, but by default, it already protects SSH.

6. Nginx Installation (preliminary)

Nginx will be used as a reverse proxy for File Browser and for handling SSL certificates.


sudo apt install nginx -y               # Install Nginx
sudo systemctl enable nginx             # Enable Nginx autostart
sudo systemctl start nginx              # Start Nginx
sudo systemctl status nginx             # Check status

Your server is now ready for File Browser installation.

Software Installation — Step-by-Step

Diagram: Software Installation — Step-by-Step
Diagram: Software Installation — Step-by-Step

Now that the server is prepared, we will proceed with the installation of the main components: File Browser itself, Nginx (if not installed in the previous step), and Certbot for automatic acquisition and renewal of SSL certificates.

In this guide, we will use File Browser version 2.30.0 (the assumed current version for 2026), Nginx 1.28.0, and Certbot 2.10.0. All commands are executed by a user with sudo privileges.

1. File Browser Installation

File Browser is distributed as a single binary file, which significantly simplifies its installation. We will download it from the official GitHub repository.


# Create a temporary directory for download
mkdir -p ~/filebrowser_install
cd ~/filebrowser_install

# Download the latest version of File Browser (v2.30.0 for 2026)
# Always check for the latest version at https://github.com/filebrowser/filebrowser/releases
wget https://github.com/filebrowser/filebrowser/releases/download/v2.30.0/filebrowser_2.30.0_linux_amd64.tar.gz

# Unpack the archive
tar -xvf filebrowser_2.30.0_linux_amd64.tar.gz

# Move the executable file to a system directory
sudo mv filebrowser /usr/local/bin/

# Remove temporary files
cd ~
rm -rf ~/filebrowser_install

# Verify that File Browser is installed and accessible
filebrowser --version

The output of filebrowser --version should show the installed version.

2. Creating a system user and directories for File Browser

For security, File Browser will run under a dedicated system user and store its data in separate directories.


# Create a system user 'filebrowser' without login capability
sudo useradd -r -s /bin/false filebrowser

# Create a directory for File Browser files (where user files will be stored)
sudo mkdir -p /var/lib/filebrowser

# Create a directory for the File Browser configuration file
sudo mkdir -p /etc/filebrowser

# Set owner and permissions for the directories
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser
sudo chown -R filebrowser:filebrowser /etc/filebrowser

3. Configuring File Browser as a systemd service

To ensure File Browser starts automatically when the server boots and is managed as a regular service, we will create a systemd unit file.


sudo nano /etc/systemd/system/filebrowser.service

Insert the following content into the file:


[Unit]
Description=File Browser
After=network.target

[Service]
User=filebrowser
Group=filebrowser
# Run File Browser on the local interface (127.0.0.1) and port 8080
# Nginx will proxy requests to this address
ExecStart=/usr/local/bin/filebrowser -r /var/lib/filebrowser -c /etc/filebrowser/filebrowser.json --port 8080 --address 127.0.0.1
Restart=on-failure
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Save and close the file (Ctrl+X, Y, Enter). Now, activate and start the service:


sudo systemctl daemon-reload               # Reload systemd configuration
sudo systemctl enable filebrowser          # Enable service autostart on system boot
sudo systemctl start filebrowser           # Start File Browser service
sudo systemctl status filebrowser          # Check service status

Ensure that the service is in the "active (running)" state.

4. Certbot Installation (for SSL)

Certbot is a tool for automatically obtaining and renewing free SSL/TLS certificates from Let's Encrypt. We will install it via Snap, which is the recommended method for Ubuntu 24.04.


# Ensure snapd is installed and updated
sudo snap install core                      # Install snapd core package
sudo snap refresh core                      # Refresh snapd

# Install Certbot
sudo snap install --classic certbot         # Install Certbot in classic mode

# Create a symbolic link for convenient use of the certbot command
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Certbot is now ready for use and will be utilized during the Nginx configuration phase.

Configuration

Diagram: Configuration
Diagram: Configuration

In this step, we will configure Nginx to act as a reverse proxy for File Browser and obtain SSL certificates to ensure a secure HTTPS connection.

Important: For successful operation, you will need a domain name (e.g., files.yourdomain.com) that points to your VPS's IP address.

1. Creating the first File Browser administrator

Before configuring Nginx, let's create the first File Browser administrator. This can be done via a command while the service is running.


# Create the first administrator. Replace <admin_password> with a strong password.
# This command will create the filebrowser.json file in /etc/filebrowser if it doesn't exist.
sudo /usr/local/bin/filebrowser users add admin <admin_password> --perm.admin --perm.create --perm.delete --perm.modify --perm.rename --perm.share --config /etc/filebrowser/filebrowser.json

You will see a confirmation of user creation. The password will not be displayed in the console but will be set.

2. Configuring Nginx as a reverse proxy

We will create a new Nginx configuration file for your domain. Replace yourdomain.com with your actual domain name.


sudo nano /etc/nginx/sites-available/filebrowser.conf

Paste the following content. This config will initially redirect all HTTP traffic to HTTPS and is ready for use with Certbot.


server {
    listen 80;
    listen [::]:80;
    server_name yourdomain.com; # Replace with your domain

    # Redirect all HTTP traffic to HTTPS
    return 301 https://$host$request_uri;
}

# This block will be configured by Certbot after obtaining the certificate
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name yourdomain.com; # Replace with your domain

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; # Will be created by Certbot
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; # Will be created by Certbot
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1h;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    # HSTS (HTTP Strict Transport Security)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

    # Proxy requests to File Browser
    location / {
        proxy_pass http://127.0.0.1:8080;
        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;

        # WebSocket support (for some File Browser features)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Additional security settings
    client_max_body_size 100G; # Maximum upload file size (change as needed)
    error_log /var/log/nginx/filebrowser_error.log warn;
    access_log /var/log/nginx/filebrowser_access.log;
}

Save and close the file. Now activate the configuration by creating a symbolic link and testing Nginx:


# Create a symbolic link
sudo ln -s /etc/nginx/sites-available/filebrowser.conf /etc/nginx/sites-enabled/

# Test Nginx configuration syntax
sudo nginx -t

# If there are no errors, reload Nginx
sudo systemctl reload nginx

3. Obtaining an SSL certificate with Certbot

Now that Nginx is configured, we can use Certbot to automatically obtain an SSL certificate from Let's Encrypt. Certbot will modify the Nginx configuration itself to add certificate paths.


sudo certbot --nginx -d yourdomain.com # Replace yourdomain.com with your domain

Certbot will ask you a few questions:

  • Enter an email address for certificate expiration notifications.
  • Agree to the Let's Encrypt terms of service.
  • (Optional) Allow EFF to send you emails about their work.

If everything goes well, Certbot will automatically configure Nginx to use HTTPS and reload it. You will see a message confirming successful certificate acquisition.

4. Checking functionality

Open your web browser and go to https://yourdomain.com (replace with your domain). You should see the File Browser login page. Use the login admin and the password you set earlier to log in.

You can also check the status of services from the command line:


sudo systemctl status filebrowser
sudo systemctl status nginx

To check the SSL certificate, you can use online tools such as SSL Labs SSL Server Test, or simply verify the presence of the "lock" icon in your browser's address bar.

For local verification of File Browser accessibility via Nginx, you can use curl:


curl -kL https://yourdomain.com # The -k option ignores certificate verification, -L follows redirects

You should receive the HTML code of the File Browser login page.

5. Updating UFW rules

If you previously allowed HTTP and HTTPS ports separately, Certbot might have already updated the Nginx Full rules. Let's ensure everything is in order:


sudo ufw allow "Nginx Full" # Allows ports 80 and 443 for Nginx
sudo ufw delete allow http  # Delete old rule, if it exists
sudo ufw delete allow https # Delete old rule, if it exists
sudo ufw status verbose

Ensure "Nginx Full" is allowed and separate rules for HTTP/HTTPS are deleted to avoid duplication.

Backups and Maintenance

Diagram: Backups and Maintenance
Diagram: Backups and Maintenance

Backup is a critically important part of any server infrastructure. File Browser stores all user files and its configuration on the server, so it is necessary to regularly create backups to avoid data loss.

1. What to back up

For File Browser, you need to back up:

  • User data: The /var/lib/filebrowser directory. This is where all files and folders that users upload via File Browser are stored. This is the most important part.
  • File Browser configuration: The /etc/filebrowser/filebrowser.json file. Contains File Browser settings, user list, and their permissions.
  • Nginx configuration: The /etc/nginx/sites-available/filebrowser.conf file.
  • SSL certificates: The /etc/letsencrypt directory. Contains your SSL certificates. It is recommended to back it up carefully, as private keys are confidential information. In most cases, it is sufficient to simply re-issue certificates using Certbot after server restoration, but having a backup can be useful.

2. Simple auto-backup script

We will create a simple script that will archive the necessary data and save it to a separate directory. For more robust solutions, you can use tools like Restic, BorgBackup, or Duplicity, which support deduplication and encryption.


sudo nano /usr/local/bin/backup_filebrowser.sh

Paste the following content:


#!/bin/bash

# Directory for storing backups
BACKUP_DIR="/mnt/backups/filebrowser"
# Date and time for archive name
TIMESTAMP=$(date +%Y%m%d%H%M%S)
ARCHIVE_NAME="filebrowser_backup_${TIMESTAMP}.tar.gz"

# Create backup directory if it doesn't exist
mkdir -p "$BACKUP_DIR"

echo "Starting File Browser backup..."

# Create an archive from the data and configuration directories
tar -czvf "$BACKUP_DIR/$ARCHIVE_NAME" \
    /var/lib/filebrowser \
    /etc/filebrowser/filebrowser.json \
    /etc/nginx/sites-available/filebrowser.conf \
    --absolute-names # Preserve full paths in the archive

# Optional: backup SSL certificates (with caution)
# tar -czvf "$BACKUP_DIR/letsencrypt_backup_${TIMESTAMP}.tar.gz" /etc/letsencrypt --absolute-names

# Delete old backups (e.g., older than 7 days)
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete

echo "Backup completed. Archive: $BACKUP_DIR/$ARCHIVE_NAME"

Make the script executable:


sudo chmod +x /usr/local/bin/backup_filebrowser.sh

3. Scheduling backups with Cron

Add the script to Cron for automatic execution. For example, for a daily backup at 03:00 AM:


sudo crontab -e

Add the following line to the end of the file:


0 3 * * * /usr/local/bin/backup_filebrowser.sh >> /var/log/filebrowser_backup.log 2>&1

This line means: "Every day at 3 hours 0 minutes, run the script and redirect its output to a log file."

4. Where to store backups

Storing backups on the same server as the original data is dangerous. In case of server failure, you will lose both the data and its copies. It is recommended to use external storage:

  • S3-compatible storage: Cloud services such as AWS S3, Backblaze B2, DigitalOcean Spaces, or MinIO (for self-hosted S3). Command-line clients (e.g., awscli, rclone) exist that can automatically upload archives to S3.
  • Separate VPS or NAS: You can configure rsync to synchronize backups to another VPS or Network Attached Storage (NAS) in your local network.
  • External hard drive: For very small volumes and personal use, but requires manual connection and disconnection.

Integration with S3 using rclone:


# Example rclone installation
sudo apt install rclone -y
rclone config # Interactive S3 storage configuration

# Example of adding to the backup script after archive creation:
# rclone copy "$BACKUP_DIR/$ARCHIVE_NAME" "remote_s3_name:bucket_name/filebrowser/"

5. Updates: rolling vs maintenance window

Regular software updates are important for security and stability. There are two approaches:

  • Rolling updates (continuous updates): Suitable for OS and system packages. Simply run sudo apt update && sudo apt upgrade -y weekly or monthly.
  • Maintenance window: For critical applications such as File Browser or Nginx, it is better to schedule updates.
    • File Browser update: Download the new binary version from GitHub, stop the service (sudo systemctl stop filebrowser), replace the old binary with the new one (sudo mv new_filebrowser /usr/local/bin/filebrowser), then start the service (sudo systemctl start filebrowser).
    • Nginx update: Usually updated via apt upgrade. After updating, always check the configuration (sudo nginx -t) and reload the service (sudo systemctl reload nginx).
    • Certbot update: Performed automatically via Snap. Ensure certificate auto-renewal is working: sudo certbot renew --dry-run.

Always test updates on a test server, if possible, before applying them to production.

Troubleshooting + FAQ

Even with careful setup, problems can arise. Here you will find answers to frequently asked questions and solutions to common issues.

File Browser does not start or is inaccessible via the web interface.

What to check:

  1. Service Status: Ensure that the File Browser service is running.
    sudo systemctl status filebrowser
    If it is not running, try starting it: sudo systemctl start filebrowser.
  2. Service Logs: Check File Browser logs for errors.
    sudo journalctl -u filebrowser --since "1 hour ago"
    Look for error messages that may indicate a problem with the configuration file (filebrowser.json) or directory permissions for /var/lib/filebrowser.
  3. Port: Ensure that File Browser is listening on port 8080 on 127.0.0.1.
    sudo ss -tulnp | grep 8080
    You should see the filebrowser process, listening on 127.0.0.1:8080. If not, check the ExecStart parameters in /etc/systemd/system/filebrowser.service.
  4. Permissions: Ensure that the filebrowser user has read/write permissions for /var/lib/filebrowser and /etc/filebrowser.
    sudo chown -R filebrowser:filebrowser /var/lib/filebrowser /etc/filebrowser

Nginx returns a 502 Bad Gateway error.

What to check:

  1. File Browser Availability: A 502 error usually means that Nginx cannot communicate with File Browser. Ensure that File Browser is running and accessible on 127.0.0.1:8080 (see the previous point).
  2. Nginx Logs: Check Nginx error logs.
    sudo tail -f /var/log/nginx/error.log
    Look for "connection refused" or "upstream timed out" messages.
  3. Nginx Configuration: Ensure that proxy_pass in your Nginx config (/etc/nginx/sites-available/filebrowser.conf) correctly points to http://127.0.0.1:8080.
    sudo nginx -t
    If there are syntax errors, fix them and reload Nginx: sudo systemctl reload nginx.

SSL/HTTPS issues.

What to check:

  1. Certbot: Ensure that Certbot has successfully obtained and installed certificates.
    sudo certbot certificates
    You should see your domain in the list. If not, try running sudo certbot --nginx -d yourdomain.com again.
  2. Nginx Configuration: Ensure that in the Nginx config (filebrowser.conf) the paths to ssl_certificate and ssl_certificate_key are correct and point to files in /etc/letsencrypt/live/yourdomain.com/. Certbot should have configured this automatically.
  3. Firewall (UFW): Ensure that port 443 (HTTPS) is allowed.
    sudo ufw status verbose
    Either "Nginx Full" or port 443 should be allowed. If not: sudo ufw allow "Nginx Full".
  4. DNS: Ensure that your domain correctly points to your VPS's IP address. Use dig yourdomain.com or ping yourdomain.com.
  5. Certificate Renewal: Check if automatic renewal is working.
    sudo certbot renew --dry-run
    This will not renew certificates but will test the process.

Cannot upload large files.

What to check:

  1. Nginx client_max_body_size: In your Nginx configuration (filebrowser.conf) find the client_max_body_size line. Set it to a sufficiently large value, for example, 100G (100 gigabytes) or 0 for unlimited size.
    client_max_body_size 100G;
    After making changes, reload Nginx: sudo systemctl reload nginx.
  2. Free Disk Space: Ensure that your VPS has enough free space for the uploaded files.
    df -h

What is the minimum VPS configuration suitable for File Browser?

For personal use or a very small team with a moderate volume of files, a VPS with 1 vCPU, 1 GB of RAM, and 20-40 GB SSD will be minimally suitable. This will be sufficient for the operating system, File Browser, Nginx, and Certbot. However, if you plan to actively use File Browser, store many large files, or serve multiple users, it is recommended to consider a configuration with 2 vCPUs, 2-4 GB RAM, and 80+ GB SSD for more comfortable and stable operation.

What to choose – VPS or dedicated for this task?

For most tasks related to File Browser, a VPS is the optimal choice. It offers sufficient performance, flexibility, and cost-effectiveness. A dedicated server should only be considered if you have a very high load (hundreds of concurrent users), require huge amounts of data storage (several terabytes), or have specific hardware, security, or compliance requirements that cannot be met with a VPS. For most File Browser users, a VPS will be more than sufficient.

How to add new users to File Browser?

After logging into File Browser with an administrator account, you can navigate to the "Users" section in the interface and add new users, setting their login, password, and access permissions to various directories. You can also use the filebrowser users add command via SSH, as we did for the first administrator.


# Example of adding a new user "john" with password "securepassword" and read-only access
sudo /usr/local/bin/filebrowser users add john securepassword --perm.read --config /etc/filebrowser/filebrowser.json

# Example of adding a user with full permissions to a specific directory
# First, create the directory, for example, /var/lib/filebrowser/john_files
# Then add the user
sudo mkdir -p /var/lib/filebrowser/john_files
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser/john_files
sudo /usr/local/bin/filebrowser users add jane securepassword --perm.create --perm.delete --perm.modify --perm.rename --perm.share --scope /var/lib/filebrowser/john_files --config /etc/filebrowser/filebrowser.json

Don't forget to restart the File Browser service after manually editing filebrowser.json or adding users via the command line for the changes to take effect: sudo systemctl restart filebrowser.

Conclusions and Next Steps

Diagram: Conclusions and Next Steps
Diagram: Conclusions and Next Steps

Congratulations! You have successfully installed and configured File Browser on your VPS, ensuring secure access via Nginx and SSL. You now have a fully controlled, private, and user-friendly cloud file storage solution that is independent of third-party services.

This solution provides you with flexibility and independence, allowing you to manage your data as you see fit, while maintaining privacy and security.

Next Steps:

  • User and Access Management: Set up additional accounts for your team members or family, assigning appropriate access permissions to specific directories for each user.
  • Storage Expansion: If you need more space, consider mounting external drives (e.g., block storage from your VPS provider) or integrating with S3-compatible storage to scale File Browser's disk space.
  • Monitoring and Logging: Set up basic monitoring for your VPS and File Browser (e.g., using Prometheus and Grafana) to track performance and detect issues promptly. Regularly review system logs to identify suspicious activity.

Was this guide helpful?

Your feedback helps us improve our guides.

Share this post:

Send this guide to someone who may find it useful.

Telegram VKVK WhatsApp Facebook LinkedIn XX

installation file browser on vps: file management via web interface with nginx and ssl
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.