Deploying File Browser
Introduction
File Browser is a create-your-own-cloud solution that provides a web-based file management interface within a specified directory. It allows you to upload, download, organize, edit, and share files through an intuitive web UI, turning any storage volume into a personal cloud drive.
Built with Go and Vue.js, File Browser is fast, lightweight, and easy to deploy. It provides many features typically found in commercial cloud storage solutions while keeping your data entirely under your control.
Key highlights of File Browser:
- Web-Based Management: Full file operations through a modern web interface
- Multi-User Support: Create multiple users with customizable permissions
- File Sharing: Generate shareable links for files and folders
- Built-in Editor: Edit text files directly in the browser
- Media Preview: Preview images, videos, and audio files
- Search: Fast file and folder search
- Command Execution: Run shell commands from the interface (optional)
- Custom Branding: Customize the appearance with themes
- API Access: Full REST API for automation
- Lightweight: Minimal resource usage with a single binary
- Open Source: Licensed under Apache 2.0
This guide walks through deploying File Browser on Klutch.sh using Docker, configuring persistent storage, and setting up secure file access.
Why Deploy File Browser on Klutch.sh
Deploying File Browser on Klutch.sh provides several advantages:
Remote File Access: Access your files from anywhere with internet connectivity.
Private Cloud Storage: Keep your data on infrastructure you control rather than third-party services.
HTTPS Security: Automatic TLS encryption protects file transfers.
Persistent Storage: Attach large volumes for significant file storage capacity.
Team Collaboration: Multi-user support enables team file sharing.
Integration Ready: Use as a file management layer for other applications.
Prerequisites
Before deploying File Browser on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Files you want to manage (or start with an empty volume)
- Basic familiarity with Docker
Understanding File Browser Architecture
File Browser has a simple architecture:
Go Backend: Handles file operations, authentication, and API requests.
Vue.js Frontend: Provides the responsive web interface.
SQLite Database: Stores user accounts, settings, and share information.
File System: Direct access to the underlying file system for operations.
Preparing Your Repository
Create a GitHub repository with your File Browser configuration.
Repository Structure
filebrowser-deploy/├── Dockerfile├── .filebrowser.json└── .dockerignoreCreating the Dockerfile
FROM filebrowser/filebrowser:latest
# Create directoriesRUN mkdir -p /srv /database
# Copy configurationCOPY .filebrowser.json /.filebrowser.json
# Expose web interfaceEXPOSE 8080
# Health checkHEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1Configuration File
Create a .filebrowser.json configuration file:
{ "port": 8080, "baseURL": "", "address": "0.0.0.0", "log": "stdout", "database": "/database/filebrowser.db", "root": "/srv"}Environment Variables Reference
File Browser primarily uses configuration files, but supports some environment variables:
| Variable | Description |
|---|---|
FB_DATABASE | Database file path |
FB_ROOT | Root directory for file browsing |
FB_PORT | HTTP port |
FB_ADDRESS | Bind address |
FB_BASEURL | Base URL path |
Deploying File Browser on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080
- Username:
admin - Password:
admin
Push Your Repository to GitHub
Commit your Dockerfile and configuration to GitHub.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “filebrowser” or “cloud-files”.
Create a New App
Create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set up HTTP traffic:
Attach Persistent Volumes
| Mount Path | Size | Purpose |
|---|---|---|
/srv | 50+ GB | File storage (adjust based on needs) |
/database | 1 GB | SQLite database |
Deploy Your Application
Click Deploy to build and launch File Browser.
Complete Initial Login
Access your File Browser at the app URL. Default credentials:
Change the default password immediately after first login.
Initial Configuration
Changing Admin Password
- Log in with default credentials
- Go to Settings (gear icon)
- Click on your username
- Change password
- Save changes
Creating Users
- Navigate to Settings > User Management
- Click “New” to add a user
- Set username and password
- Configure scope (directory access)
- Set permissions
- Save the user
User Permissions
| Permission | Description |
|---|---|
| Admin | Full access including user management |
| Create | Create files and folders |
| Rename | Rename files and folders |
| Modify | Edit file contents |
| Delete | Delete files and folders |
| Share | Create share links |
| Download | Download files |
Directory Scopes
Limit users to specific directories:
/srv/documents- Access only documents folder/srv/media- Access only media folder/srv- Full access to all files
Using File Browser
File Operations
Upload Files:
- Drag and drop files onto the interface
- Use the upload button for file selection
- Upload entire folders
Download Files:
- Click download icon on files
- Select multiple files and download as ZIP
- Use keyboard shortcuts for quick actions
Organize Files:
- Create folders with the new folder button
- Move files with drag and drop or cut/paste
- Rename files and folders inline
Text Editing
Edit text files directly in the browser:
- Syntax highlighting for code files
- Multiple editor themes
- Save with Ctrl+S
Media Preview
Built-in preview support for:
- Images (jpg, png, gif, svg, webp)
- Videos (mp4, webm)
- Audio (mp3, ogg, wav)
- Documents (pdf in some browsers)
File Sharing
Create shareable links:
- Select file or folder
- Click the share icon
- Set expiration (optional)
- Set password (optional)
- Copy the generated link
Search
Find files quickly:
- Use the search bar in the header
- Search filters by file name
- Navigate to results with one click
Advanced Configuration
Custom Commands
Enable shell command execution (use with caution):
- Go to Settings > Global Settings
- Add commands under “Commands”
- Commands appear in the right-click menu
Branding
Customize the appearance:
- Settings > Global Settings
- Set instance name
- Choose color theme
- Upload custom logo (if supported)
API Access
File Browser provides a REST API:
- Authentication via JWT tokens
- Full file operation support
- User management endpoints
Security Best Practices
Strong Passwords
- Change default admin password immediately
- Enforce strong passwords for all users
- Consider using single sign-on if available
Permission Management
- Use least-privilege principle
- Limit admin accounts
- Scope users to necessary directories only
Share Link Security
- Set expiration on share links
- Use passwords for sensitive shares
- Audit active shares regularly
Regular Backups
- Back up the database volume
- Consider versioned backups for important files
Troubleshooting
Cannot Log In
- Verify credentials are correct
- Check if database file is accessible
- Reset password using CLI if locked out
Upload Failures
- Check available disk space
- Verify file permissions on volume
- Review browser console for errors
Slow Performance
- Large directories may take time to load
- Consider organizing files into subdirectories
- Check server resource allocation
Permission Errors
- Verify user has required permissions
- Check directory scope settings
- Review file system permissions on volume
Additional Resources
Conclusion
Deploying File Browser on Klutch.sh creates a powerful, private cloud storage solution that you control. Whether you need remote file access, team file sharing, or a web interface for your storage volumes, File Browser provides an intuitive solution with comprehensive features.
The combination of File Browser’s rich feature set and Klutch.sh’s persistent storage and HTTPS support creates an ideal platform for personal or team file management.