2023-11-25 03:48:02 +00:00
|
|
|
## Compiling
|
|
|
|
|
|
|
|
- `mkdir build`
|
|
|
|
- `cd build`
|
|
|
|
- Execute one of the following commands depending on your conditions:
|
|
|
|
- If this is going to be on production (i.e. not for debugging),
|
|
|
|
run `cmake -B . .. -DCMAKE_BUILD_TYPE=Release`
|
|
|
|
- If this is for debugging, run `cmake -B . .. -DCMAKE_BUILD_TYPE=Debug`
|
|
|
|
- `make -j$(nproc)`
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
Copy `example_config.json` to a file with any name you like
|
|
|
|
(e.g. `config.json`), then open the copied file and edit the parameters to your
|
|
|
|
liking. Here's a list of what they are:
|
|
|
|
- `bind_host` (string): What address to bind to
|
|
|
|
- `bind_port` (zero or positive integer): What port to bind to
|
2023-12-08 11:27:27 +00:00
|
|
|
- `hmac_key` (hex string): A secret key to be used; generate with `head -c32 /dev/urandom | basenc --base16`
|
2023-11-25 03:48:02 +00:00
|
|
|
- `canonical_origin` (string or null): A fallback canonical origin if set, useful if you're, say, running Coyote behind Ngrok
|
|
|
|
- `redis` (object)
|
|
|
|
- `enabled` (boolean)
|
|
|
|
- `connection` (object)
|
|
|
|
- `type` ("ip" or "unix"): Whether to connect to redis via TCP or UNIX domain sockets
|
|
|
|
- `address` (string or null): If `type` is "ip", the address to connect to. Ignored otherwise
|
|
|
|
- `port` (int or null): If `type` is "ip", the port to connect to. Ignored otherwise
|
|
|
|
- `unix` (string or null): If `type` is "unix", the path to redis' socket. Ignored otherwise
|
|
|
|
- `username` (string or null): Optional username for authentication
|
|
|
|
- `password` (string or null): Optional password for authentication
|
|
|
|
|
|
|
|
Coyote is intended to be run behind a reverse proxy (e.g. Nginx), so you should
|
|
|
|
set your reverse proxy to proxy requests to
|
|
|
|
`http://localhost:<port in config file>`, and set a `X-Canonical-Origin` header
|
|
|
|
for all requests coming through to the URL for your instance. For example, if
|
|
|
|
your instance is at https://coyote.example.com, you should set the header to
|
|
|
|
`https://coyote.example.com`.
|
|
|
|
|
|
|
|
## Running
|
|
|
|
|
|
|
|
Run `./path/to/repository/build/coyote` with the path to your copied config
|
|
|
|
file as an argument
|