Already have Elasticsearch hosted with AWS, Elastic Cloud or planning to hosting it yourself?
You can now access all of Appbase.io features such as search preview, actionable analytics and granular security with an Elasticsearch cluster hosted anywhere with the
Bring Your Own Cluster deployment mode.
🆕 We're making Appbase.io available as a cloud-native software under the codename Arc.
This diagram highlights how Arc works. It directly interacts with an underlying Elasticsearch cluster and acts as an API gateway for clients to interact with. Arc supercharges your Elasticsearch cluster with a streamlined development experience, out of the box search analytics and fine-grained security features.
You can install Arc on any server environment. We have created quickstart recipes to make the installation process seamless for the following platforms:
Appbase.io dashboard offers the most seamless experience for running your Arc with your own Elasticsearch cluster.
Step 1 - Go to the Create Cluster Link. You will be redirected to sign up or login if you aren't already logged in.
You should see the above screen.
Step 2 - Select the pricing plan. Read more about pricing plans over here.
Step 3 - Select the region to add Arc to. It is recommended that you pick a region closest to where your Elasticsearch cluster is running.
Step 4 - Enter a name for your Arc instance. And enter the Elasticsearch URL. Use the
Verify Connection button to ensure that this URL is accessible.
Note: We recommend either having an open Elasticsearch access policy or one based on Basic Authentication till the Arc instance is deployed.
Step 5 - Hit Create Cluster button and hang tight till your cluster is deployed.
That's all! It take around 5-10 mins for your Arc instance to be deployed. Once the deployment is complete, you will be able to see it in your Clusters List with a
Bring your own cluster tag.
Note: If you have IP based restriction for your cluster, now you can whitelist the Arc Cluster IP and restrict direct access to your cluster. Read More
Now that the Arc Cluster is deployed, we can access the Arc Dashboard using the Explore Cluster Action on the Clusters Details page.
This will give you access to all the Appbase.io features such as:
- Better dev tools: The Dejavu data browser, search preview, query rules
- Actionable Search and Click Analytics
- Fine-grained Security Permissions.
You can access the Elasticsearch REST APIs via the Arc Instance URL. You can either use the master credentials or create additional API keys with fine-grained access permissions.
You can update your Elasticsearch cluster URL at any point using the Appbase.io dashboard. All you need to do is just enter new URL and hit
Update Cluster Settings.
Note: Make sure your new Elasticsearch cluster URL has open access till the deployment is completed.
With Appbase.io Dashboard, you can easily share the cluster with your team members. Each user can have a Viewer or an Admin role.
Now you can deploy Arc using Amazon Machine Image (AMI) on the AWS Marketplace. With the AMI, you can install Arc with one click on an AWS EC2 instance.
Here are the steps that you can follow to install Arc using AMI
Step 1 - Create an Arc instance.
Step 2 - Select Arc AMI from AWS Marketplace
Step 3 - Select an EC2 Instance for Deploying Arc. We recommend using the t2 medium instance size.
That's all you need to follow in order to deploy an Arc cluster 🚀. Once the EC2 machine is created and running successfully, you can get Public DNS / IP address from the EC2 dashboard. This URL becomes your end point for accessing the Arc services. You can also point your domain to this DNS or IP.
Note: We highly recommend using the cluster with TLS security enabled, as Arc is intended to be used as a frontend for Elasticsearch.
For setting up TLS, you may also want to point EC2 public DNS to your domain. For more information on how to register/point domain to EC2 instance you can check docs.
Now, let's add TLS certificate to EC2 public DNS / custom domain
Step 1- Get TLS certificate with
Step 2- Access your EC2 instance using
ssh. From EC2 dashboard you can select instance and click on Connect to get
ssh login details about your machine.
Step 3- Copy
.pem file content to
# Open the file sudo vim /etc/nginx/server.crt # Paste the code cmd/ctrl + v # Save the file :wq
Step 4- Copy
.key file content to
/etc/nginx/server.key using similar approach mentioned above.
Step 5- Open
sudo vim /etc/nginx/nginx.conf.
Step 6- Configuration for TLS is already present in
nginx.conf in commented form. You can uncomment it.
- Uncomment lines
- Comment out or remove the server listening for PORT 80.
Step 7- Restart nginx service using following command
sudo systemctl restart nginx
Once your EC2 machine is up and running, you can open the EC2 public DNS. You might come across following page initially.
You can start configuring Arc by clicking on configure page link OR opening
http://public-dns/configure URI directly.
Step 1: Setup Arc credentials. This are the master credentials that will be used for accessing the Arc Service from Arc Dashboard. Your initial user name is
ec2-user and your initial password is your EC2 instance id.
Step 2: Once you login, you can reset your username and password. Enter the your Elasticsearch URL, ARC_ID obtained while setting Arc instance and save the details.
Hold tight for 5-10s till the Arc service restarts with your new configurations.
Once EC2 machine is up and running, your EC2 public DNS becomes the Arc URL. This can be used with the configured
PASSWORD to test the Arc connection.
curl -u="USERNAME:PASSWORD" http://EC2-PUBLIC-[IP/DNS]
Now that all our configurations are complete, in order to access all the Arc Services, let us sign in to the Arc dashboard.
- Step 1 - Sign in into Arc dashboard using your EC2 Public IP / Domain with Username and Password configured above.
🔥 Hurray! You can now start accessing all the Appbase.io services using Arc Dashboard.
Run appbase.io via a single docker compose file. This setup enables you to run appbase.io and Elasticsearch together with single command, i.e.
docker-compose up -d 😎.
Note: If you're looking to run appbase.io with Kubernetes instead, check out our blog post on the same over here.
The dockerized setup is composed of the following services:
Allows you to access all appbase.io features like search preview, actionable analytics and granular security with any Elasticsearch cluster hosted anywhere.
Note: Make sure your arc container have complete access to Elasticsearch. You can use Elasticsearch URL with Basic Auth in configuring dashboard or IP restricted Elasticsearch URL where IP of your ARC cluster hosted using docker setup is white listed.
This service comes with simple user interface which allows you to set credentials and other environment variables. Also it watches for environment variable file changes, so that if any variable in file is changed it can restart arc service.
This service helps in setting up reverse proxy for Arc Service and serving Configuration service. It also helps in serving data using with TLS certificate, which is recommended for production.
An open-source single-node Elasticsearch cluster is run. This is optional: You can use the docker compose file here to run without Elasticsearch.
The steps described here assumes a that you have docker installed.
Step 1: Get Arc ID following the steps mentioned here
Step 2: Clone the repository
git clone https://github.com/appbaseio/arc-dockerized.git && cd arc-dockerized
Step 3: Build and run docker containers
We highly recommend using Arc with SSL so that we can easily bind this with the Arc Dashboard. To simplify the process of docker build, test and deployment, we have created 2 versions:
1 - Install Arc + Nginx with SSL setup (Recommended for production)
- Change SSL certificate and keys with production files. Please obtain SSL certificate and key for your domain using Let's Encrypt or any other provider. Update the files in nginx/certs.
- In case you are using different name than mentioned in nginx/certs folder, please update them in the
docker-compose.yamlfile as well.
Also, make sure you update the file names in the nginx/default.conf file.
docker-compose up -d
2 - Install Arc + Elasticsearch (If you want to deploy Arc Along with Elasticsearch.)
docker-compose -f docker-compose-with-elasticsearch.yaml up -d
🔥 Thats all, our containers should be up and running. Next, let us configure the environment variables required by Arc service.
Note: If you are running this setup on an virtual machine, make sure ports
443are set in your inbound rules for the cluster.
Step 5: Set username and password credentials.
Step 6: Configure Elasticsearch URL and ARC ID obtained above.
Note: Once you save the configuration, it may take 5-10s to restart the arc service.
Step 7: Start using Arc Services using Arc Dashboard. Here you will have to input Arc Cluster URL which will be of the form http(s)://localhostORclusterurl. Enter the username and password values that you configured in _Step 5.
Creating an Arc instance will enable you to access Arc Dashboard. While following instance creation process, you will get an
ARC_ID. This will be helpful while configuring Arc, with any of the deployment options listed below.
Follow the steps listed below to successfully create an Arc instance.
Step 1 - Go to Arc Dashboard.
Step 2 - Enter your email address
Step 3 - You will receive an OTP on entered email address. Enter OTP to verify the email address
Step 4 - You will receive an email with
ARC_ID which can be used with Arc configuration.