* chore: Change "Allow Horizontal Scroll" to "Allow Scroll" * chore: Hide option to choose scroll for pie chart * fix: Fix prettier errors * feat: Add migration to allowScroll for `CHART_WIDGET`s Closes #4227 * fix: Fix chart widget prop recursively Per https://github.com/appsmithorg/appsmith/pull/8085#discussion_r733442011 Closes #4227 |
||
|---|---|---|
| .. | ||
| appsmith_playbook | ||
| README.MD | ||
Introduction
This document will explain, to those unfamiliar with Ansible, how they can get an Ansible environment set-up quickly, with the end goal of deploying Appsmith. It is a quick, dirty HowTo format, not intended to teach you Ansible's full capabilities. Ansible is an incredible tool, with great documentation, a welcoming community, and it's all very easy to pick up - not to mention extremely powerful and suited for just about any situation.
Operational Overview
Ansible works on a "push to clients" basis. You have your control node, which pushes all the configuration/ad-hoc tasks out to your systems via SSH, with no client running on the systems you're deploying to! This model means it's very fast, efficient, secure, scalable, and extremely portable. So, to control remote systems, you only need to install Ansible on your control node - your own desktop would make a great control node to deploy from
Getting Ansible
It's recommended that you check out Ansible's official documentation on installing (it's really easy!), but here's a quick rundown of installation methods:
Package manager
If you're running a UNIX-like system, like Linux or BSD, Ansible is likely available in your official package repositories. Use your package manager to see if it's available, and if so, install it! Ansible's installation documentation has a section on this - just scroll down until you see your OS.
Via Pip
Ansible is written in Python, so, it's only natural that it be available for install via pip. If you have pip installed, it's as easy as:
$ sudo pip install ansible
If not, check to see if you can install pip via your system's package manager (you want the Python 2.7 version!). Or, if you're on Mac OS X, and you're not using Homebrew or pkgsrc, you should be able to install pip using easy_install, like so:
$ sudo easy_install pip
then
$ sudo pip install ansible
Simple Deployment Environment for Appsmith
So, now you've got Ansible installed, you can get ready to deploy Appsmith!
Prerequisites
- You must have SSH access to the system you want to deploy to as the root user.
Inventory set-up
First you will need to clone the appsmith repository to your machine & move to the ansible playbook folder
$ git clone https://github.com/appsmithorg/appsmith.git
$ cd ./appsmith/ansible/appsmith_playbook
Make the inventory file inventory, for simplicity's sake:
$ touch inventory
Now, with your editor, open the file and add the hostname or FQDN of the server(s) you want to deploy Appsmith to with the following pattern:
appsmith ansible_host={{ SERVER_HOST }} ansible_port={{ SERVER_PORT }} ansible_user={{ SERVER_USER }}
If you are using SSH keypairs for authenticating your SSH connections to your server. You can tell Ansible your ssh private key file in the inventory file
using ansible_ssh_private_key_file
appsmith ansible_host={{ SERVER_HOST }} ansible_port={{ SERVER_PORT }} ansible_user={{ SERVER_USER }} ansible_ssh_private_key_file={{ SSH_PRIVATE_KEY_FILE }}
After you completed the above step then we're pretty much done with the inventory
Setup your configuration vars for Appsmith
The next step is to setup necessary configuration for your app to run such as environment variable, domain name, etc.
First you need to open appsmith-vars.yml file with your editor.
There are some variables that will need input from you to get the application start correctly
install_dir: The absolute path of your app's installation folder on the server (required)mongo_host: Your mongo hostname. By default it will bemongo(required)mongo_root_user: Your mongo root user (required)mongo_root_password: Your mongo root password (required)mongo_database: Your mongo database name. By default, it will beappsmith(required)user_encryption_password: Encryption password to encrypt all credentials in the database (required)user_encryption_salt: Encryption salt used to encrypt all credentials in the database (required)custom_domain: Your custom domain for your app. Make sure that you have custom domain record map to your app's server (optional)
Once you complete setup config vars for your app then we are ready to deploy our app on your server.
Setup SSL (Optional)
This section will help you setup SSL for your custom domain of your app
Prerequisites
- You need to have a custom domain record map to your app's server
Before running your playbook, open appsmith-vars.yml with your editor & edit the variables below:
ssl_enable: Set this variable totrueletsencrypt_email: Provide your email if you want to receive expiry notices when your certificate is coming up for renewalis_ssl_staging: Set this variable totrueif you want to use certificate provided by let's encrypt staging environment
Run the Ansible playbook
After complete the above step. Now the only remain step we need to do is run the ansible playbook. You can run the ansible playbook with the following command
$ ansible-playbook -i inventory main.yml --extra-var "@appsmith-vars.yml"
The command above will use the host information from the inventory file & feed your configuration vars from appsmith-vars.yml before running the playbook
When it's all done, provided all went well and no parameters were changed, you should be able to visit your app on browser using your custom_domain or by your SERVER_HOST (if you didn't provide value for custom_domain variable )
Note: You can put your inventory file in other folder and then specify its path with the -i flag, for detail, check Ansible Inventory documentation