Filebrowser on a VPS is a convenient and lightweight web-based file management application that allows you to access your data via a browser from any device. For its installation on a virtual server, it's optimal to use Docker containers, which significantly simplifies deployment and maintenance, transforming your virtual server into a personal cloud storage or a file server for a small team.
What is Filebrowser and why is it ideal for a VPS?
Filebrowser is a minimalistic yet powerful web-based file manager written in Go. It allows you to easily manage files and folders on your server through any web browser, providing functionality for uploading, downloading, renaming, deleting, creating folders, and even previewing media files. Thanks to its lightweight nature and low resource consumption, Filebrowser on a VPS is an excellent solution for those looking for a simple and efficient way to organize file access without the need to deploy complex and resource-intensive cloud platforms like Nextcloud or Owncloud.
Advantages of Filebrowser:
- Lightweight and Fast: Developed in Go, ensuring high performance and minimal system resource consumption. This is critically important for VPS with limited capacities.
- Easy Installation and Configuration: Especially when using Docker, Filebrowser installation takes just a few minutes.
- Cross-platform: Works on most operating systems (Linux, Windows, macOS, BSD).
- Security: Supports user authentication, the ability to restrict access to specific directories, and HTTPS integration.
- Extensibility: Supports multiple users, the ability to create public links for file sharing, and interface customization.
- Version Control: Git integration for tracking file changes (optional).
- Self-hosted: You fully control your data, which is a key advantage compared to commercial cloud services. This makes Filebrowser self-hosted an attractive choice for those who value privacy and sovereignty over their data.
Filebrowser Usage Scenarios on a Server
Filebrowser on a server can be applied in a wide variety of scenarios:
- Personal Cloud Storage: Replace Google Drive or Dropbox with your own solution where you fully control your data.
- File Server for a Small Team: Provide employees with convenient access to shared documents and resources.
- Media File Management: Store and view photos, videos, and music directly through your browser.
- File Access for Web Developers: A convenient way to upload and edit files on a web server.
- File Sharing: Create temporary links for quick transfer of large files without using third-party services.
- Backup and Synchronization: While Filebrowser itself is not a backup solution, it can serve as a convenient interface for accessing data that has been synchronized using other tools, such as Syncthing on a VPS or Seafile on a VPS.
System Requirements for Filebrowser
Filebrowser stands out for its modest resource consumption, making it an ideal candidate for deployment even on the most budget-friendly VPS plans. However, the final requirements will depend on the anticipated workload and the volume of data stored.
Minimum Requirements for a Single User or Small Project
For a single user or a small project with infrequent file access (e.g., for a personal cloud or file sharing):
- Processor: 1 vCPU (virtual core). Modern processors with a clock speed of 2.0 GHz or higher will be more than sufficient.
- RAM: 512 MB. Filebrowser itself consumes about 20-50 MB RAM in idle mode. The rest will be needed for the operating system and file caching.
- Disk Space: 10-20 GB NVMe SSD. NVMe drives significantly accelerate file operations, which is critical for any file server. The disk size, of course, depends on how much data you plan to store.
- Operating System: Ubuntu 20.04+, Debian 11+, CentOS 8+, or any other Linux distribution that supports Docker.
- Network: Stable internet connection, minimum speed of 100 Mbps.
Recommended Requirements for a Small Team (5-10 Users)
If you plan to use Filebrowser for a small team with simultaneous file access, you should consider a more powerful configuration:
- Processor: 2 vCPU. This will ensure better performance for simultaneous requests and file processing.
- RAM: 1-2 GB. Additional RAM will allow the OS to better cache data and handle a larger number of parallel connections.
- Disk Space: 50 GB+ NVMe SSD. Disk space should be planned with data growth in mind. NVMe is the de facto standard for file servers due to its high I/O speed.
- Operating System: Ubuntu 22.04 LTS or Debian 12.
- Network: Gigabit network interface (1 Gbps) for fast uploading and downloading of files.
It's important to remember that Filebrowser is not inherently a high-load application, and the main server load will be generated by the file transfer process itself and disk operations. Therefore, choosing a fast disk (NVMe SSD) and sufficient RAM for caching is a higher priority than the number of CPU cores.
Looking for a reliable server for your projects?
VPS from $10/month and dedicated servers from $9/month with NVMe, DDoS protection, and 24/7 support.
View offers →Step-by-Step Installation of Filebrowser on a VPS using Docker
The simplest and recommended way to install Filebrowser on your VPS is by using Docker and Docker Compose. This approach ensures application isolation, ease of updates, and portability.
VPS Preparation: Installing Docker and Docker Compose
Before proceeding with Filebrowser deployment, you need to install Docker and Docker Compose on your server. Command examples are provided for Ubuntu/Debian.
1. System Update
Always start by updating the package manager and installed packages:
sudo apt update
sudo apt upgrade -y
2. Install Docker Engine
Install the necessary packages for Docker:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Add Docker's official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Add the Docker repository:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Update the package list and install Docker Engine:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
Add the current user to the docker group to avoid using sudo with every Docker command (session restart or logout/login may be required):
sudo usermod -aG docker $USER
Verify Docker installation:
docker --version
docker run hello-world
3. Install Docker Compose
Download the latest stable version of Docker Compose (check the Docker Compose GitHub repository for the current version):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Make the file executable:
sudo chmod +x /usr/local/bin/docker-compose
Verify Docker Compose installation:
docker-compose --version
For a more detailed guide on working with Docker on a VPS, you can refer to our other articles, for example, on how to deploy Gitea on a VPS or PocketBase on a VPS, which also use Docker.
Deploying Filebrowser via Docker Compose
Create a directory for Filebrowser and navigate into it:
mkdir ~/filebrowser
cd ~/filebrowser
Create the docker-compose.yml file:
nano docker-compose.yml
Insert the following content:
version: '3.8'
services:
filebrowser:
image: filebrowser/filebrowser:latest
container_name: filebrowser
restart: unless-stopped
ports:
- "8080:80" # External port 8080, internal 80. You can change 8080 to any free port.
volumes:
- ./data:/data # This is where Filebrowser files (settings, user database) will be stored
- /path/to/your/files:/srv # This is where your files, which you want to manage via Filebrowser, will be
# Example: - /home/user/my_documents:/srv/documents
# Example: - /mnt/external_drive:/srv/shared
environment:
# Filebrowser settings (optional)
# FB_BASEURL: "/files" # If you are using a reverse proxy and want Filebrowser to be accessible via a subpath
# FB_NOAUTH: "true" # Disable authentication (NOT RECOMMENDED for public access)
# FB_LOGLEVEL: "debug" # Logging level
PUID: "1000" # User ID under which Filebrowser will run (for correct file access permissions)
PGID: "1000" # Group ID under which Filebrowser will run
TZ: "Europe/Moscow" # Set your timezone
Important notes:
- Replace
/path/to/your/fileswith the actual path to the directory on your VPS where the files you want to manage are stored. You can add multiple lines of- /host/path:/container/pathto mount several directories. PUIDandPGID: These variables define the User ID and Group ID under which Filebrowser will run inside the container. For Filebrowser to have correct read and write permissions for your files, these IDs must match the ID of the user who owns your files on the host system. You can find your PUID and PGID by running the commandid $USERon your VPS. Typically, for the first user, it's 1000.ports: - "8080:80": Filebrowser by default listens on port 80 inside the container. We map it to port 8080 on your host VPS. You can change 8080 to any other free port../data:/data: This mount will save Filebrowser's configuration (users, settings) to thedatasubdirectory in the current directory on your VPS. This is very important for preserving data after container restarts.
Save the file (Ctrl+O, Enter, Ctrl+X).
Start the container:
docker-compose up -d
The -d option means running in detached mode.
Check the container status:
docker-compose ps
Now Filebrowser should be accessible at http://YOUR_VPS_IP:8080.
Upon first launch, you will be prompted to create administrator credentials. Default login: admin, password: admin. Be sure to change them immediately after logging in!
Need a dedicated server?
Compare prices from top providers. Configure and order in minutes.
Setting Up Reverse Proxy (Nginx/Caddy) and HTTPS
Direct access to Filebrowser via an IP address and port 8080 is not an optimal solution for a production environment. To ensure security, use a domain name, and encrypt traffic (HTTPS), it is recommended to set up a reverse proxy server. We will cover two popular options: Nginx and Caddy.
1. Setting Up Reverse Proxy with Nginx and Let's Encrypt (Certbot)
Nginx is a powerful and widely used web server that is excellent for acting as a reverse proxy.
1.1. Install Nginx
sudo apt install nginx -y
1.2. Configure Domain Name
Ensure that your domain (e.g., files.yourdomain.com) points to your VPS's IP address in your DNS records (A-record).
1.3. Create Nginx Configuration File for Filebrowser
Create a new configuration file for your domain:
sudo nano /etc/nginx/sites-available/filebrowser.conf
Insert the following content (replace files.yourdomain.com with your domain):
server {
listen 80;
listen [::]:80;
server_name files.yourdomain.com;
location / {
proxy_pass http://localhost:8080; # Or IP_VPS:8080 if Filebrowser is not running on localhost
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;
proxy_redirect off;
}
}
Save the file.
1.4. Activate Configuration and Check Syntax
sudo ln -s /etc/nginx/sites-available/filebrowser.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
1.5. Install Certbot and Obtain SSL Certificate (HTTPS)
Certbot from Let's Encrypt allows you to obtain free SSL certificates. Install Certbot:
sudo apt install certbot python3-certbot-nginx -y
Obtain a certificate for your domain:
sudo certbot --nginx -d files.yourdomain.com
Follow the Certbot instructions. It will automatically modify your Nginx configuration to use HTTPS.
After successful completion, your Filebrowser will be accessible at https://files.yourdomain.com.
2. Setting Up Reverse Proxy with Caddy
Caddy is a modern web server with automatic HTTPS support, which significantly simplifies configuration.
2.1. Install Caddy
Add the GPG key:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
Add the Caddy repository:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
Update the package list and install Caddy:
sudo apt update
sudo apt install caddy -y
2.2. Configure Domain Name
As with Nginx, ensure that your domain (e.g., files.yourdomain.com) points to your VPS's IP address.
2.3. Create Caddyfile Configuration File
Create or edit the main Caddy configuration file:
sudo nano /etc/caddy/Caddyfile
Remove or comment out existing content and add the following (replace files.yourdomain.com with your domain):
files.yourdomain.com {
reverse_proxy localhost:8080 # Or IP_VPS:8080
}
Save the file.
2.4. Restart Caddy
sudo systemctl restart caddy
sudo systemctl enable caddy
Caddy will automatically obtain and configure an SSL certificate for your domain. Your Filebrowser will be accessible at https://files.yourdomain.com.
Backups and Updates for Filebrowser on a VPS
Regular backups and timely updates are key to the stable and secure operation of any application, especially Filebrowser on a server where important data is stored.
Backup (Backups)
In the context of Filebrowser, a backup includes two main parts: Filebrowser's own data (users, settings) and the files that Filebrowser manages.
1. Backing Up Filebrowser Data (Configuration and Database)
If you followed our Docker Compose instructions, Filebrowser's data is stored in the ./data directory relative to your docker-compose.yml.
To back up this directory, simply copy it:
cd ~/filebrowser # Navigate to the directory with docker-compose.yml
sudo tar -czvf filebrowser_config_$(date +%Y%m%d%H%M%S).tar.gz data/
This will create a compressed .tar.gz archive of your configuration. It is recommended to store these backups on separate storage, not on the same VPS.
2. Backing Up Managed Files
The files you manage through Filebrowser are located in the directories you mounted into the container (e.g., /path/to/your/files). Methods for backing up these files can vary:
- rsync: Use
rsyncfor incremental copying of files to a remote server or a local backup directory. - Cloud Storage: If the data volume is large, consider synchronizing with S3-compatible storage or other cloud services using tools like
rclone. - File System Snapshots: Many VPS providers, including Valebyte, offer the ability to create snapshots of your VPS. This is the simplest way to create a full backup of the entire system, including Filebrowser and all its data. It is recommended to take snapshots before major updates or changes.
Recommendation: Set up automatic backups using cron. For example, for daily configuration backups:
# Open crontab for editing
crontab -e
# Add the following line for a daily backup at 03:00 AM
0 3 * * * cd /root/filebrowser && tar -czvf /var/backups/filebrowser_config_$(date +\%Y\%m\%d).tar.gz data/ && find /var/backups -name "filebrowser_config_*.tar.gz" -mtime +7 -delete
This command will daily create a configuration backup and delete backups older than 7 days.
Filebrowser Updates
Updating the Filebrowser Docker container is a simple process:
- Stop the current container:
cd ~/filebrowser docker-compose down - Pull the new image version:
docker-compose pull filebrowser - Start the container with the new image:
docker-compose up -d
Your data (users, settings) will be preserved because they are located in the mounted volume ./data, which is not deleted when the container is stopped.
Operating System and Docker Updates
Remember to regularly update your VPS's operating system and the Docker Engine itself. This ensures up-to-date security patches and stable operation:
sudo apt update
sudo apt upgrade -y
sudo systemctl restart docker
Choosing a VPS Configuration for Real-World Filebrowser Workloads
Choosing the right VPS is crucial for ensuring stable and performant Filebrowser operation. Valebyte.com offers a wide range of VPS plans that can be adapted to various Filebrowser usage scenarios.
Defining Workload and Choosing a Plan
The load on Filebrowser is primarily determined by the following factors:
- Number of concurrently active users: The more users simultaneously upload or download files, the higher the load on the CPU, memory, and especially the disk subsystem.
- Volume and size of files: Working with a large number of small files or very large files (e.g., videos) requires more resources.
- Operation intensity: Frequent read/write operations, indexing, or file searching.
- Additional services: If other applications are running on the same VPS (e.g., a web server, database, monitoring like Netdata on a VPS), this increases the overall resource requirements.
Recommended VPS Configurations from Valebyte.com
We have prepared a table with recommended VPS configurations for various Filebrowser usage scenarios, based on Valebyte.com's plans. The prices indicated are approximate and subject to change.
| Usage Scenario | vCPU | RAM | Disk (NVMe SSD) | Network Bandwidth | Approximate Cost/Month* | Optimal for |
|---|---|---|---|---|---|---|
| Personal Cloud / Testing | 1 | 1 GB | 25 GB | 100 Mbps | from $5 | 1-2 users, light files, infrequent access. Ideal for getting started with Filebrowser self-hosted. |
| Small Team / Document Management | 2 | 2 GB | 50 GB | 500 Mbps | from $10 | 3-7 users, medium volume of documents and images, periodic access. |
| Medium Team / Media Hosting | 2-4 | 4 GB | 100-200 GB | 1 Gbps | from $20 | 8-15 users, large files (video, archives), frequent access, possibly other background tasks. |
| Large Project / High Load | 4-8 | 8-16 GB | 200 GB+ | 1 Gbps+ | from $40 | 15+ users, intensive file operations, critically important data, possibly with integration with other services. |
*Prices are approximate and may vary depending on the provider and current promotions. Valebyte.com offers competitive plans with high-performance NVMe SSDs and stable network channels.
Important Considerations When Choosing a VPS
- Disk Type: Always choose a VPS with NVMe SSD. The performance difference compared to regular SATA SSDs or HDDs is enormous, especially for file operations.
- Server Location: Choose a data center that is geographically closer to your primary users to minimize latency.
- Network Connection: Ensure that the provider offers sufficient network bandwidth. For a file server, internet speed is critical.
- Scalability: Choose a provider that allows you to easily scale your VPS resources (CPU, RAM, Disk) as your needs grow.
- Support: The availability of prompt and qualified technical support can be crucial when problems arise.
For a more general understanding of server selection, you can read our article What is a Server and a Dedicated Server: A Complete Guide for Beginners.
Need a dedicated server?
Compare prices from top providers. Configure and order in minutes.
Recommendations for Filebrowser Optimization and Security
After installing Filebrowser and configuring it, it's important to focus on optimization and security to ensure stable and protected operation of your file manager.
Performance Optimization
- Using NVMe SSD: As mentioned, this is the most significant factor for file server performance.
- Sufficient RAM: The operating system will use free RAM to cache disk operations, which significantly speeds up access to frequently used files.
- Network Channel: Ensure your VPS has sufficient bandwidth. For active file sharing, 1 Gbps is recommended.
- Limiting the number of users: If you encounter performance issues, consider limiting the number of concurrently active users or using a more powerful VPS.
- Nginx/Caddy Optimization: For high-load scenarios, caching and buffering parameters in the reverse proxy configuration can be finely tuned.
Enhancing Security
- Change Administrator Password: Immediately after the first login, change the default
adminpassword to a strong and unique one. - Use HTTPS: Always use HTTPS to access Filebrowser. This encrypts traffic between your browser and the server, protecting logins, passwords, and transferred files.
- Configure Firewall (UFW): Restrict access to your VPS ports. Open only the necessary ports (e.g., 22 for SSH, 80 and 443 for Nginx/Caddy).
- Restrict Directory Access: In Filebrowser, you can configure access rights for different users, limiting them to specific directories.
- Two-Factor Authentication (2FA): Filebrowser does not have built-in 2FA, but you can implement it at the reverse proxy level using solutions like Authelia on a VPS or Keycloak on a VPS, which can act as an intermediate authentication layer.
- Regular Updates: Keep Filebrowser, Docker, and the operating system up to date to protect against known vulnerabilities.
- Monitoring: Use monitoring systems (e.g., Netdata) to track the status of your VPS and detect anomalies.
- Limit Public Links: If you use the public link sharing feature, set expiration dates and passwords for them.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # If you are using Nginx
# Or: sudo ufw allow 80,443/tcp # If you are using Caddy
sudo ufw enable
sudo ufw status
Conclusion
Filebrowser on a VPS is an efficient, lightweight, and secure self-hosted file management solution that provides full control over your data. By using Docker and a well-chosen VPS from Valebyte.com, you can deploy a reliable file server tailored to your needs, whether it's a personal cloud or corporate storage, with minimal costs and maximum flexibility.
Ready to choose a server?
VPS and dedicated servers in 72+ countries with instant activation and full root access.
Get Started Now →