Commit 89401ce8 authored by James Kirk's avatar James Kirk
Browse files

docs: updated README with compose instructions

refactor: MQ_HOST default in run-compose script
parent 3c1c7c3d
...@@ -2,14 +2,6 @@ ...@@ -2,14 +2,6 @@
Communications Backbone by C2 Team (NOC) Communications Backbone by C2 Team (NOC)
## DJ prototype
I did this in freedom-fire-day so it doesn't currently follow the flask template.
It's also a bit weird because it writes to a local ignored `clients.json` file
instead of using a database. I did this as a placeholder because we've not yet
decided what the infrastructure looks like.
### Data flow ### Data flow
- Client A sends to `client-a-outbox` (or POSTs to API /send - not yet implemented) - Client A sends to `client-a-outbox` (or POSTs to API /send - not yet implemented)
...@@ -31,14 +23,23 @@ which queues it reads from. ...@@ -31,14 +23,23 @@ which queues it reads from.
Subsequent requests to the client endpoint return the client_id but not the secret. Subsequent requests to the client endpoint return the client_id but not the secret.
### Setup ### Running via docker-compose
Using `docker-compose` will mean that everything is setup automatically, this includes the `rabbitmq` container, the backbone API, and the backbone bus. The `run-compose.sh` script has been provided to simplify this even further - all you have to do is set whatever env vars you need in the `.env` file and then run `./run-compose.sh` (the defaults in `.env` are fine for local dev work, but ones not labelled `optional` will need setting in a production setting). The env vars are:
- `MQ_HOST` - The hostname of our `rabbitmq` instance. This defaults to `rmq` which matches the container name of the `rabbitmq` instance in the compose yaml file
- `DATA_DIR` - Where to mount the volume of the API container on your local system. This defaults to the result of `pwd`, which should be within the `communications-backbone` repo
- `SOAR_TOKEN_LIFETIME` (Optional) - The number of hours until a newly created token expires
- `SOAR_TOKEN_SECRET` (Optional) - A secret key used to encrypt/decrypt token data. If specified the value should be set using TokenModel.getKey()
### Running manually
#### Setup
``` ```
pipenv install pipenv install
``` ```
### Running
#### RabbitMQ #### RabbitMQ
`docker run --rm -p 5672:5672 -d --hostname rmq --name rmq rabbitmq:management` `docker run --rm -p 5672:5672 -d --hostname rmq --name rmq rabbitmq:management`
......
...@@ -5,4 +5,8 @@ if [[ -z "${DATA_DIR}" ]]; then ...@@ -5,4 +5,8 @@ if [[ -z "${DATA_DIR}" ]]; then
DATA_DIR=$(pwd) DATA_DIR=$(pwd)
fi fi
if [[ -z "${MQ_HOST}" ]]; then
MQ_HOST=rmq
fi
docker-compose -f docker/docker-compose.yaml up --build docker-compose -f docker/docker-compose.yaml up --build
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment