Skip to content

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
└── .dockerignore

Creating the Dockerfile

FROM filebrowser/filebrowser:latest
# Create directories
RUN mkdir -p /srv /database
# Copy configuration
COPY .filebrowser.json /.filebrowser.json
# Expose web interface
EXPOSE 8080
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1

Configuration 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:

VariableDescription
FB_DATABASEDatabase file path
FB_ROOTRoot directory for file browsing
FB_PORTHTTP port
FB_ADDRESSBind address
FB_BASEURLBase URL path

Deploying File Browser on Klutch.sh

    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:

    • Select HTTP as the traffic type
    • Set the internal port to 8080

    Attach Persistent Volumes

    Mount PathSizePurpose
    /srv50+ GBFile storage (adjust based on needs)
    /database1 GBSQLite 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:

    • Username: admin
    • Password: admin

    Change the default password immediately after first login.

Initial Configuration

Changing Admin Password

  1. Log in with default credentials
  2. Go to Settings (gear icon)
  3. Click on your username
  4. Change password
  5. Save changes

Creating Users

  1. Navigate to Settings > User Management
  2. Click “New” to add a user
  3. Set username and password
  4. Configure scope (directory access)
  5. Set permissions
  6. Save the user

User Permissions

PermissionDescription
AdminFull access including user management
CreateCreate files and folders
RenameRename files and folders
ModifyEdit file contents
DeleteDelete files and folders
ShareCreate share links
DownloadDownload 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:

  1. Select file or folder
  2. Click the share icon
  3. Set expiration (optional)
  4. Set password (optional)
  5. Copy the generated link

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):

  1. Go to Settings > Global Settings
  2. Add commands under “Commands”
  3. Commands appear in the right-click menu

Branding

Customize the appearance:

  1. Settings > Global Settings
  2. Set instance name
  3. Choose color theme
  4. 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
  • 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.