From 4cd8b3c62eb485c288516b0350c0511b48c0cef2 Mon Sep 17 00:00:00 2001
From: Julien Nahum
Date: Mon, 2 Sep 2024 15:33:17 +0200
Subject: [PATCH] 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 e31f67470..d1e4937c9 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).
-
-
-
-
-
-
-
-## Getting started with OpnForm
-
-The easiest way to get started with OpnForm is with the [official managed service in the Cloud](https://opnform.com/).
-
-It takes 1 minute to try out the builder for free. You'll have high availability, backups, security, and maintenance all managed for you.
-
-### Requirements
-
-- 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)
+## Quick Start
-## Tech Stack
+The easiest way to get started with OpnForm is through our [official managed service in the Cloud](https://opnform.com/).
-OpnForm is a standard web application built with:
+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).
-- [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/)
+## Support & Community
-## Contribute
+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:
-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 431b423f2..f9446d260 100644
--- a/client/components/pages/OpenFormFooter.vue
+++ b/client/components/pages/OpenFormFooter.vue
@@ -21,21 +21,6 @@
-
-
- Privacy Policy
-
-
-
- Terms & Conditions
-
-
Discord
+
+ Technical Docs
+
+
+
+ Privacy Policy
+
+
+
+ Terms & Conditions
+
+
diff --git a/client/opnform.config.js b/client/opnform.config.js
index e749d6a43..eb92fb6ea 100644
--- a/client/opnform.config.js
+++ b/client/opnform.config.js
@@ -16,5 +16,6 @@ export default {
feature_requests: "https://feedback.opnform.com/",
changelog_url: "https://feedback.opnform.com/changelog",
roadmap: "https://feedback.opnform.com/roadmap",
+ tech_docs: "https://docs.opnform.com",
},
}
diff --git a/client/public/img/social-preview.jpg b/client/public/img/social-preview.jpg
index 53b5b04d79c9ec256320fe301f4e1a867de6fcf7..efd3edde2307e59a551f3508ad13ff76512564b3 100644
GIT binary patch
literal 307366
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