== link:index.html[Index] -> link:basics.html[Getting started]
////
Last checked: 2010/04/26 Cherokee 0.99.46b
////
Requirements
------------
[[hw]]
Hardware
~~~~~~~~
Cherokee is very light, completely modular and it can be tailored to
your specific needs. As such, disk requirements will vary depending on
the options selected for the building process. A static build for
embedded devices can occupy as little as 200KB, give or take.
In terms of processing power, it has been known to work with as
little as 133Mhz ARM processors. It could very well work on something
smaller, but we haven't really had the chance to try it out.
[[sw]]
Software
~~~~~~~~
Cherokee has no dependencies besides a standard libc. Everything else
is optional. Obviously anything beyond serving mere static content
must be available for Cherokee to correctly execute the task. This
means you will need PHP if you want Cherokee to serve PHP dynamic
content, the rrdtool package if you intend to collect statistics to
render usage graphs, MySQL or LDAP development libraries if you want
built-in support for these as authentication mechanisms for protected
content, ffmpeg development libraries to build the streaming module,
and so on.
If you intend to build Cherokee from source however, you will need
several tools and libraries.
* Building tools: Cherokee is built on top of the autoconf and
automake tools, hence your system has to have some basic system
programs like an sh shell, make and an ANSI C compiler. We have
compiled Cherokee in various platforms with different compilers, so
it shouldn't be a problem.
* Python: Cherokee has an administration web interface written in
Python, so if you intend to use cherokee-admin you will need this.
For disk space constrained environments this won't be an issue
since you would probably want to make a minimal install in your
destination host, preconfigured elsewhere. This programming language
is also used to generate the documentation, and Cherokee includes a
number of Quality Assurance tests written in it as well. If you are
planning to contribute code into the project, or you just want to
test everything is working in the server, you will need a Python
interpreter installed on your system. The main Python releases
targeted by our developers are 2.4, 2.5 and 2.6. Anything other than
that is not guaranteed to work at the moment.
* If you are building Cherokee in a non-POSIX compliant platform,
you will need a POSIX threads implementation. Although
you can disable the usage at compilation time and do without this,
it will have a dramatic impact in scalability.
* If you want to make a build that serves secure content, you will
need TLS libraries. Cherokee ships with support for the OpenSSL
backend, but the architecture is completely modular and any other
backend can be implemented. You need to have the development files
of the chosen backend libraries in order to build a package that
suits your needs.