Cherokee Web Server
Fast and flexible web server with graphical configuration.
Overview
Cherokee is a high-performance web server originally developed in C by Álvaro López Ortega, designed to be fast, lightweight, and user-friendly through its innovative graphical administration interface. Unlike traditional web servers that require manual configuration file editing, Cherokee provides a complete web-based configuration system accessible through port 9090, making server management accessible to users who prefer visual configuration over command-line editing. The server supports modern web technologies including FastCGI, uWSGI, SCGI, and traditional CGI, while maintaining excellent performance characteristics and low memory footprint.
This Docker deployment combines Cherokee's core web server functionality with its administrative interface, creating a self-contained web hosting environment that can be managed entirely through a browser. The configuration includes persistent storage for both web content and Cherokee's configuration data, ensuring that server settings and hosted files survive container restarts. The setup exposes standard HTTP/HTTPS ports alongside the administrative interface, enabling both production web serving and ongoing management tasks.
This stack appeals particularly to web developers and system administrators who want a lightweight alternative to Apache or Nginx but prefer graphical configuration over text-based setup. Small to medium businesses, development teams prototyping web applications, and homelab enthusiasts will find Cherokee's balance of performance and usability compelling, especially when rapid configuration changes are needed or when team members have varying levels of server administration experience.
Key Features
- Web-based administration interface eliminating need for manual configuration file editing
- Built-in support for FastCGI, uWSGI, SCGI, and CGI application deployment
- Real-time configuration changes without requiring server restarts
- Integrated traffic analyzer and performance monitoring through admin panel
- Virtual host management with drag-and-drop rule configuration
- SSL/TLS certificate management through graphical interface
- Cherokee-specific load balancing and reverse proxy configuration
- Built-in authentication modules including LDAP and database backends
Common Use Cases
- 1Small business websites requiring easy SSL certificate management and virtual hosting
- 2Development environments where configuration changes need to be made frequently through GUI
- 3Legacy web applications that require specific CGI or FastCGI configurations
- 4Educational environments teaching web server concepts through visual configuration
- 5Rapid prototyping of web applications with custom routing and handler rules
- 6Migration testing from other web servers using Cherokee's configuration wizards
- 7Homelab deployments requiring lightweight web server with minimal command-line interaction
Prerequisites
- Docker and Docker Compose installed with minimum 512MB available RAM
- Ports 80, 443, and 9090 available on the host system
- Basic understanding of web server concepts like virtual hosts and document roots
- Web browser access to port 9090 for Cherokee administration interface
- SSL certificates prepared if HTTPS configuration is required
- Understanding that Cherokee project has limited ongoing development and community support
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 cherokee: 3 image: instantlinux/cherokee:latest4 container_name: cherokee5 restart: unless-stopped6 volumes: 7 - ./html:/var/www/html8 - cherokee_conf:/etc/cherokee9 ports: 10 - "80:80"11 - "443:443"12 - "9090:9090"13 networks: 14 - cherokee-network1516volumes: 17 cherokee_conf: 1819networks: 20 cherokee-network: 21 driver: bridge.env Template
.env
1# Cherokee configurationUsage Notes
- 1Docs: https://cherokee-project.com/doc/
- 2Admin interface at http://localhost:9090 - visual config editor
- 3No manual config editing needed - GUI generates configs
- 4Virtual hosts configured via web interface
- 5Supports CGI, FastCGI, uWSGI, SCGI
- 6Note: Project is less actively maintained - consider alternatives
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 cherokee:5 image: instantlinux/cherokee:latest6 container_name: cherokee7 restart: unless-stopped8 volumes:9 - ./html:/var/www/html10 - cherokee_conf:/etc/cherokee11 ports:12 - "80:80"13 - "443:443"14 - "9090:9090"15 networks:16 - cherokee-network1718volumes:19 cherokee_conf:2021networks:22 cherokee-network:23 driver: bridge24EOF2526# 2. Create the .env file27cat > .env << 'EOF'28# Cherokee configuration29EOF3031# 3. Start the services32docker compose up -d3334# 4. View logs35docker 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/cherokee/run | bashTroubleshooting
- Admin interface shows 'Connection refused' on port 9090: Verify container is running and port mapping is correct in docker-compose.yml
- Cherokee fails to start with permission errors: Check that ./html directory exists and has appropriate ownership (www-data:www-data)
- Configuration changes not persisting after container restart: Ensure cherokee_conf volume is properly mounted and has write permissions
- FastCGI applications returning 503 errors: Use Cherokee admin interface to verify FastCGI source configuration and application paths
- SSL certificates not loading properly: Upload certificates through Cherokee admin panel rather than mounting files directly
- High memory usage despite Cherokee's lightweight design: Check for runaway CGI processes through Cherokee's process monitor in admin interface
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
Shortcuts: C CopyF FavoriteD Download