docker.recipes

File Browser Web Interface

beginner

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:latest
4 ports:
5 - "8080:80"
6 volumes:
7 - /path/to/files:/srv
8 - filebrowser_db:/database
9 - ./filebrowser.json:/.filebrowser.json
10 environment:
11 - PUID=1000
12 - PGID=1000
13 networks:
14 - files_net
15
16 nginx:
17 image: nginx:alpine
18 ports:
19 - "80:80"
20 volumes:
21 - ./nginx.conf:/etc/nginx/nginx.conf:ro
22 depends_on:
23 - filebrowser
24 profiles:
25 - production
26 networks:
27 - files_net
28
29volumes:
30 filebrowser_db:
31
32networks:
33 files_net:

.env Template

.env
1# File Browser
2# Update /path/to/files to your directory
3# File Browser at http://localhost:8080
4# Default: admin / admin

Usage Notes

  1. 1File Browser at http://localhost:8080
  2. 2Default credentials: admin/admin
  3. 3Set /srv to your file directory
  4. 4User management with permissions
  5. 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 file
2cat > docker-compose.yml << 'EOF'
3services:
4 filebrowser:
5 image: filebrowser/filebrowser:latest
6 ports:
7 - "8080:80"
8 volumes:
9 - /path/to/files:/srv
10 - filebrowser_db:/database
11 - ./filebrowser.json:/.filebrowser.json
12 environment:
13 - PUID=1000
14 - PGID=1000
15 networks:
16 - files_net
17
18 nginx:
19 image: nginx:alpine
20 ports:
21 - "80:80"
22 volumes:
23 - ./nginx.conf:/etc/nginx/nginx.conf:ro
24 depends_on:
25 - filebrowser
26 profiles:
27 - production
28 networks:
29 - files_net
30
31volumes:
32 filebrowser_db:
33
34networks:
35 files_net:
36EOF
37
38# 2. Create the .env file
39cat > .env << 'EOF'
40# File Browser
41# Update /path/to/files to your directory
42# File Browser at http://localhost:8080
43# Default: admin / admin
44EOF
45
46# 3. Start the services
47docker compose up -d
48
49# 4. View logs
50docker compose logs -f

One-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 | bash

Troubleshooting

  • 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

Ad Space