Appearance
Prerequisites
To self-host RankHub, you need the following tools and accounts.
Required
Bun 1.3+
The JavaScript runtime used for development, building, and running scripts.
bash
curl -fsSL https://bun.sh/install | bash
bun --version # verify >= 1.3.0Supabase Project
PostgreSQL database hosted on Supabase, used for persistent storage.
- Create a project at supabase.com.
- Note the project URL, anon key, and service role key from Settings > API.
- Get the transaction pooler connection string from Settings > Database > Connection string > Transaction pooler.
Cloudflare Account with Workers
Required for deploying the web app and Durable Object worker.
- Create an account at dash.cloudflare.com.
- Enable Workers in the account settings.
- Note your account ID and API token.
- Ensure Durable Objects are enabled for your account.
Optional
Resend Account
For transactional emails (verification, password reset, weekly digest).
- Create an account at resend.com.
- Generate an API key.
- Configure a verified sending domain or use Resend's on-domain email.
PostHog Account
For product analytics.
Sentry Account
For error tracking and performance monitoring.
Local Development
For local development, you can use Supabase's local stack instead of a cloud project:
bash
# Install Supabase CLI
brew install supabase/tap/supabase
# Start local Supabase
supabase start
# This provides local PostgreSQL, Auth, and StorageThe .env.example file in the repository root contains all required environment variables with local defaults already configured.