The easiest way to get started with OpnForm is through our official managed service in the Cloud. It takes just 1 minute to start building forms with the free plan, with high availability, backups, security, and maintenance all managed for you.
Quick Start
- Clone the repository:
-
Run the setup script:
The script will:
- Create necessary environment files
- Pull required Docker images
- Start all containers in production mode
- Display access information
-
Access your OpnForm instance at
http://localhost
Configure your public instance URL
The setup script creates the environment files, but it cannot know the public domain where your instance will be available. Before configuring OIDC, OAuth, or using the instance in production, set the public URL in both files:
For example, an instance available at
https://forms.example.com uses
https://forms.example.com for APP_URL, FRONT_URL, and
NUXT_PUBLIC_APP_URL, plus https://forms.example.com/api for
NUXT_PUBLIC_API_BASE.
After changing these variables, recreate the containers; docker compose restart does not load new environment values.
If a reverse proxy is in front of OpnForm
When Caddy, Traefik, Cloudflare, or another reverse proxy forwards traffic to the Docker ingress, setTRUSTED_PROXIES in api/.env to the IP address or
CIDR range from which that proxy connects to the ingress. This lets OpnForm use
the real client IP for OIDC and other rate limits.
*: doing so would make a direct client-provided forwarding header
trustworthy and allow rate-limit bypasses. Recreate the API container after
changing it.
Initial Setup
After deployment, OpnForm will automatically redirect you to a setup page where you can create your admin account. Simply visithttp://localhost and you’ll be guided through the setup process.
Public registration is disabled in the self-hosted version after setup is
complete. Use the admin account to invite additional users. Free
self-hosted instances are limited to 2 users total across the instance;
activate a self-hosted Enterprise license to add more users.
A self-hosted Enterprise license is optional. Core self-hosted OpnForm works
without a license, including OIDC within the free 2-user limit. Adding more
users and advanced Enterprise features require license activation. See
Self-hosted License.
Architecture
Components
- Frontend
- Backend
- Workers
- Databases
- Proxy
The Nuxt frontend service: - Server-Side Rendered application - Built
with Vue 3 and Tailwind CSS - Handles dynamic rendering and client-side
interactivity - Optimized for production performance
Docker Images
OpnForm provides pre-built Docker images for easy deployment:Building Custom Images
While we recommend using the official images, you can build custom images if needed:Custom Configuration
Create adocker-compose.override.yml to customize your deployment:
Environment Variables
For detailed information about environment variables and how to update them in Docker, see our Environment Variables documentation.Maintenance
Updates
-
Pull latest changes:
-
Update containers:
Monitoring
View container logs:Troubleshooting
Container Issues
If containers aren’t starting:Database Issues
If database connections fail:Line Ending Issue: When using Git or code editors on Windows, line
endings in the
artisan script may be converted from LF (Unix-style) to
CRLF (Windows-style). This prevents the Docker container from properly
executing the script, causing it to hang at “Waiting for DB to be ready”.
Always ensure script files maintain LF line endings.