docker.recipes

Cherokee Web Server

beginner

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:latest
4 container_name: cherokee
5 restart: unless-stopped
6 volumes:
7 - ./html:/var/www/html
8 - cherokee_conf:/etc/cherokee
9 ports:
10 - "80:80"
11 - "443:443"
12 - "9090:9090"
13 networks:
14 - cherokee-network
15
16volumes:
17 cherokee_conf:
18
19networks:
20 cherokee-network:
21 driver: bridge

.env Template

.env
1# Cherokee configuration

Usage Notes

  1. 1Docs: https://cherokee-project.com/doc/
  2. 2Admin interface at http://localhost:9090 - visual config editor
  3. 3No manual config editing needed - GUI generates configs
  4. 4Virtual hosts configured via web interface
  5. 5Supports CGI, FastCGI, uWSGI, SCGI
  6. 6Note: Project is less actively maintained - consider alternatives

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 cherokee:
5 image: instantlinux/cherokee:latest
6 container_name: cherokee
7 restart: unless-stopped
8 volumes:
9 - ./html:/var/www/html
10 - cherokee_conf:/etc/cherokee
11 ports:
12 - "80:80"
13 - "443:443"
14 - "9090:9090"
15 networks:
16 - cherokee-network
17
18volumes:
19 cherokee_conf:
20
21networks:
22 cherokee-network:
23 driver: bridge
24EOF
25
26# 2. Create the .env file
27cat > .env << 'EOF'
28# Cherokee configuration
29EOF
30
31# 3. Start the services
32docker compose up -d
33
34# 4. View logs
35docker 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/cherokee/run | bash

Troubleshooting

  • 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