Deploying your own
HykeCal deploys to Vercel with a Neon Postgres database. Every step below is something you run yourself — account-bound setup like this can't be done on your behalf.
git clone https://github.com/hykelauncher/hykecal.git
cd hykecal
npm install
vercel link # links this folder to a Vercel project
vercel integration add neon # provisions Postgres, sets DATABASE_URL etc.
vercel env pull # writes .env.local
npm run db:push # creates the tablesThen apply sql/booking-exclusion-constraint.sql by hand (via psql or the Neon SQL editor) — Drizzle doesn't model Postgres exclusion constraints, so it lives outside the schema file.
Required environment variables
ADMIN_PASSWORD, SESSION_SECRET, and HYKECAL_API_KEY for auth (all fail closed if unset); RESEND_API_KEY/EMAIL_FROM for booking emails; GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRETfor Google Calendar sync (optional — the settings page shows "Not set up" without them, nothing breaks).
vercel env add ADMIN_PASSWORD
vercel env add SESSION_SECRET # openssl rand -hex 32
vercel env add HYKECAL_API_KEY # openssl rand -hex 32
vercel deploy --prod