diff --git a/README.md b/README.md index 94f88a902..bac936e27 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ export LOADTESTING_API_KEY='FIRETEXT_SIMULATION_KEY' export FIRETEXT_API_KEY='FIRETEXT_ACTUAL_KEY' export STATSD_PREFIX='YOU_OWN_PREFIX' export NOTIFICATION_QUEUE_PREFIX='YOUR_OWN_PREFIX' +export REDIS_URL="redis://localhost:6379/0" "> environment.sh ``` @@ -55,8 +56,17 @@ NOTES: Install [Postgres.app](http://postgresapp.com/). You will need admin on your machine to do this. +### Redis + +To switch redis on you'll need to install it locally. On a OSX we've used brew for this. To use redis caching you need to switch it on by changing the config for development: + + REDIS_ENABLED = True + + ## To run the application +First, run `scripts/bootstrap.sh` to install dependencies and create the databases. + You need to run the api application and a local celery instance. There are two run scripts for running all the necessary parts. @@ -69,6 +79,8 @@ scripts/run_app.sh scripts/run_celery.sh ``` +Optionally you can also run this script to run the scheduled tasks: + ``` scripts/run_celery_beat.sh ``` diff --git a/config.py b/config.py index e6c0c68f2..179d8fcf3 100644 --- a/config.py +++ b/config.py @@ -40,6 +40,9 @@ class Config(object): # Prefix to identify queues in SQS NOTIFICATION_QUEUE_PREFIX = os.getenv('NOTIFICATION_QUEUE_PREFIX') + # URL of redis instance + REDIS_URL = os.getenv('REDIS_URL') + ########################### # Default config values ### ########################### @@ -133,7 +136,6 @@ class Config(object): STATSD_PORT = 8125 REDIS_ENABLED = False - REDIS_URL = "redis://localhost:6379/0" SENDING_NOTIFICATIONS_TIMEOUT_PERIOD = 259200 @@ -190,6 +192,7 @@ class Preview(Config): CSV_UPLOAD_BUCKET_NAME = 'preview-notifications-csv-upload' API_HOST_NAME = 'http://admin-api.internal' FROM_NUMBER = 'preview' + REDIS_ENABLED = True class Staging(Config): @@ -199,6 +202,7 @@ class Staging(Config): STATSD_ENABLED = True API_HOST_NAME = 'http://admin-api.internal' FROM_NUMBER = 'stage' + REDIS_ENABLED = True class Live(Config): @@ -208,6 +212,7 @@ class Live(Config): STATSD_ENABLED = True API_HOST_NAME = 'http://admin-api.internal' FROM_NUMBER = '40604' + REDIS_ENABLED = True configs = { diff --git a/docker/Dockerfile-build b/docker/Dockerfile-build index 1ee7f1a54..872c8d323 100644 --- a/docker/Dockerfile-build +++ b/docker/Dockerfile-build @@ -1,13 +1,15 @@ FROM python:3.4-slim -ARG APT_HTTP_PROXY +ARG HTTP_PROXY +ARG HTTPS_PROXY +ARG NO_PROXY ENV PYTHONUNBUFFERED=1 \ DEBIAN_FRONTEND=noninteractive RUN \ echo "Install base packages" \ - && ([ -z "$APT_HTTP_PROXY" ] || echo "Acquire::http::Proxy \"${APT_HTTP_PROXY}\";\n" > /etc/apt/apt.conf.d/99HttpProxy) \ + && ([ -z "$HTTP_PROXY" ] || echo "Acquire::http::Proxy \"${HTTP_PROXY}\";\n" > /etc/apt/apt.conf.d/99HttpProxy) \ && apt-get update \ && apt-get install -y --no-install-recommends \ make \ diff --git a/docker/Makefile b/docker/Makefile index c4e905d51..ab9f9d444 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -7,4 +7,11 @@ help: .PHONY: build-build-image build-build-image: - docker build --pull -f Dockerfile-build -t govuk/notify-api-builder --build-arg APT_HTTP_PROXY="${HTTP_PROXY}" . + docker build \ + --pull \ + --build-arg HTTP_PROXY="${HTTP_PROXY}" \ + --build-arg HTTPS_PROXY="${HTTP_PROXY}" \ + --build-arg NO_PROXY="${NO_PROXY}" \ + -f Dockerfile-build \ + -t govuk/notify-api-builder \ + . diff --git a/environment_test.sh b/environment_test.sh index a74a81a86..1c9d57c2c 100644 --- a/environment_test.sh +++ b/environment_test.sh @@ -11,3 +11,4 @@ export LOADTESTING_API_KEY="loadtesting" export FIRETEXT_API_KEY="Firetext" export STATSD_PREFIX="stats-prefix" export NOTIFICATION_QUEUE_PREFIX='testing' +export REDIS_URL="redis://localhost:6379/0"