HeyForm

HeyForm is an open-source form builder that allows anyone to create engaging conversational forms for surveys, questionnaires, quizzes, and polls.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: '3.9'
 
networks:
  keydb:
  mongo:
 
services:
  heyform:
    image: heyform/community-edition:latest
    restart: always
    volumes:
      # Persist uploaded images
      - ./assets:/app/static/upload
    depends_on:
      - mongo
      - keydb
    ports:
      - '9513:8000'
    environment:
      APP_HOMEPAGE_URL: http://127.0.0.1:9513
      SESSION_KEY: key1
      FORM_ENCRYPTION_KEY: key2
      MONGO_URI: 'mongodb://mongo:27017/heyform'
      REDIS_HOST: keydb
      REDIS_PORT: 6379
 
  mongo:
    image: percona/percona-server-mongodb:4.4
    restart: always
    volumes:
      # Persist MongoDB data
      - ./database:/data/db
 
  keydb:
    image: eqalpha/keydb:latest
    restart: always
    command: keydb-server --appendonly yes
    volumes:
      # Persist KeyDB data
      - ./keydb:/data

.env

# https://docs.heyform.net/configuration
 
# App serve
# If you are developing locally, you can use http://[ip]:[port].
APP_HOMEPAGE_URL=http://127.0.0.1:8000
 
# If you are using docker:
# ports:
#  - "9090:8000"
# The url should be http://127.0.0.1:9090 but not :8000.
 
# If you are deploying to a server, please replace it with your domain.
# APP_HOMEPAGE_URL=https://heyform.net
 
# Auth
SESSION_MAX_AGE=15d
SESSION_KEY="key1"
FORM_ENCRYPTION_KEY="key2"
 
# Mongo
MONGO_URI="mongodb://localhost:27017/heyform"
MONGO_USER=
MONGO_PASSWORD=
 
# Upload
UPLOAD_FILE_TYPES=".jpg,.png,.bmp,.gif,.txt,.md,.doc,.docx,.xls,.xlsx,.csv,.ppt,.pptx,.pdf,.mp4,.wmv,.zip,.rar,.7z"
 
# SMTP
SMTP_FROM="HeyForm <noreply@example.com>"
SMTP_HOST="example.com"
SMTP_PORT=465
SMTP_USER=
SMTP_PASSWORD=
 
# Social login
APPLE_LOGIN_TEAM_ID=
APPLE_LOGIN_WEB_CLIENT_ID=
APPLE_LOGIN_KEY_ID=
APPLE_LOGIN_PRIVATE_KEY_PATH=
 
# https://docs.heyform.net/login-with-google
GOOGLE_LOGIN_CLIENT_ID=
GOOGLE_LOGIN_CLIENT_SECRET=
 
# Submission spam filter
AKISMET_KEY=
 
# Anti bot
# https://www.geetest.com/en/
GEETEST_CAPTCHA_ID=
GEETEST_CAPTCHA_KEY=
 
# https://www.google.com/recaptcha/about/
GOOGLE_RECAPTCHA_KEY=
GOOGLE_RECAPTCHA_SECRET=
 
# Bull & redis
BULL_JOB_ATTEMPTS=3
BULL_JOB_BACKOFF_DELAY=3000
BULL_JOB_BACKOFF_TYPE=fixed
 
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=0
 
# Unsplash
UNSPLASH_CLIENT_ID=
 
# Stripe
# https://docs.heyform.net/connect-with-stripe
STRIPE_PUBLISHABLE_KEY=pk_
STRIPE_SECRET_KEY=sk_
STRIPE_CONNECT_CLIENT_ID=ca_
STRIPE_WEBHOOK_SECRET_KEY=whsec_
 
# OpenAI
OPENAI_BASE_URL=
OPENAI_API_KEY=

Resources

Website: https://heyform.net/

GitHub: https://github.com/heyform/heyform

Docker Hub: https://hub.docker.com/r/heyform/community-edition

Configuration: https://docs.heyform.net/open-source/self-hosting