These deployment scripts are meant as examples of how to deploy the Formio servers into your environment. They should be carefully reviewed and modified accordingly to ensure they meet any specific deployment and/or security requirements
This repo contains all of the deployment strategies for the Form.io Enterprise Platform. These deployments contain the following strategies.
- Docker Compose
- Terraform (coming soon)
- Kubernetes
To run this tool, you'll need NodeJS v16 or higher.
To install this library, you can type the following in your terminal.
npm install -g @formio/deploy
You'll need NodeJS >= 18.
You can now use this CLI to create deployment packages.
formio-deploy package --license=YOURLICENSE
This will then create a series of deployments within a "deployments" folder that you can use to deploy Form.io Enterprise within your environment.
The following commands are supported.
Create new deployment packages provided certain arguments.
โ ~ formio-deploy package --help
Usage: formio-deploy package|p [options] [path]
Create a new deployment package.
Options:
--license [LICENSE_KEY] Your deployment license.
--server [server] The Form.io Enterprise Server Docker repo
--version [version] The Form.io Enterprise Server version.
--pdf-version [version] The Form.io PDF Server version.
--sub-version [version] The Form.io Submission Server version.
--db-secret [secret] The Database Secret.
--jwt-secret [secret] The JWT Token Secret
--admin-email [email] The default root admin email address
--admin-pass [password] The default root admin password
--ssl-cert [cert] File path to the SSL Certificate for the deployment to enable SSL.
--ssl-key [key] File path to the SSL Certificate Key for the deployment to enable SSL.
-h, --help display help for command
The following will create a new multi-container deployment package for AWS, with version 7.3.0 Server Version and 3.3.1 PDF Server Version.
formio-deploy package compose/aws/multicontainer.zip --license=YOURLICENSE --version=7.3.0 --pdf-version=3.3.1
Once this is done, it will generate a new ZIP file within the deployments folder for compose/aws/multicontainer.zip
as well as place the deployment in the deployments/current
folder. You can now use the ZIP file to deploy to AWS Elastic Beanstalk.
You can also use this command to create a local deployment on your local machine by first typing the following.
formio-deploy package compose/multicontainer.zip --license=YOURLICENSE --version=7.3.0 --pdf-version=3.3.1
and then type the following to run.
docker-compose -f ~/deployments/current/docker-compose.yml up
PROVIDER = aws | azure
API_NAMESPACE = formio-dev | formio-staging | formio-prod
PDF_NAMESPACE = formio-pdf
LICENSE_KEY = your_formio_license_key
PROVIDER=azure
API_NAMESPACE=formio-dev
PDF_NAMESPACE=formio-pdf
LICENSE_KEY=your_license_key_here
echo ""
echo "Provider: $PROVIDER"
echo "Namespace API: $API_NAMESPACE"
echo "Namespace PDF: $PDF_NAMESPACE"
echo "License Key: $LICENSE_KEY"
echo ""
# Create helm deployment zip
formio-deploy package helm/$PROVIDER/api-server.zip \
--license=$LICENSE_KEY \
--version=8.4.1 \
--admin-email='[email protected]' \
--admin-pass='CHANGEME' \
--db-secret='CHANGEME' \
--jwt-secret='CHANGEME' \
--pdf-server-url="http://pdf-server.$PDF_NAMESPACE.svc.cluster.local:4005" \
--base-url="$API_NAMESPACE.localdev.me" # dev.<your-domain>.com | authoring.<your-domain>.com
# Unzip helm deployment
cd ~/deployments/helm/$PROVIDER
unzip -d . api-server.zip && mv helm api-server
# Change to directory
cd api-server
# View current .env (This should be edited before continuing)
cat .env
# Deploy
bash scripts/upgrade.sh --namespace $API_NAMESPACE --path ./deployment
PROVIDER=azure
API_NAMESPACE=formio-staging
PDF_NAMESPACE=formio-pdf
LICENSE_KEY=your_license_key_here
echo ""
echo "Provider: $PROVIDER"
echo "Namespace API: $API_NAMESPACE"
echo "Namespace PDF: $PDF_NAMESPACE"
echo "License Key: $LICENSE_KEY"
# Create helm deployment zip
formio-deploy package helm/$PROVIDER/remote-server.zip \
--no-portal \
--license=$LICENSE_KEY \
--version=8.4.1 \
--admin-email='[email protected]' \
--admin-pass='CHANGEME' \
--db-secret='CHANGEME' \
--jwt-secret='CHANGEME' \
--portal-secret='CHANGEME' \
--pdf-server-url="http://pdf-server.$PDF_NAMESPACE.svc.cluster.local:4005" \
--base-url="$API_NAMESPACE.localdev.me" # staging.<your-domain>.com | uat.<your-domain>.com | live.<your-domain>.com
# Unzip helm deployment
cd ~/deployments/helm/$PROVIDER
unzip -d . remote-server.zip && mv helm remote-server
# Change to directory
cd remote-server
# View current .env (This should be edited before continuing)
cat .env
# Deploy
bash scripts/upgrade.sh --namespace $API_NAMESPACE --path ./deployment
PROVIDER=azure
PDF_NAMESPACE=formio-pdf
LICENSE_KEY=your_license_key_here
echo ""
echo "Provider: $PROVIDER"
echo "Namespace PDF: $PDF_NAMESPACE"
echo "License Key: $LICENSE_KEY"
# Create helm deployment zip
formio-deploy package helm/$PROVIDER/pdf-server.zip \
--license=$LICENSE_KEY \
--pdf-version=5.4.2
# Unzip helm deployment
cd ~/deployments/helm/$PROVIDER
unzip -d . pdf-server.zip && mv helm pdf-server
# Change to directory
cd pdf-server
# View current .env (This should be edited before continuing)
cat .env
# Deploy
bash scripts/upgrade.sh --namespace $PDF_NAMESPACE --path ./deployment
PROVIDER=azure
API_NAMESPACE=formio-prod
LICENSE_KEY=your_license_key_here
echo ""
echo "Provider: $PROVIDER"
echo "Namespace API: $API_NAMESPACE"
echo "License Key: $LICENSE_KEY"
# Create helm deployment zip
formio-deploy package helm/$PROVIDER/multicontainer.zip \
--license=$LICENSE_KEY \
--version=8.4.1 \
--pdf-version=5.4.2 \
--pdf-server-url="http://pdf-server:4005" \
--admin-email='[email protected]' \
--admin-pass='CHANGEME' \
--db-secret='CHANGEME' \
--jwt-secret='CHANGEME' \
--base-url="$API_NAMESPACE.localdev.me"
# Unzip helm deployment
cd ~/deployments/helm/$PROVIDER
unzip -d . multicontainer.zip && mv helm multicontainer
# Change to directory
cd multicontainer
# View current .env (This should be edited before continuing)
cat .env
# Deploy
bash scripts/upgrade.sh --namespace $API_NAMESPACE --path ./deployment
deploy's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.