Docs
Installation
Installation
Get GudCal running locally for development or evaluation.
Clone the Repository
git clone https://github.com/cavewebs/gudcal.git
cd gudcalInstall Dependencies
GudCal uses pnpm as its package manager:
pnpm installConfigure Environment Variables
Copy the example environment file and fill in your values:
cp .env.example .env.localRequired variables:
NEXT_PUBLIC_APP_URL=http://localhost:3000
AUTH_SECRET=your-random-secret-at-least-32-chars
GOOGLE_CLIENT_ID=your-google-oauth-client-id
GOOGLE_CLIENT_SECRET=your-google-oauth-client-secret
DATABASE_URL=postgresql://user:password@host:5432/gudcal
RESEND_API_KEY=your-resend-api-keyYou can generate an AUTH_SECRET by running: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Set Up the Database
GudCal uses PostgreSQL with Prisma. Generate the Prisma client and push the schema to your database:
pnpm prisma generate
pnpm prisma db pushMake sure your PostgreSQL database is running and the DATABASE_URL in your .env.local file is correct before running these commands.
Start the Development Server
pnpm devGudCal will be available at http://localhost:3000.
Optional: Google Calendar Integration
To enable Google Calendar sync, you'll need separate OAuth credentials with calendar scopes. Add these to your .env.local:
GOOGLE_CALENDAR_CLIENT_ID=your-calendar-client-id
GOOGLE_CALENDAR_CLIENT_SECRET=your-calendar-client-secret
ENCRYPTION_KEY=your-32-byte-hex-encryption-keyGenerate an encryption key:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Next Steps
- Configuration — Customize site name, links, and features
- Self-Hosting — Deploy to production
- API Reference — Integrate programmatically
- MCP Server — Connect AI agents
