⚠️ CRITICAL WARNING: UNMAINTAINED PROJECT
Cherokee is no longer actively developed (last release: December 2013). Configuration options may not work with modern TLS/SSL standards. Known issues include OpenSSL 3 incompatibility.
For new deployments, use modern alternatives: Nginx, Caddy, or Apache.
Cherokee is primarily configured through its web-based admin interface.
| Setting | Value |
|---|---|
| Command | cherokee-admin -b |
| Default URL | http://SERVER_IP:9090 |
| Default Port | 9090 |
| Credentials | Displayed in terminal when starting admin |
# Bind to all interfaces (use with caution)
cherokee-admin -b
# Bind to specific IP
cherokee-admin -b 192.168.1.100
# Use alternative port
cherokee-admin -b -p 9999
⚠️ Security: Never expose the admin UI to public networks. Use firewall rules or bind to localhost only.
| Path | Purpose |
|---|---|
/etc/cherokee/cherokee.conf |
Main configuration file |
/var/lib/cherokee/ |
Data directory |
/var/log/cherokee/ |
Log files |
Cherokee uses an INI-style configuration format:
server!bind!1!port = 80
server!bind!1!interface = 0.0.0.0
server!timeout = 60
server!keepalive = 1
server!keepalive_max_requests = 100
server!keepalive_timeout = 2
Use this as a starting point for a basic production setup:
# Server binding
server!bind!1!port = 80
server!bind!1!interface = 0.0.0.0
# Timeouts
server!timeout = 60
server!keepalive = 1
server!keepalive_max_requests = 100
server!keepalive_timeout = 2
# Logging
server!log!filename = /var/log/cherokee/access.log
server!error_log!filename = /var/log/cherokee/error.log
# Basic virtual host
vserver!1!nick = default
vserver!1!document_root = /var/www/html
vserver!1!rule!1!match = default
vserver!1!rule!1!handler = file
Configure Cherokee as a reverse proxy for backend applications:
# Proxy to backend application
vserver!1!rule!10!match = default
vserver!1!rule!10!handler = proxy
vserver!1!rule!10!handler!balancer = ip_hash
vserver!1!rule!10!handler!balancer!source!1 = 127.0.0.1:3000
vserver!1!rule!10!handler!balancer!source!2 = 127.0.0.1:3001
# Proxy headers
vserver!1!rule!10!handler!proxy!rewrite_host = 1
vserver!1!rule!10!handler!proxy!rewrite_host_prefix = 0
| Backend | Configuration |
|---|---|
| Node.js | proxy!balancer!source = 127.0.0.1:3000 |
| Python/Flask | proxy!balancer!source = 127.0.0.1:5000 |
| Gunicorn/uWSGI | proxy!balancer!source = unix:/path/to/socket |
| Tomcat | proxy!balancer!source = 127.0.0.1:8080 |
Add a new virtual host:
# Virtual host for example.com
vserver!2!nick = example.com
vserver!2!document_root = /var/www/example.com
# Match by host
vserver!2!match = example.com
# Default handler
vserver!2!rule!1!match = default
vserver!2!rule!1!handler = file
⚠️ Warning: Cherokee’s SSL/TLS implementation may not support modern cipher suites or TLS 1.3. Consider using a reverse proxy for TLS termination.
# Enable HTTPS listener
server!bind!2!port = 443
server!bind!2!ssl = 1
server!bind!2!cert_file = /etc/ssl/certs/example.com.crt
server!bind!2!cert_key = /etc/ssl/private/example.com.key
# Worker processes
server!threads = 4
# Connection limits
server!max_connections = 1024
# Buffer sizes
server!io_cache = 1
# Access log format (Common Log Format)
server!log!format = combined
# Per-vhost logging
vserver!1!log = 1
vserver!1!log!filename = /var/log/cherokee/example.com.log
cherokee -t -f /etc/cherokee/cherokee.conf
# Systemd
sudo systemctl reload cherokee
# Or send SIGHUP
sudo kill -HUP $(cat /var/run/cherokee.pid)
sudo systemctl restart cherokee
The Cherokee-Admin interface provides:
cherokee-admin -bhttp://SERVER_IP:9090Every deployment is unique. We provide consulting for:
Get personalized assistance: office@linux-server-admin.com | Contact Page