Cabot is a self-hosted watchdog for your websites and infrastructure. This cookbook installs and configures a basic setup.
Made with love for Ubuntu (12.04, 14.04)
This cookbook depends on community versions of the following cookbooks:
- build-essential
- git
- nginx
- nodejs
- npm
- python
- redis
Additionally, it will install Ruby from default APT repos, and Foreman.
All keys below live under the cabot namespace. Eg. user is available as node[:cabot][:user]
Key | Type | Description | Default |
---|---|---|---|
user | String | User to run Cabot as | cabot |
group | String | Group to run Cabot as | cabot |
home_dir | String | Home dir | /opt/cabot |
log_dir | String | Log dir | /var/log/cabot |
repo_url | String | GitHub repository to pull Cabot code from. | https://github.com/arachnys/cabot.git |
environment | String | Sets the environment type (development or production). This sets whether to use SQLite or PostgreSQL databases. | production |
database_url | String | Sets the Django database URL | sqlite:///cabot.db |
port | Integer | Sets the port on which Cabot UI listens for requests | 5000 |
admin_email | String | Emails sent from Django are sent to | you@example.com |
from_email | String | From address to send emails with | cabot@example.com |
ical_url | String | URL of calendar to synchronise rota with | http://www.google.com/calendar/ical/example.ics |
celery_broker_url | String | Django setting | redis://:yourrediskey@localhost:6379/1 |
django_secret_key | String | Django setting | 2FL6ORhHwr5eX34pP9mMugnIOd3jzVuT45f7w430Mt5PnEwbcJgma0q8zUXNZ68A |
graphite_api_url | String | Hostname of Graphite server instance | http://graphite.example.com/ |
graphite_username | String | Username used to authenticate with Graphite | username |
graphite_password | String | Password used to authenticate with Graphite | password |
hipchat_room_id | String | Hipchat room ID (find it at https://hipchat.com/admin/rooms) | 123456 |
hipchat_api_key | String | Hipchat API key (get one at https://hipchat.com/admin/api) | your_hipchat_api_key |
jenkins_api_url | String | Jenkins server URL | https://jenkins.example.com/ |
jenkins_username | String | Username used to authenticate with Jenkins (optiona/td> | username |
jenkins_password | String | Password used to authenticate with Jenkins | password |
smtp_host | String | SMTP hostname to use for sending emails | email-smtp.us-east-1.amazonaws.com |
smtp_username | String | SMTP username | username |
smtp_password | String | SMTP password | password |
smtp_port | String | SMTP port | 465 |
twilio_account_sid | String | Your Twilio account SID | your_twilio_account_sid |
twilio_auth_token | String | Your Twilio auth token | your_twilio_auth_token |
twilio_outgoing_number | String | Your Twilio number for outbound calls | +1234567890 |
www_http_host | String | Used for pointing links back in alerts, etc. | localhost |
www_scheme | String | Which URL scheme to use (http or https) | http |
www_port | Integer | Port to set reverse proxy on | 80 |
Include cabot
in your node's run_list
:
{
"run_list": [
"recipe[cabot::default]"
]
}
Include cabot::proxy
in your node's run_list
to have Nginx as a reverse proxy to Cabot on port 80.
- Fork the repository on Github
- Create a named feature branch (i.e.
add-new-recipe
) - Write your change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request
Author:: Rafael Fonseca (rafael.magu@gmail.com)