# ladylilia.com ## Project structure * `apps/gifted-subs` - Angular application for browsing gifted subs * `apps/merchandise` - Angular application for browsing merchandise * `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 * `instagram-api` - Flask application implementing RESTful API for querying Instagram profiles * `quotes-api` - Flask application implementing RESTful API for querying/manipulating the database of quotes * `teespring-api` - Flask application implementing RESTful API for querying Teespring merchandise stores * `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 7 container images (`instagram-api` `quotes-api`, `teespring-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`.