change up hosted pomu infrastructure
mellowagain opened this issue · comments
We are nearing 1000 livestreams saved on our hosted pomu instance. We'll take this opportunity to do a bunch of infrastructure updates:
Promote dev instance to production
Our dev instance has been stable enough for quite a while now, meaning that we can go ahead and promote it to the production instance. This means:
dev.pomu.app
->pomu.app
dev-cdn.pomu.app
->cdn.pomu.app
All other subdomains such as manual-cdn.pomu.app
, docs.pomu.app
or status.pomu.app
will stay on their current subdomain
Checklist:
- Update
.env
file onpomu
fly.io container, replacing alldev.
urls with the full URL - Update DNS on Cloudflare to have the root domain point to the fly.io container
- Remove placeholder page on https://pomu.app currently hosted with Cloudflare Pages
- Update Discord OAuth redirect url within the Discord Developer Portal
- Update Postgres database
download_url
field with newly adjusted CDN url - Update the whole Meilisearch
pomu
search index with newly adjusted CDN url - Update status page URLs to point to the new production instance
- Optional: Add redundancy region to the
pomu
hosted container on fly.io
Because Backblaze S3 buckets cannot be updated, we will keep the S3 bucket named pomu-dev
and we will continue to save new archives into that S3 bucket.
Meilisearch Cloud Free Tier retirement
Pomu uses Meilisearch Cloud at the moment, but they have announced that they will be sun setting their free tier and replace it with a $20/mo basic tier at the end of this month. Pomu's search usage is in no way high enough (less than 1K searches per month) to justify migrating to it, so we will switch to self-hosted Meilisearch using fly.io
- Setup Meilisearch in a fly.io container
- Adjust Meilisearch URL & API keys in pomu's production containers
.env
file - Restart pomu to repopulate the (now empty) search index
Dump pomu.app database
In the spirit of being open data (and also as a backup solution), we should add automated downloadable database dumps of pomu.app
's videos
table. We should host these database dump in a GitHub repository.
- Create
pomu-db-dumps
repository - Setup automated daily dumping using GitHub actions