Description: Cherokee is a flexible, very fast, lightweight Web server. It is implemented entirely in C, and has no dependencies beyond a standard C library. It is embeddable and extensible with plug-ins. It supports on-the-fly configuration by reading files or strings, TLS/SSL (via GNUTLS or OpenSSL), virtual hosts, authentication, cache friendly features, PHP, custom error management, and much more.
Keywords: cherokee web server httpd http

## Index → Development info

## Development: Quickstart

So, you have found things in Cherokee worth improving and feel the urge to contribute to the project. But where to start?

The first thing, of course, is setting up a development/testing environment for Cherokee.

The relevant documents would be those about software requirements, downloading the GIT repository, and the quickstart installation notes.

In principle, provided you have the required tools in your system, it should be as easy as:

        git clone --recursive git://github.com/cherokee/webserver.git ~/cherokee
        cd ~/cherokee_dev
        git submodule update --init #not needed on Git >= 1.6.5
        ./autogen.sh --enable-beta --enable-trace
        make

You should probably read all the development info section of the documentation, and go through the Cherokee Project Bugtracker to make sure you are not wasting your effort working on something already solved.

Joining the development list and hanging out at the #cherokee IRC channel are also good ideas.

### Quick Tips

If you are modifiying the core of Cherokee, don’t forget to run the whole QA bench to ensure no regressions are being introduced by your changes.

Additionally, if you are modifying cherokee-admin, don’t forget to run the modified instance instead of the one in the system, which can be specified with the -d (--appdir) parameter:

        cherokee-admin -d ~/cherokee_dev/admin

And that’s about it. You should be able to get your hands dirty from here. Happy hacking!