For development on localhost, `RabbitMQ` is the default for `djcelery` and is well supported. Ensure
`RabbitMQ` is installed for local development.
+### Postgresql RDBMS
+
+PostgreSQL is not necessarily required; other RDBMS could probably be fit into
+place. However, the code was largely written assuming PostgreSQL will be used.
+Change to another system with the caveat that it might take some work.
+
+There are many cloud providers which provide PostgreSQL databases. Heroku has
+an add-on for providing a PostgreSQL database. Ensure something like this
+is made available and installed to the app.
+
+For local development, ensure a PostgreSQL is running on localhost or is
+otherwise accessible.
+
### Amazon S3
The instructions for creating an [S3](http://aws.amazon.com/s3/) bucket may be
[found on Amazon.](http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html)
# Local
-## Install
+## Configuring foreman
-KarmaNotes is a Heroku application. Download the [Heroku toolbelt](https://toolbelt.heroku.com/).
+KarmaNotes is a Heroku application and makes use of a Procfie. To use the
+Procfile locally, we recommend using `foreman`. To install `foreman` and other
+Heroku tools, install the [Heroku toolbelt](https://toolbelt.heroku.com/).
+
+Ensure environment variables are available to `foreman` by copying
+`.env.example` to `.env` and update those variables as appropriate for your
+local system.
+
+## Install
-Before your running it for the first time, there are
-a few setup steps:
1. `virtualenv venv`
1. `source venv/bin/activate`
1. `pip install -r requirements.txt`
+ * on Debian systems, some packages are required for pip to succeed:
+ * `apt-get install python-dev libpython-dev python-psycopg2 libmemcached-devlibffi-dev libssl-dev postgresql-server-dev-X.Y`
1. `pip install -r requirements-dev.txt`
1. `foreman run python manage.py syncdb --migrate --noinput`
1. `foreman run python manage.py createsuperuser`
## Run
-Ensure environment variables are available to `foreman` by copying `.env.example`
-to `.env` and update those variables as appropriate for your local system.
+Make sure you are inside your virtual environment (`source venv/bin/activate`).
-To run KarmaNotes locally, make sure you are inside your
-virtual environment (`source venv/bin/activate`) and run `foreman start`.
+If the code has changed or this is the first run, make sure any modified static
+files get compressed with `foreman run python manage.py compress`. Static files
+then need to be uploaded correctly with `foreman run python manage.py
+collectstatic`.
-`foreman` will load the `.env` file and manage running all processes in a way
-that is similar to that of Heroku. This allows better consistency with local,
-staging, and production deployments.
+Run `foreman start`. `foreman` will load the `.env` file and manage running all
+processes in a way that is similar to that of Heroku. This allows better
+consistency with local, staging, and production deployments.
Press ctrl-C to kill foreman. Foreman will run Django's runserver command.
If you wish to have more control over how this is done, you can do