# ladylilia.com
## Project structure
* `apps/gifted-subs` - Angular application for browsing gifted subs
* `apps/quotes` - Angular application for browsing quotes
* `apps/regular-subs` - Angular application for browsing regular subs
* `apps/schedule` - Angular application for viewing livestream schedule
* `apps/twitch-logs` - Angular application for browsing Twitch chat logs
* `cms` - Grav CMS (Content Management System)
* `nginx` - Configuration of NGINX web server
* `quotes-api` - Flask application implementing RESTful API for querying/manipulating the database of quotes
* `twitch-cache-api` - Flask application implementing RESTful API for querying the Twitch cache
* `twitch-subs-api` - Flask application implementing RESTful API for querying the database of Twitch subscriptions
## Deployment
This project consists of 5 container images (`quotes-api`, `twitch-cache-api` , `twitch-subs-api` , `cms` and `nginx` ), that depend on each other - they need to run simultaneously and share certain data between themselves.
Best way to manage that is with `docker-compose` . Just copy `docker-compose.yaml.example` into `docker-compose.yaml` , make necessary adjustments and fire it all up with:
```BASH
docker-compose up -d
```
## Quotes API key generation
Quotes API key is needed for `POST` , `PUT` and `DELETE` API methods.
If the `quotes-api` container is running, then the key can be generated like this:
```BASH
docker exec $QUOTES_API_CONTAINER_NAME python generate_api_key.py $USERNAME $EXPIRATION_TIME_IN_SECONDS
```
## Twitch subs API key generation
Same as above, just replace `quotes-api` with `twitch-subs-api` .