FileBrowser is your self-hosted Swiss Army knife for file management – a lightweight web interface that lets you upload, download, edit, and organize files directly from your browser. Whether you’re managing personal documents, sharing files with your team, or backing up photos, Docker Compose streamlines deployment by containerizing everything in one reproducible setup. Here’s how to get it running on Ubuntu in minutes.
Why Choose This Setup?
- Privacy first: Your files stay on your hardware
- Zero subscription fees: Free and open-source
- Access anywhere: Browser-based access from any device
- Docker benefits: Isolated, reproducible, and easy updates
Prerequisites
Gather these before starting:
- Ubuntu 18.04 or newer
- User account with
sudoprivileges - Terminal access (Ctrl+Alt+T)
Step 1: Install Docker Engine
Run these commands in sequence:
# Update repositories
sudo apt update
# Install required packages
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 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 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
# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# Enable Docker at boot
sudo systemctl enable docker --now
# Verify installation
sudo docker run hello-world Troubleshooting:
If you see Permission denied, add your user to the docker group:
sudo usermod -aG docker $USER && newgrp docker
Step 2: Install Docker Compose
Get the standalone version:
# Download latest binary
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Make it executable
sudo chmod +x /usr/local/bin/docker-compose
# Verify installation
docker-compose --version Step 3: Configure FileBrowser
Create a project directory and navigate into it:
mkdir ~/filebrowser && cd ~/filebrowser Create the docker-compose.yml file:
nano docker-compose.ymlPaste this configuration (customize paths as needed):
version: '3.8'
services:
filebrowser:
image: filebrowser/filebrowser:latest
container_name: filebrowser
restart: unless-stopped
ports:
- "8080:80" # Access at http://your-ip:8080
volumes:
- /path/to/your/files:/srv # Replace with your file directory
- ./filebrowser_config/database.db:/database/filebrowser.db
- ./filebrowser_config/settings.json:/config/settings.json
environment:
- PUID=1000 # Match your user ID (run `id -u`)
- PGID=1000 # Match your group ID (run `id -g`)Key adjustments:
- Replace
/path/to/your/fileswith your actual file directory (e.g.,$HOME/Documents) - For user/group IDs: Run
id -uandid -gand updatePUID/PGID
Critical:
Pre-create the database file to avoid permission errors:
mkdir -p filebrowser_config && touch filebrowser_config/database.db
Step 4: Launch and Access
Start the container:
docker-compose up -dAccess the web UI:
- Open
http://your-server-ip:8080in your browser - Log in with default credentials:
- Username:
admin - Password:
admin
- Username:
First-time configuration:
- Immediately change credentials under Settings > User Management
- Configure root directory in Settings > Global Settings
Step 5: Daily Use Tips
- Upload files: Drag-and-drop into the browser interface
- Share files: Generate share links under the “Share” menu
- Edit files: Click text files to open the built-in editor
- Mobile access: Works perfectly on smartphone browsers
Common Issues & Fixes
1. Permission Denied Errors
# Fix ownership of database file
sudo chown -R $USER:$USER ~/filebrowser/filebrowser_config2. Container Fails to Start
Check logs:
docker-compose logs filebrowserCommon causes:
- Database path typo → Verify volume paths
- Port conflict → Change
8080:80to8081:80
3. Can’t Upload Files
If using Cloudflare:
- Disable CDN caching temporarily
- Ensure
Cache-Control: no-cacheheaders are present
4. Forgot Password
Reset via terminal:
docker exec -it filebrowser filebrowser users update admin --password=newpasswordWhy This Setup Rocks
- Updates made easy: Run
docker-compose pull && docker-compose up -d - Resource efficient: Uses <100MB RAM
- Backup friendly: Entire setup is in
~/filebrowser - Portable: Move to another server by copying the directory
FileBrowser transforms any Ubuntu machine into a private cloud – no monthly fees, no data harvesting. Once you taste self-hosted freedom, you’ll wonder how you ever settled for proprietary alternatives.
PRO TIP:
Add automatic backups with cron:
0 3 * * * tar -czf ~/filebrowser_backup_$(date +\%F).tgz ~/filebrowser














