option.name).join('\n')
+ },
prefillSelectsOptions() {
if (!['select', 'multi_select'].includes(this.field.type)) return {}
From 4cd8b3c62eb485c288516b0350c0511b48c0cef2 Mon Sep 17 00:00:00 2001
From: Julien Nahum
Date: Mon, 2 Sep 2024 15:33:17 +0200
Subject: [PATCH 3/3] Technical docs (#553)
* WIP
* Working on configuration
* wip
* Finished docs
* Self hosted comparison + more links
---
README.md | 247 ++----------------
client/components/pages/OpenFormFooter.vue | 37 +--
client/opnform.config.js | 1 +
client/public/img/social-preview.jpg | Bin 37277 -> 307366 bytes
docs/api-reference/endpoint/list-forms.mdx | 4 +
.../endpoint/new-submission-trigger.mdx | 4 +
.../endpoint/sample-submission-polling.mdx | 4 +
.../endpoint/unsubscribe-webhook.mdx | 4 +
.../endpoint/validate-api-key.mdx | 4 +
docs/api-reference/images/create-token.png | Bin 0 -> 227844 bytes
docs/api-reference/introduction.mdx | 37 +++
docs/api-reference/openapi.json | 200 ++++++++++++++
docs/configuration/aws-s3.mdx | 30 +++
docs/configuration/custom-domain.mdx | 20 ++
docs/configuration/email-setup.mdx | 33 +++
docs/configuration/environment-variables.mdx | 64 +++++
docs/contributing/bounties.mdx | 10 +
docs/contributing/getting-started.mdx | 20 ++
docs/contributing/new-form-block.mdx | 6 +
docs/contributing/new-integration.mdx | 6 +
docs/deployment/cloud-vs-self-hosting.mdx | 34 +++
docs/deployment/docker.mdx | 94 +++++++
docs/deployment/local-deployment.mdx | 64 +++++
docs/favicon.ico | Bin 0 -> 15406 bytes
docs/favicon.svg | 49 ++++
docs/images/checks-passed.png | Bin 0 -> 160724 bytes
docs/images/hero-dark.svg | 161 ++++++++++++
docs/images/hero-light.svg | 155 +++++++++++
docs/introduction.mdx | 54 ++++
docs/logo.svg | 1 +
docs/mint.json | 122 +++++++++
docs/snippets/cloud-version.mdx | 3 +
docs/tech-stack.mdx | 63 +++++
33 files changed, 1289 insertions(+), 242 deletions(-)
create mode 100644 docs/api-reference/endpoint/list-forms.mdx
create mode 100644 docs/api-reference/endpoint/new-submission-trigger.mdx
create mode 100644 docs/api-reference/endpoint/sample-submission-polling.mdx
create mode 100644 docs/api-reference/endpoint/unsubscribe-webhook.mdx
create mode 100644 docs/api-reference/endpoint/validate-api-key.mdx
create mode 100644 docs/api-reference/images/create-token.png
create mode 100644 docs/api-reference/introduction.mdx
create mode 100644 docs/api-reference/openapi.json
create mode 100644 docs/configuration/aws-s3.mdx
create mode 100644 docs/configuration/custom-domain.mdx
create mode 100644 docs/configuration/email-setup.mdx
create mode 100644 docs/configuration/environment-variables.mdx
create mode 100644 docs/contributing/bounties.mdx
create mode 100644 docs/contributing/getting-started.mdx
create mode 100644 docs/contributing/new-form-block.mdx
create mode 100644 docs/contributing/new-integration.mdx
create mode 100644 docs/deployment/cloud-vs-self-hosting.mdx
create mode 100644 docs/deployment/docker.mdx
create mode 100644 docs/deployment/local-deployment.mdx
create mode 100644 docs/favicon.ico
create mode 100644 docs/favicon.svg
create mode 100644 docs/images/checks-passed.png
create mode 100644 docs/images/hero-dark.svg
create mode 100644 docs/images/hero-light.svg
create mode 100644 docs/introduction.mdx
create mode 100644 docs/logo.svg
create mode 100644 docs/mint.json
create mode 100644 docs/snippets/cloud-version.mdx
create mode 100644 docs/tech-stack.mdx
diff --git a/README.md b/README.md
index e31f6747..d1e4937c 100644
--- a/README.md
+++ b/README.md
@@ -20,244 +20,37 @@
-> An open-source form builder. It's an alternative to products like Typeform, JotForm, Tally etc.
+OpnForm is an open-source form builder.
-## Features
+## Get Started
-- 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
-- Captcha form protection
-- Form closing date
-- Limit the number of submissions allowed
+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).
-And much more!
+## Key Features
-## Bounties
+- 🚀 No-code builder with unlimited forms & submissions
+- 📝 Various input types: Text, Date, URL, File uploads & much more
+- 🌐 Embed anywhere
+- 📧 Email notifications
+- 💬 Integrations (Slack, Webhooks, Discord)
+- 🧠 Form logic & customization
+- 🛡️ Captcha protection
+- 📊 Form analytics
-Get paid for contributing to OpnForm! Here are our open bounties:
+For a complete list of features and detailed documentation, visit our [Technical Documentation](https://docs.opnform.com).
-
-
-
-
-
-
+## Quick Start
-## Getting started with OpnForm
+The easiest way to get started with OpnForm is through our [official managed service in the Cloud](https://opnform.com/).
-The easiest way to get started with OpnForm is with the [official managed service in the Cloud](https://opnform.com/).
+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).
-It takes 1 minute to try out the builder for free. You'll have high availability, backups, security, and maintenance all managed for you.
+## Support & Community
-### Requirements
+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:
-- PHP >= 8.0
-- MySQL/MariaDB or PostgreSQL
-- Node.js and NPM/Yarn/... to compile assets
-
-## Installation
-
-### Environment Setup
-
-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.
-
-### Docker Installation 🐳
-
-OpnForm can be easily set up using Docker. Pre-built images are available on Docker Hub, which is the recommended method for most users.
-
-#### Prerequisites
-
-- Docker
-- Docker Compose
-
-#### Quick Start
-
-1. Clone the repository:
-
- ```
- git clone https://github.com/JhumanJ/OpnForm.git
- cd OpnForm
- ```
-
-2. Set up environment files by running the provided setup script. For detailed instructions, refer to the [Environment Setup](#environment-setup) section above:
-
- ```bash
- ./scripts/setup-env.sh --docker
- ```
-
-3. Start the application:
-
- ```
- docker-compose up -d
- ```
-
-4. Access OpnForm at http://localhost
-
-> 🌐 **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`.
-
-#### Customization
-
-- **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.
-
-#### Upgrading
-
-1. Check the upgrade instructions for your target version in the documentation.
-2. Update your `docker-compose.yml` file if necessary.
-3. Apply changes:
- ```
- docker-compose up -d
- ```
-
-#### Initial Login
-
-After installation, use these credentials to access the admin panel:
-
-- Email: `admin@opnform.com`
-- Password: `password`
-
-⚠️ Change these credentials immediately after your first login.
-
-Note: Public registration is disabled in the self-hosted version. Use the admin account to invite additional users.
-
-#### Building from Source
-
-For development or customization, you can build the Docker images locally:
-
-1. Build the images:
-
- ```
- docker build -t opnform-ui:local -f docker/Dockerfile.client .
- docker build -t opnform-api:local -f docker/Dockerfile.api .
- ```
-
-2. Create a docker-compose override file:
-
- ```
- touch docker-compose.override.yml
- ```
-
- Edit the `docker-compose.override.yml` file to use your locally built images:
-
- ```yaml
- services:
- api:
- image: opnform-api:local
- ui:
- image: opnform-ui:local
- api-worker:
- image: opnform-api:local
- ```
-
-3. Start the application:
- ```
- docker-compose up -d
- ```
-
-This method allows you to make changes to the source code and rebuild the images as needed.
-
-#### 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:
-
-```bash
-docker-compose down -v --rmi all
-```
-
-### Using Laravel Valet
-
-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.
-First, let's work with the codebase and its dependencies.
-
-```bash
-# Get the code!
-git clone git@github.com:JhumanJ/OpnForm.git && cd OpnForm
-
-# Install PHP dependencies
-composer install
-
- # Install JS dependencies
-cd client && npm install
-
-# Compile assets (see the scripts section in package.json)
-npm run dev # or build
-```
-
-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).
-
-Run these artisan commands:
-
-```bash
-# Generate needed secrets 🙈
-php artisan key:generate
-php artisan jwt:secret # and select yes!
-
-# Creates DB schemas
-php artisan migrate
-```
-
-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)":
-
-```json
-[
- {
- "AllowedHeaders": ["*"],
- "AllowedMethods": ["PUT", "POST", "GET", "DELETE"],
- "AllowedOrigins": ["*"],
- "ExposeHeaders": []
- }
-]
-```
-
-🎉 Done! Enjoy your personal OpnForm instance at: [http://opnform.test](http://opnform.test).
-
-## One-Click Deployment
-
-[](https://repocloud.io/details/?app_id=294)
-
-## Tech Stack
-
-OpnForm is a standard web application built with:
-
-- [Laravel](https://laravel.com/) PHP framework
-- [NuxtJs](https://nuxt.com/) Front-end SSR framework
-- [Vue.js 3](https://vuejs.org/) Front-end framework
-- [TailwindCSS](https://tailwindcss.com/)
-
-## Contribute
-
-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).
+- [Product Helpdesk](https://help.opnform.com)
+- [Technical Documentation](https://docs.opnform.com)
## License
diff --git a/client/components/pages/OpenFormFooter.vue b/client/components/pages/OpenFormFooter.vue
index 431b423f..f9446d26 100644
--- a/client/components/pages/OpenFormFooter.vue
+++ b/client/components/pages/OpenFormFooter.vue
@@ -21,21 +21,6 @@