--- title: "Docker" description: "OpnForm can be easily set up using Docker. We provide pre-built images on Docker Hub, which is the recommended method for most users." --- import CloudVersion from "/snippets/cloud-version.mdx"; ## Prerequisites - Docker - Docker Compose ## Quick Start 1. Clone the repository: ```bash git clone https://github.com/JhumanJ/OpnForm.git cd OpnForm ``` 2. Set up environment files: ```bash ./scripts/setup-env.sh --docker ``` 3. (Optional) Customize the environment variables: You can modify two environment files to customize your OpnForm installation: - The `.env` file in the `api` directory for backend configuration - The `.env` file in the `client` directory for frontend configuration For more information on available environment variables, please refer to our [Environment Variables](/configuration/environment-variables) page. 4. Start the application: ```bash docker-compose up -d ``` 5. Access OpnForm at http://localhost ### Initial Login After installation, 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. ## Docker Images OpnForm provides pre-built Docker images for easy deployment. You can find our official Docker images on Docker Hub: - [OpnForm API Image](https://hub.docker.com/r/jhumanj/opnform-api) - [OpnForm Client Image](https://hub.docker.com/r/jhumanj/opnform-client) We recommend using these official images for your OpnForm deployment. ## Building Your Own Docker Images If you prefer to build your own Docker images, you can do so using the provided Dockerfiles in the repository: 1. Build the API image: ```bash docker build -t opnform-api:local -f docker/Dockerfile.api . ``` 2. Build the UI image: ```bash docker build -t opnform-ui:local -f docker/Dockerfile.client . ``` ### Overriding Docker Compose Configuration You can override the default Docker Compose configuration by creating a `docker-compose.override.yml` file. This allows you to customize various aspects of the deployment without modifying the main `docker-compose.yml` file. Example `docker-compose.override.yml`: ```yaml services: api: image: opnform-api:local ui: image: opnform-ui:local api-worker: image: opnform-api:local ``` ### Clearing all resources To completely remove all Docker containers, networks, and volumes created by docker-compose and also remove all images used by these services, you can use the following command: ``` docker-compose down -v --rmi all ```