---
title: "Deploy HeyForm"
description: "HeyForm 3.0: conversational forms, surveys and quizzes, no-code."
category: "Other"
url: https://railway.com/deploy/heyform-2
---

# Deploy HeyForm

HeyForm 3.0: conversational forms, surveys and quizzes, no-code.

**[Deploy HeyForm on Railway](https://railway.com/template/heyform-2)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/heyform-2/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Other

## Template content

### MongoDB https://devicons.railway.app/i/mongodb.svg

- **Image:** mongo:8.0
- **Start command:** `docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0 --setParameter diagnosticDataCollectionEnabled=false`

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### heyform https://raw.githubusercontent.com/heyform/heyform/v3.0.3/packages/webapp/public/static/icon_192.png

- **Image:** heyform/community-edition:v3.0.3
- **Start command:** `sh -c 'printf "%s\n" "$HEYFORM_SEED" > /tmp/seed.mjs; node --enable-source-maps ./dist/src/main.js & pid=$!; trap "kill -TERM $pid; wait $pid; exit 0" TERM INT; node /tmp/seed.mjs & wait $pid'`
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# Deploy and Host HeyForm on Railway

HeyForm is an open-source form builder for conversational forms, surveys, quizzes and polls. It shows one question at a time, supports logic jumps, hidden fields, file uploads, payments and themes, and sends submissions to webhooks and integrations. It is a self-hosted alternative to Typeform and Tally.

## About Hosting HeyForm

This template runs the official `heyform/community-edition:v3.0.3` image with Railway MongoDB and Redis. HeyForm normally asks every new account to verify its email, which fails without SMTP, so on first boot a script creates a verified owner account from `HEYFORM_ADMIN_EMAIL` and a generated password, and public sign-up stays off (`APP_DISABLE_REGISTRATION=true`). Forms and submissions live in MongoDB; uploaded files go to a Railway volume. Session and form encryption keys are generated. It fits the Hobby plan. Add SMTP variables if you want email notifications for new submissions or want to invite teammates by email.

## Common Use Cases

- Customer surveys and feedback forms
- Quizzes, polls and lead-capture forms
- Collecting submissions into webhooks and automations

## Dependencies for HeyForm Hosting

- `heyform/community-edition:v3.0.3` (official image)
- Railway MongoDB and Redis
- A Railway volume at `/app/packages/server/static/upload`

### Deployment Dependencies

- [HeyForm documentation](https://docs.heyform.net/)
- [HeyForm v3.0.3 release](https://github.com/heyform/heyform/releases/tag/v3.0.3)
- [Railway volumes](https://docs.railway.com/reference/volumes)

### Implementation Details

| Service | Source | Networking | Storage |
| --- | --- | --- | --- |
| heyform | `heyform/community-edition:v3.0.3` | public domain on 9157 | volume for uploads |
| MongoDB | Railway MongoDB | private | Railway volume |
| Redis | Railway Redis | private | Railway volume |

| Variable | Default | Purpose |
| --- | --- | --- |
| `HEYFORM_ADMIN_EMAIL` | `admin@example.com` | Owner account created on first boot |
| `HEYFORM_ADMIN_PASSWORD` | generated | Its password |
| `APP_DISABLE_REGISTRATION` | `true` | Blocks public sign-up |
| `SESSION_KEY`, `FORM_ENCRYPTION_KEY` | generated | Session and submission encryption |

Notes:

- On first sign-in HeyForm asks you to create a workspace and project.
- The seed only runs while no users exist; later changes to the admin variables have no effect.
- Add `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD` and `SMTP_FROM` for email.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by HeyForm.

## Why Deploy HeyForm on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying HeyForm on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/heyform-2
