|
20 | 20 | <a href="https://console.algora.io/org/OpnForm/bounties?status=completed"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2FOpnForm%2Fbounties%3Fstatus%3Dcompleted" alt="Rewarded Bounties"></a>
|
21 | 21 | </p>
|
22 | 22 |
|
23 |
| -> An open-source form builder. It's an alternative to products like Typeform, JotForm, Tally etc. |
| 23 | +OpnForm is an open-source form builder. |
24 | 24 |
|
25 |
| -## Features |
| 25 | +## Get Started |
26 | 26 |
|
27 |
| -- No-code form builder, with infinite number of fields & submissions |
28 |
| -- Text inputs, Date inputs, URL inputs, Phone inputs, Email inputs, Checkboxes, Select and Multi-Select inputs, Number Inputs, Star-ratings, File uploads & more |
29 |
| -- Embed anywhere (on your website, in your Notion page, etc) |
30 |
| -- Email notifications (for both form owner & form respondents) |
31 |
| -- Hidden fields |
32 |
| -- Form passwords |
33 |
| -- URL form pre-fill |
34 |
| -- Slack integration |
35 |
| -- Webhooks |
36 |
| -- Form logic |
37 |
| -- Customize colors, add images or even some custom code |
38 |
| -- Captcha form protection |
39 |
| -- Form closing date |
40 |
| -- Limit the number of submissions allowed |
| 27 | +The easiest way to get started with OpnForm is to sign up for our [managed service in the Cloud](https://opnform.com/). You get support, backups, upgrades, and more. Your data is safe and secure, and you don't need to worry about maintenance or infrastructure. Check out our quick overview of [cloud vs self-hosting](https://docs.opnform.com/deployment/cloud-vs-self-hosting). |
41 | 28 |
|
42 |
| -And much more! |
| 29 | +## Key Features |
43 | 30 |
|
44 |
| -## Bounties |
| 31 | +- 🚀 No-code builder with unlimited forms & submissions |
| 32 | +- 📝 Various input types: Text, Date, URL, File uploads & much more |
| 33 | +- 🌐 Embed anywhere |
| 34 | +- 📧 Email notifications |
| 35 | +- 💬 Integrations (Slack, Webhooks, Discord) |
| 36 | +- 🧠 Form logic & customization |
| 37 | +- 🛡️ Captcha protection |
| 38 | +- 📊 Form analytics |
45 | 39 |
|
46 |
| -Get paid for contributing to OpnForm! Here are our open bounties: |
| 40 | +For a complete list of features and detailed documentation, visit our [Technical Documentation](https://docs.opnform.com). |
47 | 41 |
|
48 |
| -<a href="https://console.algora.io/org/OpnForm/bounties?status=open"> |
49 |
| - <picture> |
50 |
| - <source media="(prefers-color-scheme: dark)" srcset="https://console.algora.io/api/og/OpnForm/bounties.png?p=0&status=open&theme=dark"> |
51 |
| - <img alt="Bounties of OpnForm" src="https://console.algora.io/api/og/OpnForm/bounties.png?p=0&status=open&theme=light"> |
52 |
| - </picture> |
53 |
| -</a> |
54 |
| - |
55 |
| -## Getting started with OpnForm |
56 |
| - |
57 |
| -The easiest way to get started with OpnForm is with the [official managed service in the Cloud](https://opnform.com/). |
58 |
| - |
59 |
| -It takes 1 minute to try out the builder for free. You'll have high availability, backups, security, and maintenance all managed for you. |
60 |
| - |
61 |
| -### Requirements |
62 |
| - |
63 |
| -- PHP >= 8.0 |
64 |
| -- MySQL/MariaDB or PostgreSQL |
65 |
| -- Node.js and NPM/Yarn/... to compile assets |
66 |
| - |
67 |
| -## Installation |
68 |
| - |
69 |
| -### Environment Setup |
70 |
| - |
71 |
| -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. |
72 |
| - |
73 |
| -Follow these steps to set up your environment: |
74 |
| - |
75 |
| -1. Make sure you have `openssl` installed, as it is required by the setup script to generate secure keys. |
76 |
| - |
77 |
| -2. Run the setup script from the root of the project: |
78 |
| - |
79 |
| - ```bash |
80 |
| - chmod +x ./scripts/setup-env.sh |
81 |
| - ./scripts/setup-env.sh |
82 |
| - ``` |
83 |
| - |
84 |
| - **If you are using Docker** and want to prepare a Docker-specific environment, run the script with the `--docker` flag: |
85 |
| - |
86 |
| - ```bash |
87 |
| - ./scripts/setup-env.sh --docker |
88 |
| - ``` |
89 |
| - |
90 |
| -3. After running the script, review the `.env` and `client/.env` files to ensure all settings are correct for your environment. |
91 |
| - |
92 |
| -Remember to never commit your `.env` files to version control. They should be kept private as they contain sensitive information. |
93 |
| - |
94 |
| -### Docker Installation 🐳 |
95 |
| - |
96 |
| -OpnForm can be easily set up using Docker. Pre-built images are available on Docker Hub, which is the recommended method for most users. |
97 |
| - |
98 |
| -#### Prerequisites |
99 |
| - |
100 |
| -- Docker |
101 |
| -- Docker Compose |
102 |
| - |
103 |
| -#### Quick Start |
104 |
| - |
105 |
| -1. Clone the repository: |
106 |
| - |
107 |
| - ``` |
108 |
| - git clone https://github.com/JhumanJ/OpnForm.git |
109 |
| - cd OpnForm |
110 |
| - ``` |
111 |
| - |
112 |
| -2. Set up environment files by running the provided setup script. For detailed instructions, refer to the [Environment Setup](#environment-setup) section above: |
113 |
| - |
114 |
| - ```bash |
115 |
| - ./scripts/setup-env.sh --docker |
116 |
| - ``` |
117 |
| - |
118 |
| -3. Start the application: |
119 |
| - |
120 |
| - ``` |
121 |
| - docker-compose up -d |
122 |
| - ``` |
123 |
| - |
124 |
| -4. Access OpnForm at http://localhost |
125 |
| - |
126 |
| -> 🌐 **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`. |
127 |
| - |
128 |
| -#### Customization |
129 |
| - |
130 |
| -- **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. |
131 |
| - |
132 |
| -#### Upgrading |
133 |
| - |
134 |
| -1. Check the upgrade instructions for your target version in the documentation. |
135 |
| -2. Update your `docker-compose.yml` file if necessary. |
136 |
| -3. Apply changes: |
137 |
| - ``` |
138 |
| - docker-compose up -d |
139 |
| - ``` |
140 |
| - |
141 |
| -#### Initial Login |
142 |
| - |
143 |
| -After installation, use these credentials to access the admin panel: |
144 |
| - |
145 |
| -- Email: `admin@opnform.com` |
146 |
| -- Password: `password` |
147 |
| - |
148 |
| -⚠️ Change these credentials immediately after your first login. |
149 |
| - |
150 |
| -Note: Public registration is disabled in the self-hosted version. Use the admin account to invite additional users. |
151 |
| - |
152 |
| -#### Building from Source |
153 |
| - |
154 |
| -For development or customization, you can build the Docker images locally: |
155 |
| - |
156 |
| -1. Build the images: |
157 |
| - |
158 |
| - ``` |
159 |
| - docker build -t opnform-ui:local -f docker/Dockerfile.client . |
160 |
| - docker build -t opnform-api:local -f docker/Dockerfile.api . |
161 |
| - ``` |
162 |
| - |
163 |
| -2. Create a docker-compose override file: |
164 |
| - |
165 |
| - ``` |
166 |
| - touch docker-compose.override.yml |
167 |
| - ``` |
168 |
| - |
169 |
| - Edit the `docker-compose.override.yml` file to use your locally built images: |
170 |
| - |
171 |
| - ```yaml |
172 |
| - services: |
173 |
| - api: |
174 |
| - image: opnform-api:local |
175 |
| - ui: |
176 |
| - image: opnform-ui:local |
177 |
| - api-worker: |
178 |
| - image: opnform-api:local |
179 |
| - ``` |
180 |
| - |
181 |
| -3. Start the application: |
182 |
| - ``` |
183 |
| - docker-compose up -d |
184 |
| - ``` |
185 |
| - |
186 |
| -This method allows you to make changes to the source code and rebuild the images as needed. |
187 |
| - |
188 |
| -#### Clearing all resources |
189 |
| - |
190 |
| -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: |
191 |
| - |
192 |
| -```bash |
193 |
| -docker-compose down -v --rmi all |
194 |
| -``` |
195 |
| - |
196 |
| -### Using Laravel Valet |
197 |
| - |
198 |
| -This section explains how to get started locally with the project. It's most likely relevant if you're trying to work on the project. |
199 |
| -First, let's work with the codebase and its dependencies. |
200 |
| -
|
201 |
| -```bash |
202 |
| -# Get the code! |
203 |
| -git clone git@github.com:JhumanJ/OpnForm.git && cd OpnForm |
204 |
| -
|
205 |
| -# Install PHP dependencies |
206 |
| -composer install |
207 |
| -
|
208 |
| - # Install JS dependencies |
209 |
| -cd client && npm install |
210 |
| -
|
211 |
| -# Compile assets (see the scripts section in package.json) |
212 |
| -npm run dev # or build |
213 |
| -``` |
214 |
| -
|
215 |
| -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! |
216 |
| -
|
217 |
| -Configure the desired database in the `DATABASE_` section. You can fine tune your installation on the [laravel documentation](https://laravel.com/docs/9.x). |
218 |
| -
|
219 |
| -Run these artisan commands: |
220 |
| -
|
221 |
| -```bash |
222 |
| -# Generate needed secrets 🙈 |
223 |
| -php artisan key:generate |
224 |
| -php artisan jwt:secret # and select yes! |
225 |
| -
|
226 |
| -# Creates DB schemas |
227 |
| -php artisan migrate |
228 |
| -``` |
229 |
| -
|
230 |
| -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)": |
231 |
| -
|
232 |
| -```json |
233 |
| -[ |
234 |
| - { |
235 |
| - "AllowedHeaders": ["*"], |
236 |
| - "AllowedMethods": ["PUT", "POST", "GET", "DELETE"], |
237 |
| - "AllowedOrigins": ["*"], |
238 |
| - "ExposeHeaders": [] |
239 |
| - } |
240 |
| -] |
241 |
| -``` |
242 |
| -
|
243 |
| -🎉 Done! Enjoy your personal OpnForm instance at: [http://opnform.test](http://opnform.test). |
244 |
| -
|
245 |
| -## One-Click Deployment |
246 |
| -
|
247 |
| -[](https://repocloud.io/details/?app_id=294) |
| 42 | +## Quick Start |
248 | 43 |
|
249 |
| -## Tech Stack |
| 44 | +The easiest way to get started with OpnForm is through our [official managed service in the Cloud](https://opnform.com/). |
250 | 45 |
|
251 |
| -OpnForm is a standard web application built with: |
| 46 | +For self-hosted installations, please refer to our [Deployment Guides](https://docs.opnform.com/deployment). For detailed instructions on setting up a local environment, check out our [Local Deployment Documentation](https://docs.opnform.com/deployment/local-deployment). |
252 | 47 |
|
253 |
| -- [Laravel](https://laravel.com/) PHP framework |
254 |
| -- [NuxtJs](https://nuxt.com/) Front-end SSR framework |
255 |
| -- [Vue.js 3](https://vuejs.org/) Front-end framework |
256 |
| -- [TailwindCSS](https://tailwindcss.com/) |
| 48 | +## Support & Community |
257 | 49 |
|
258 |
| -## Contribute |
| 50 | +If you need help or have questions, please join our [Discord community](https://discord.gg/YTSjU2a9TS). For more information and assistance, check out the following resources: |
259 | 51 |
|
260 |
| -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). |
| 52 | +- [Product Helpdesk](https://help.opnform.com) |
| 53 | +- [Technical Documentation](https://docs.opnform.com) |
261 | 54 |
|
262 | 55 | ## License
|
263 | 56 |
|
|
0 commit comments