The easiest way to get started with OpnForm is through our official managed service in the Cloud. It takes just 1 minute to try out the builder for free, with high availability, backups, security, and maintenance all managed for you.

Looking to develop OpnForm locally? Check out our Docker Development Setup guide which provides hot-reload and other development features.

Quick Start

  1. Clone the repository:

    git clone https://github.com/JhumanJ/OpnForm.git
    cd OpnForm
    
  2. Run the setup script:

    chmod +x scripts/docker-setup.sh
    ./scripts/docker-setup.sh
    

    The script will:

    • Create necessary environment files
    • Pull required Docker images
    • Start all containers in production mode
    • Display access information
  3. Access your OpnForm instance at http://localhost

Initial Login

After deployment, use these credentials to access the app:

  • Email: admin@opnform.com
  • Password: password

You will be prompted to change your email and password after your first login.

Public registration is disabled in the self-hosted version. Use the admin account to invite additional users.

Architecture

Components

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:

# Build all images
docker compose build

# Or build specific images
docker build -t opnform-api:local -f docker/Dockerfile.api .
docker build -t opnform-ui:local -f docker/Dockerfile.client .

Custom Configuration

Create a docker-compose.override.yml to customize your deployment:

services:
  api:
    image: opnform-api:local
    environment:
      PHP_MEMORY_LIMIT: 1G
  ui:
    image: opnform-ui:local
  ingress:
    volumes:
      - ./custom-nginx.conf:/etc/nginx/conf.d/default.conf

Maintenance

Updates

  1. Pull latest changes:

    git pull origin main
    
  2. Update containers:

    docker compose pull
    docker compose up -d
    

Monitoring

View container logs:

# All containers
docker compose logs -f

# Specific container
docker compose logs -f api

Monitor container health:

docker compose ps

Troubleshooting

Container Issues

If containers aren’t starting:

# View detailed logs
docker compose logs -f

# Recreate containers
docker compose down
docker compose up -d

Database Issues

If database connections fail:

# Check database status
docker compose exec db pg_isready

# View database logs
docker compose logs db

Cache Issues

Clear various caches:

# Clear application cache
docker compose exec api php artisan cache:clear

# Clear config cache
docker compose exec api php artisan config:clear

# Clear route cache
docker compose exec api php artisan route:clear

Permission Issues

Fix storage permissions:

docker compose exec api chown -R www-data:www-data storage
docker compose exec api chmod -R 775 storage