---
title: "Local Deployment"
description: "Set up OpnForm locally for development"
---

import CloudVersion from "/snippets/cloud-version.mdx";

<CloudVersion/>

## Docker Development Setup (Recommended)

We recommend using our Docker-based development environment for the easiest setup experience. It provides hot-reload, debugging support, and all necessary services pre-configured.

See our [Docker Development Setup](/deployment/docker-development) guide to get started with Docker.

## Manual Setup

If you prefer to set up OpnForm manually or can't use Docker, follow the instructions below.

## Requirements

Before proceeding with the local deployment, ensure you have the following prerequisites installed on your system:

- **PHP**: Version 8.0 or higher
- **Composer**: The PHP dependency manager
- **Node.js**: Version 14 or higher
- **NPM** or **Yarn**: Package managers for Node.js
- **MySQL**, or **PostgreSQL**: A supported database system

Make sure these components are properly installed and configured on your local machine before proceeding with the deployment steps.

## Local setup

1. Install Laravel Herd -Download and install Laravel Herd from the official website: https://herd.laravel.com/

2. Clone the repository and install dependencies:

   ```bash
   git clone https://github.com/JhumanJ/opnform && cd OpnForm
   cd api && composer install
   cd ../client && npm install
   ```

3. Compile assets and run dev server:

   ```bash
   cd client && npm run dev # or build
   ```

4. Set up environment files:

   ```bash
   ./scripts/setup-env.sh
   ```
   This script will create the necessary `.env` files for both the API and client.

5. Run the migrations:

   ```bash
   cd api
   php artisan migrate
   ```

6. Set up Herd:
   For detailed instructions on setting up Herd, refer to the [Herd documentation](https://herd.laravel.com/docs).
   - Open the Herd application
   - Add your OpnForm's `api` directory to Herd
   - Herd will automatically configure a local domain for your project

   This will start the Nuxt.js development server, typically on `http://localhost:3000`.

8. Access your local OpnForm installation:
   - The API will be available at the domain provided by Herd (e.g., `http://opnform.test`)
   - The frontend will be accessible at `http://localhost:3000`
