mellowagain / pomu

pomu.app archives VTuber livestreams both automatically and on-demand

Home Page:https://dev.pomu.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

change up hosted pomu infrastructure

mellowagain opened this issue · comments

commented

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 on pomu fly.io container, replacing all dev. 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