The repo contains everything required for deploying kittenbot.io. You can also use this repo to create a clone for a different domain.
To successfully deploy this you will need a few things:
- A Dezgo API key and some credits in your account. Because we generate a single image a day those credits will last quite a while.
- A Terraform Cloud account.
- A registered domain. Currently this domain is assumed to be registered with AWS.
At its core this is simply a static website hosted in S3 and served by CloudFront. CloudFront does most of the heavy lifting, including caching.
An EventBridge schedule invokes a lambda every day. The lambda makes a call to Dezgo to generate an image with the passed in prompt and model; the prompt and model are configured via Terraform variables. The lambda then templates out a new latest.html
and uploads everything to S3. Finally the lambda creates a CloudFront cache invalidation for latest.html
and the generated image.