<ahref="https://github.com/JhumanJ/OpnForm/pulse"><imgsrc="https://img.shields.io/github/commit-activity/m/JhumanJ/OpnForm"alt="Commits per month"></a>
<ahref="https://github.com/JhumanJ/OpnForm/issues/new"><imgsrc="https://img.shields.io/badge/Report a bug-Github-%231F80C0"alt="Report a bug"></a>
<ahref="https://github.com/JhumanJ/OpnForm/discussions/new?category=q-a"><imgsrc="https://img.shields.io/badge/Ask a question-Github-%231F80C0"alt="Ask a question"></a>
- No-code form builder, with infinite number of fields & submissions
- Text inputs, Date inputs, URL inputs, Phone inputs, Email inputs, Checkboxes, Select and Multi-Select inputs, Number Inputs, Star-ratings, File uploads & more
- Embed anywhere (on your website, in your Notion page, etc)
- Email notifications (for both form owner & form respondents)
- Hidden fields
- Form passwords
- URL form pre-fill
- Slack integration
- Webhooks
- Form logic
- Customize colors, add images or even some custom code
Before you can run the application, you need to set up the environment variables. We have provided a script that will automate the process of creating your `.env` files from the provided examples.
Follow these steps to set up your environment:
1. Make sure you have `openssl` installed, as it is required by the setup script to generate secure keys.
2. Run the setup script from the root of the project:
```bash
chmod +x ./scripts/setup-env.sh
./scripts/setup-env.sh
```
**If you are using Docker** and want to prepare a Docker-specific environment, run the script with the `--docker` flag:
```bash
./scripts/setup-env.sh --docker
```
3. After running the script, review the `.env` and `client/.env` files to ensure all settings are correct for your environment.
Remember to never commit your `.env` files to version control. They should be kept private as they contain sensitive information.
2. Set up environment files by running the provided setup script. For detailed instructions, refer to the [Environment Setup](#environment-setup) section above:
> 🌐 **Server Deployment Note**: When deploying to a server, configure the app URLs in both `.env` and `client/.env` files. Set `APP_URL` in `.env`, and both `NUXT_PUBLIC_APP_URL` & `NUXT_PUBLIC_API_BASE` in `client/.env`.
-**Environment Variables**: Modify `.env` and `client/.env` files to customize your setup. For example, to enable email features, configure a [supported mail driver](https://laravel.com/docs/11.x/mail) in the `.env` file.
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:
Now, we can configure Laravel. We just need to prepare some vars in our `.env` file, just create it with `cp .env.example .env` then open it!
Configure the desired database in the `DATABASE_` section. You can fine tune your installation on the [laravel documentation](https://laravel.com/docs/9.x).
Now, create an S3 bucket (or equivalent). Create an IAM user with access to this bucket, fill the environment variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`, `AWS_BUCKET`. In your AWS bucket permissions, add the following under "Cross-origin resource sharing (CORS)":
You're more than welcome to contribute to this project. We don't have guidelines on this yet, but we will soon. In the meantime, feel free to ask [any question here](https://github.com/JhumanJ/OpnForm/discussions).
OpnForm is open-source under the GNU Affero General Public License Version 3 (AGPLv3) or any later version. You can find it [here](https://github.com/JhumanJ/OpnForm/blob/main/LICENSE).