Self-hosting
GudForm core runs with Docker Compose: builder, public forms, responses, teams, API keys, and webhooks. Hosted billing, Stripe payment collection, and the integrations marketplace are not included. See developer docs for the API.
Docker Compose
From the repository root:
docker compose up --buildThe default compose file publishes the app at http://localhost:3080 and Postgres at localhost:5433 so they do not collide with a local pnpm dev on port 3000.
- Health check:
GET /api/healthreturns{ "ok": true, "edition": "oss" } - Register with email and password. Email verification is skipped when Resend is not configured.
- Change
AUTH_SECRETbefore exposing the stack beyond localhost.
Required environment
NEXT_PUBLIC_APP_URL— public URL of the appAUTH_SECRET—openssl rand -base64 32DATABASE_URL— Postgres connection stringAUTH_TRUST_HOST=trueandAUTH_URL— set these in Docker / behind a reverse proxy
Google, Resend, and R2 are optional. Hosted gudform.com is a separate private product; this Docker image is core only.