Back to Apps
Formio

Deploy Formio on Your Own Server

<form.io> is a combined Form and Data Management platform for form-based Progressive web applications.

πŸ“¦ Other

Want to deploy Formio on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Formio?

<form.io> is a combined Form and Data Management platform for form-based Progressive web applications. The process will deploy a database, the API and form manager.

Self-Host Formio

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

Deploy

Copy the configuration and run it on your server.

services:
  formio:
    image: calipseo/formio:1.90.7
    environment:
      API_URL: https://formio.your-domain.com
      APP_URL: https://formio.your-domain.com
      MONGO: mongodb://formio-mongodb:27017/formio
      ROOT_EMAIL: admin@example.com
      ROOT_PASSWORD: ""
      SMTP_HOST: ""
      SMTP_PASSWORD: ""
      SMTP_PORT: ""
      SMTP_USERNAME: ""
    volumes:
      - formio-data:/app
    depends_on:
      - formio-mongodb
  formio-mongodb:
    image: mongo:4.1
    volumes:
      - formio-db-data:/data/db
volumes:
  formio-data: {}
  formio-db-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:3001

Why Self-Host Formio?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

calipseo/formio:${formio_version}

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"