aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 39d2086d10dbf2fbc5b0fe1232a7b530d1f1398d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# dead-drop
A phone messaging system

## Configuring

This project usese environment variables to work. For most cases, the
defaults work but some sensitive info like keys must be overridden. Copy
the file in `config/env.dist` to `.env` in the project root and override
the values.

When running with `make run`, it'll pick up these values automatically.
If you're doing it the hard way, you'll have to source them. You must
set the `DEAD_DROP_ACCOUNT_SID` to match your account sid. This is so
dead drop can filter out calls from other accounts.

## Running Locally

You'll need [Docker][docker] to run the project.

* Run the image with `make run`

## Running locally the hard way

If you don't want to use docker, you can also run it the old fashioned
way.

1. Install dependencies with `yarn install` (recommended), or `npm install`
2. Run with `npm start`

## Generating documentation

This project uses JSDoc to generate documentation. Generate everything
with `npm run document`. The documentation will be generated in the
`doc` directory.

## Building and pushing the image

You can also do some other operations

* Build the image with `make build`
* Push and build the image with `make upload`
* Clean the environment with `make clean`

## Setting up Twilio

Get a twilio number, and on the configuration set the voice settings to
"Webhooks/TwiML" and point the `A call comes in` hook to:
the `/menus/main/` path of your dead drop installation. For example: 
`https://dead-drop.unlimited.piza/menus/main`. It must be accessible
from the internet.

You will also need your account sid. This is obtained from the "[Account
Settings][account-settings]" area in the twilio dashboard.

## Checking the code

This project uses the [Hapi Style Guide][hapi-style-guide] for
javascript style, and includes eslint configuration to check them. Run
`npm run lint` to check the code.

[docker]: https://www.docker.com/
[hapi-style-guide]: https://hapijs.com/styleguide
[account-settings]: https://www.twilio.com/console/account/settings