Stats
About CIA.vc
Development
Want to help with CIA? Below are a few common starting points. We encourage you to join the IRC channel (#cia on Freenode) and/or the mailing list.
This is the easiest way to get involved with CIA. Do you want to add support for a new revision control system? Do you want to improve one of the existing client scripts?
The best way to get started is probably by using some of the existing existing scripts as examples. There is also an XML schema for the messages accepted by CIA.
CIA is a complex system. It was designed to be a centrally-administered service, so it is fairly difficult to install and maintain. This is a diagram of CIA's major components:
If you're interested in running or developing on an isolated part of CIA, it may not be necessary to run every service that a production server would run. If you do want to run the entire application, setup can be daunting.
To make this process a bit easier, you can now download a virtual machine image which contains a full Ubuntu Linux server with nearly all of CIA already installed and configured. This is a VMware virtual machine, so you'll need either the free VMware Player, VMware Server, or another of their products.
After booting, you can use SSH or the local console to log in with the username "cia" and password "changeme". A web server should automatically start on port 80. The VM will try to obtain an IP address via DHCP by default, so you'll need to log in and use "ifconfig" to see what IP it ended up with. You should be able to immediately connect to the CIA web interface, and either create a new user or log in with username "admin" and password "changeme".
For secure deployment:
- Change the 'cia' account password
- Generate a new OpenSSH private key
- Generate a new Django secret (~/.django_secret)
- Generate a new CIA capability key (~/.cia_key)
- Generate a new HTTPS certificate for Pound
- Either deactivate the "admin" Django user or change its password
Other things to change:
- Set a publically-visible hostname in settings.py and bootstrap.sh, and in the django_site database table.
- Set up admin addresses in settings.py and /etc/aliases
Known problems:
- There is no init script for the Twisted daemons. They will be started automatically by an @reboot line in crontab, but you'll need to maintain them using the scripts in ~/cia/conf.
- Several URLs on the site will point to http://cia-dsd-vm/... until you change the hostname in bootstrap.sh. (Or whichever script you're using to start up the Twisted Web daemons)
- E-mail support is not yet configured. You'll need to set up procmail correctly, then set up /etc/aliases, .forward, and .procmailrc using the templates in ~/cia/conf.
