Newer
Older
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.
## Requirements
* [Go](https://golang.org/) (v1.12+ recommended)
To install tank, use the `go get` command:
```sh
$ go get gitlab.servus.at/autoradio/tank/...
```
https://gitlab.servus.at/autoradio/tank/blob/master/contrib/sample-cfg.yaml
Make sure that the directory pointed to by `store.path` exists and is writeable
for the user running the daemon
And then run the `tank` binary:
```sh
$ $GOPATH/bin/tank --config config.yaml run --listen localhost:8040
### Problem with some versions of MariaDB
If you start `tank` for the first time using MariaDB you may get the following error message:
```
running database migrations failed: Error 1071: Specified key was too long; max key length is 767 bytes
```
This most likely means you are using an older version of MariaDB with the default character-set set to
`utf8mb4`. Please read [contrib/mariadb-stretch-err1071.md](/contrib/mariadb-stretch-err1071.md) for help.
If you encouter this problem on any other platform please let us know!
## Running behind reverse proxies
For production environments we highly recommend to run `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 sub-directory,
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 ...
}
```
Please mind that the built-in web UI does not work when the base-path is not `/`. Please see !2 for more
details about this.
## Development
Check out the repository and build the daemon:
```sh
```
You may run the daemon using the following command:
```sh
This is using `contrib/sample-cfg.yaml` and depends on a mysql or postgres server
running on localhost. You may use the scripts inside `contrib/` to start docker
containers for this purpose.
### mysql
```sh
```
Wait for the server to boot up and then initialize the database using a second terminal:
```sh
$ ./contrib/mysql/run_client.sh
mysql> source init.sql
```
This command can also be used to empty the database if you want to start with a new one.
After the daemon has ran the initial migrations you may check out the schema of the database:
Once you are done with the database you can stop the server using:
```sh
```
Wait for the server to boot up and then initialize the database using a second terminal:
```sh
```
This command can also be used to empty the database if you want to start with a new one.
After the daemon has ran the initial migrations you may check out the schema of the database:
```sh
Once you are done with the database you can stop the server by pressing `CTRL-C` inside the