Erxes

Hello 👋

Welcome to erxes, the open-source Hubspot alternative.

erxes is an open-source experience operating system (XOS) that enables SaaS providers and digital marketing agencies/developers to create unique experiences that work for all types of businesses. We will change how businesses grow by delivering breakthrough value to our community. Come along on this journey with us!

hubspot-alternative

erxes is composed of 2 main components: XOS & Plugins

XOS: It contains the project’s core. You can find the admin panel and the code that runs different plugins. The operating system comes with utility features that allow users to customize, improve speed, and enhance the experience along with plugins/features.

Plugins: erxes comes with a set of plugins that allow you to create unique customer experiences. Below is a list of some plugins you can choose from our marketplace after you’ve finished installing erxes XOS:

  • Team Inbox: Combine real-time client and team communication with in-app messaging, live chat, email, and form, so your customers can reach you, however, and whenever they want.
  • Messenger: Enable businesses to capture every single customer feedback and educate customers through knowledge-base right from the erxes Messenger.
  • Sales Management: Easy and clear sales funnels allow you to control your sales pipeline from one responsive field by precisely analyzing your progress and determining your next best move for success.
  • Lead generation: Turn regular visitors into qualified leads by capturing them with a customizable landing page, forms, pop-up, or embed placements.
  • Engage: Start converting your prospects into potential customers through email, SMS, messenger, or more interactions to drive them to a successful close.
  • Contact Management: Access our all-in-one CRM system in one go, so it’s easier to coordinate and manage your customer interactions.
  • Knowledgebase: Educate your customers and staff by creating a help center related to your brands, products, and services to reach a higher level of satisfaction.
  • Task Management: Create a more collaborative, self-reliant and cross-linked team.

See more on our website

Software Included

Package Version License
Mongodb 4.0.3
Elasticsearch 7.x
Nginx 1.14.0
NodeJS 12.16.3

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the Erxes 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Erxes Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "nmtec-erxes-18-04"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying Erxes

Connect to your droplet

Connect to your droplet via ssh.

ssh root@YOUR_DROPLET_PUBLIC_IP
  • YOUR_DROPLET_PUBLIC_IP is your droplet public IP address

Configure NGINX

  • You need to replace the YOUR_DOMAIN_COM with your actual domain name in the nginx config file /etc/nginx/sites-available/default.
nano /etc/nginx/sites-available/default
  • After replacing YOUR_DOMAIN_COM with your actual domain name. Save with ctrl + x and then y to accept the changes.
  • Test the NGINX configuration to make sure you don’t have any errors
nginx -t

You should see the following output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • Reload nginx service
systemctl reload nginx

Install Let’s Encrypt using Certbot

Execute Certbot. You will asked several questions, you can answer as follows:

  • Enter your email address
  • Agree with the Terms of Service
  • Answer Yes or No, if you want to share your email address with the Electronic Frontier Foundation
  • Select the corresponding number associated with your domain name, usually 1
  • Choose 2 to redirect all your traffic to a secure HTTPS
certbot --nginx

Configure erxes

  • Run the following to change the password for erxes and switch to user erxes.
passwd erxes
su erxes
  • The rest of the steps are run as erxes user.

Configure PM2 ecosystem.config.js

  • Run the following command to replace YOUR_DOMAIN_COM with your actual domain name. Please use your domain for your.domain.com.
cd ~/erxes.io
sed -i 's/YOUR_DOMAIN_COM/your.domain.com/g' ecosystem.config.js

Configure frontend environment variables

  • Open the ~/erxes.io/erxes/js/env.js file in the nano editor.
nano ~/erxes.io/erxes/js/env.js
  • Copy the following environment variables in between the { }, and replace YOUR_DOMAIN_COM with your actual domain name.
NODE_ENV: "production",
REACT_APP_API_URL: "https://YOUR_DOMAIN_COM/api",
REACT_APP_API_SUBSCRIPTION_URL: "wss://YOUR_DOMAIN_COM/api/subscriptions",
REACT_APP_CDN_HOST: "https://YOUR_DOMAIN_COM/widgets"

It should look like this, but with your actual domain name:

window.env = {
    NODE_ENV: "production",
    REACT_APP_API_URL: "https://erxes.example.com/api",
    REACT_APP_API_SUBSCRIPTION_URL: "wss://erxes.example.com/api/subscriptions",
    REACT_APP_CDN_HOST: "https://erxes.example.com/widgets"
}
  • save the file with ctrl + x and then y to accept all changes.

You are now ready to initialize and load the permissions in erxes.

export MongoDB URL

cd ~/erxes.io
nano ecosystem.config.js

Locate the “MONGO_URL”: “mongodb://erxes:82e3e42ef31e51d51687b366118200e2@localhost/erxes?authSource=admin&replicaSet=rs0”, under the erxes-api.

  • Copy the MONGO_URL and exit the nano editor with ctrl + x.
  • Now you will need to export and set the variable MONGO_URL, with the copied URL. See below:

Example:

# example
# export MONGO_URL="mongodb://erxes:92c54fa1f0658xxxxc2d9ce618b008b4@localhost/erxes?authSource=admin&replicaSet=rs0"

Use your copied MONGO_URL below:

export MONGO_URL="YOUR_COPIED_MONGO_URL_HERE"

Initialize and Load permissions for erxes

  • initialize Erxes and generate login password.
source ~/.nvm/nvm.sh
nvm use default
cd ~/erxes.io/erxes-api/dist
node commands/initProject

You should have a generated password. The output will be similar to this:

Your new password: HcEjfBMxws

# note this down
  • Run this final command to finish the installation of erxes.
cd ~/erxes.io/erxes-api/dist
node commands/loadPermissionData

cd ~/erxes.io
pm2 restart ecosystem.config.js

Congratulations, time to log in

You may now visit your domain, and log in.

The username is admin@erxes.io, and the password is the password generated above.