File Browser Web Interface
Web-based file manager with sharing and user management.
Overview
File Browser is an open-source web-based file manager written in Go that transforms any server directory into a feature-rich web interface. Created by Henrique Dias, it provides a modern alternative to traditional FTP or SFTP access, offering file uploads, downloads, editing, sharing, and user management through a clean web interface. The application supports multiple authentication backends, custom themes, and command execution, making it a powerful tool for both personal and enterprise file management scenarios.
This stack combines File Browser with NGINX to create a production-ready file management solution. File Browser handles the core functionality of file operations, user authentication, and web interface rendering, while NGINX serves as a reverse proxy providing SSL termination, request routing, and static asset optimization. NGINX's high-performance architecture ensures the file management interface remains responsive even under heavy load, while its caching capabilities reduce server strain during frequent file downloads.
This combination is ideal for system administrators managing shared storage, development teams needing collaborative file access, and organizations requiring secure file sharing without cloud dependencies. The NGINX frontend allows for advanced configurations like custom domains, SSL certificates, rate limiting, and integration with existing web infrastructure, making File Browser suitable for enterprise deployments while maintaining the simplicity needed for home lab environments.
Key Features
- Multi-user authentication with granular permission controls per directory and file operation
- Real-time file editing with syntax highlighting for code files and documents
- Secure file sharing via time-limited or password-protected download links
- Command execution interface allowing custom scripts and system commands through web UI
- Built-in image gallery with thumbnail generation and slideshow capabilities
- NGINX reverse proxy with SSL termination and custom domain support
- Advanced search functionality with file content indexing and filtering
- Mobile-responsive interface optimized for file management on tablets and smartphones
Common Use Cases
- 1Small business shared storage with employee access controls and file versioning
- 2Development team collaboration with Git repository browsing and code editing capabilities
- 3Media server management for organizing and sharing photos, videos, and documents
- 4Remote server administration providing web-based access to system files and logs
- 5Educational institution file sharing for students and faculty with permission-based access
- 6Home lab file management replacing traditional NAS interfaces with modern web UI
- 7Client file delivery system for agencies sharing large design files and project assets
Prerequisites
- Docker Engine 20.10+ and Docker Compose V2 for container orchestration
- Minimum 512MB RAM (1GB recommended) for File Browser and NGINX containers
- Available ports 80 and 8080, or alternative ports configured in firewall
- File system with appropriate permissions for PUID/PGID 1000 user access
- Basic understanding of NGINX configuration for SSL setup and custom domains
- Valid SSL certificates if deploying with HTTPS in production environment
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 filebrowser: 3 image: filebrowser/filebrowser:latest4 ports: 5 - "8080:80"6 volumes: 7 - /path/to/files:/srv8 - filebrowser_db:/database9 - ./filebrowser.json:/.filebrowser.json10 environment: 11 - PUID=100012 - PGID=100013 networks: 14 - files_net1516 nginx: 17 image: nginx:alpine18 ports: 19 - "80:80"20 volumes: 21 - ./nginx.conf:/etc/nginx/nginx.conf:ro22 depends_on: 23 - filebrowser24 profiles: 25 - production26 networks: 27 - files_net2829volumes: 30 filebrowser_db: 3132networks: 33 files_net: .env Template
.env
1# File Browser2# Update /path/to/files to your directory3# File Browser at http://localhost:80804# Default: admin / adminUsage Notes
- 1File Browser at http://localhost:8080
- 2Default credentials: admin/admin
- 3Set /srv to your file directory
- 4User management with permissions
- 5Share files with links
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
filebrowser
filebrowser:
image: filebrowser/filebrowser:latest
ports:
- "8080:80"
volumes:
- /path/to/files:/srv
- filebrowser_db:/database
- ./filebrowser.json:/.filebrowser.json
environment:
- PUID=1000
- PGID=1000
networks:
- files_net
nginx
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- filebrowser
profiles:
- production
networks:
- files_net
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 filebrowser:5 image: filebrowser/filebrowser:latest6 ports:7 - "8080:80"8 volumes:9 - /path/to/files:/srv10 - filebrowser_db:/database11 - ./filebrowser.json:/.filebrowser.json12 environment:13 - PUID=100014 - PGID=100015 networks:16 - files_net1718 nginx:19 image: nginx:alpine20 ports:21 - "80:80"22 volumes:23 - ./nginx.conf:/etc/nginx/nginx.conf:ro24 depends_on:25 - filebrowser26 profiles:27 - production28 networks:29 - files_net3031volumes:32 filebrowser_db:3334networks:35 files_net:36EOF3738# 2. Create the .env file39cat > .env << 'EOF'40# File Browser41# Update /path/to/files to your directory42# File Browser at http://localhost:808043# Default: admin / admin44EOF4546# 3. Start the services47docker compose up -d4849# 4. View logs50docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/filebrowser-complete/run | bashTroubleshooting
- Permission denied errors on file operations: Ensure host directory ownership matches PUID/PGID 1000 or update environment variables
- File Browser shows 'Database locked' error: Stop containers, remove filebrowser_db volume, and restart to reset database
- NGINX 502 Bad Gateway errors: Verify filebrowser container is healthy and network connectivity between containers exists
- Upload failures for large files: Increase NGINX client_max_body_size directive and check available disk space
- Users cannot access shared directories: Check File Browser user permissions and ensure shared paths exist in container filesystem
- File Browser interface loads slowly: Configure NGINX caching for static assets and enable gzip compression
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
filebrowsernginx
Tags
#filebrowser#files#sharing#web#manager
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download