This post analyses the FreeNAS 9 code base and discusses the various places users may feel confident to hack on.
FreeNAS uses the following software stack:
- Django
- A Python Web Application Framework which complies with WSGI
- Nginx
- A very fast web server which may act as a reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and HTTP cache.
- Dojo Toolkit
- The Javascript toolkit used to create widgets and handle client side processing.
- FreeBSD
- FreeBSD is an advanced computer operating system used to power modern servers.
- Want to hack on the frontend web application?
Start here if you enjoy Python, or if you really enjoy coding on Django applications:
- Want to hack on the GUI?
Start here if you are a front end developer and enjoy writing HTML, CSS, and working with Javascript:
https://github.com/freenas/freenas/tree/master/gui/templates
- Want to change Nginx?
Take a look here if you would like to review, change, or tune Nginx on FreeNAS:
https://github.com/freenas/freenas/tree/master/nanobsd/Files/usr/local/etc/nginx This directory holds the nginx "vhost" config files and CGI parameters.
- Want to hack on the OS?
Start here, if you know about FreeBSD or operating systems in general:
https://github.com/freenas/freenas/tree/master/nanobsd This directory seems like a customized and completely version controlled nanoBSD install!