A cookbook to setup Farnsworth, the upcoming house-level BSC website.
For more information about Farnsworth itself can be found here
This cookbook depends on the following cookbooks:
- python
- java
- database
- postgresql
- elasticsearch
- apache2
- selinux
- application_python
- git
- simple_iptables
This cookbook (when complete) should work on Ubuntu and CentOS.
Key | Type | Description |
---|---|---|
[:farnsworth][:house_name] | String | Full name of house, e.g. Davis House |
[:farnsworth][:short_house_name] | String | Shortened name of house, e.g. Davis |
[:farnsworth][:house_abbrev] | String | 3 letter abbreviation of house name, e.g. dav |
[:farnsworth][:site_domain] | String | Domain of site, e.g. www.davishouse.com |
[:farnsworth][:enable_oauth] | Boolean | Whether or not to use OAuth, defaults to false if omitted |
[:farnsworth][:oauth_providers] | Array (Strings) | List of providers to use w/ OAuth, e.g. ['facebook','google'] |
[:farnsworth][:repo] | String | URL from which to fetch the Farnsworth app |
[:farnsworth][:key_path] | String | Path on host to find the encrypted data bag secret, default: '/etc/chef/keys/farnsworth_private.key' |
[:farnsworth][:site_root] | String | Base path to install the app into, e.g. /usr/local/farnsworth |
An encrypted data bag is needed for use with this cookbook. The data bag should be called farnsworth
, and the data bag item within it should be named private
. The following keys need to be defined:
Key Name | Description |
---|---|
postgres_password | Password to access the database as the admin user (you define this, the cookbook sets it) |
secret_key | Some long string of your choosing (try `openssl rand -base64 50`) |
network_manager_password | Password to the [email protected] e-mail address |
Running the following commands is the easiest way to install this cookbook at the moment:
gem install knife-github-cookbooks
knife cookbook github install bsc-networks/farnsworth-cookbook
Include farnsworth
in your node's run_list
.
If this is a fresh install, you will need to manually create an admin site user. To do this, first let the node converge successfully. Then, inside node[:site_root]/current
, run ./manage.py createsuperuser
and follow the instructions, filling out the information as you choose.
- Implement an attribute to choose either
nginx
orapache
. - Include HTTPS support/toggle
- Allow specifying the exact data bag and item names in which private bits are stored
- Attribute for version of farnsworth to install
Authors: Nicholas Herson
Thanks to Nader Morshed and Karandeep Singh Nagra for developing Farnsworth