Newer
Older
[](code_of_conduct.md)
[](https://gitlab.servus.at/aura/tank/-/releases)
[](https://gitlab.servus.at/aura/tank/-/commits/main)
[](https://gitlab.servus.at/aura/tank/-/commits/main)
Tank implements an AURA import and playlist daemon. Uploads can be normalized
based on the [loudnorm](https://k.ylo.ph/2016/04/04/loudnorm.html) Loudness
Normalization. Resulting files are served to Aura Engine via some configured
directory.
## Development
Check out the repository and build the daemon:
```sh
## Configuration
Create a configuration file, `tank.yaml`, based on:
https://gitlab.servus.at/aura/tank/-/blob/main/contrib/sample-cfg.yaml
Make sure that the directory pointed to by `store.path` exists and is writeable
for the user running the daemon.
### OIDC Client
After [Registering clients at
Steering](https://docs.aura.radio/en/latest/developer/misc/oidc-client-config.html),
update `OIDC_CLIENT_ID` and `OIDC_CLIENT_SECRET` in `contrib/run.sh` to match
your installation.
## Database Setup
First, we need to start a Postgres container:
Wait for the server to boot up and then initialize the database using a second
$ ./contrib/run_client.sh
$$$ psql < init.sql
Once the database is created, you can quit by pressing `CTRL-C`.
Now, you may run the daemon using the following command:
This script uses `tank.yaml` and depends on the postgres server running.
## Running behind reverse proxies
For production environments we highly recommend running `tank` behind an
SSL-enabling reverse proxy. If the base path for the api endpoints as well as
the authentication should be hosted under a subdirectory, the reverse proxy
needs to rewrite the request to be based on `/`. For Nginx the following
configuration can be used:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name aura.example.com;
ssl_certificate /path/to/certificate;
ssl_certificate_key /path/to/private-key;
location /tank/ {
proxy_buffering off;
proxy_ignore_headers "X-Accel-Buffering";
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8040/;
}
## ... other locations ...
}