Erxes

Erxes
- Version: 1.0
- OS: Ubuntu 18.04
- Category: Business Apps
Description
Erxes is an open-source experience operating system (XOS) and the open-source alternative to HubSpot. It enables businesses, SaaS providers, and digital agencies to build unified customer experiences across all touchpoints from live chat and email to sales pipelines and CRM. Erxes is built around two main components: the core XOS platform and a plugin system that lets you pick only the capabilities your business needs.
Available plugins include Team Inbox, Messenger, Sales Management, Lead Generation, Engage (email/SMS campaigns), Contact Management, Knowledgebase, and Task Management. Additional plugins are available from the erxes marketplace at https://erxes.io/marketplace.

Software Included
| Package | Version | License |
|---|---|---|
| MongoDB | 4.0.3 | SSPL |
| Elasticsearch | 7.x | Elastic License |
| Nginx | 1.14.0 | 2-Clause BSD |
| Node.js | 12.16.3 | MIT |
Key Features
- Team Inbox — unified inbox combining live chat, in-app messaging, email, and forms
- Messenger — embeddable customer messenger with knowledge-base integration
- Sales Management — visual sales pipeline with drag-and-drop stage management
- Lead Generation — customizable landing pages, forms, pop-ups, and embed placements
- Engage — email, SMS, and messenger campaigns for customer lifecycle automation
- Contact Management — full CRM for coordinating customer interactions
- Knowledgebase — self-service help center for customers and staff
- Task Management — collaborative task boards with cross-team linking
Before You Begin
You will need:
- A domain or subdomain with a DNS A record pointing to your VPS IP address.
- SSH access to your VPS.
Getting Started
1. Connect to Your VPS
bashssh root@your-vps-ip
2. Switch to the erxes User
Change the password for the erxes system user, then switch to it:
bashpasswd erxes su erxes
All remaining configuration steps are performed as the erxes user.
3. Configure Nginx
Open the Nginx default site configuration and replace every occurrence of YOUR_DOMAIN_COM with your actual domain name:
bashnano /etc/nginx/sites-available/default
Save with Ctrl+X, then Y. Test the configuration for syntax errors:
bashnginx -t
Expected output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload Nginx to apply the changes:
bashsystemctl reload nginx
4. Enable SSL with Let's Encrypt
Run Certbot to obtain and configure an SSL certificate for your domain:
bashcertbot --nginx
When prompted:
- Enter your email address
- Accept the Terms of Service
- Select your domain (usually option
1) - Choose option
2to redirect all HTTP traffic to HTTPS
5. Configure PM2 (ecosystem.config.js)
Replace YOUR_DOMAIN_COM with your actual domain name in the PM2 ecosystem file. For example, if your domain is erxes.example.com:
bashcd ~/erxes.io sed -i 's/YOUR_DOMAIN_COM/erxes.example.com/g' ecosystem.config.js
6. Configure Frontend Environment Variables
Open the frontend environment file:
bashnano ~/erxes.io/erxes/js/env.js
Replace the placeholder values inside window.env = { } with your actual domain:
javascriptwindow.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 with Ctrl+X, then Y.
7. Export the MongoDB URL
Open ecosystem.config.js to retrieve the MongoDB connection string:
bashcd ~/erxes.io nano ecosystem.config.js
Locate the MONGO_URL value under erxes-api. It will look similar to:
mongodb://erxes:GENERATED_PASSWORD@localhost/erxes?authSource=admin&replicaSet=rs0
Copy the full URL, exit the editor, then export it as an environment variable:
bashexport MONGO_URL="your-copied-mongo-url-here"
8. Initialize Erxes and Generate the Admin Password
Load the Node.js version manager and run the initialization command:
bashsource ~/.nvm/nvm.sh nvm use default cd ~/erxes.io/erxes-api/dist node commands/initProject
The output will display a generated administrator password. Note it down:
Your new password: HcEjfBMxws
9. Load Permissions and Start Services
bashcd ~/erxes.io/erxes-api/dist node commands/loadPermissionData cd ~/erxes.io pm2 restart ecosystem.config.js
10. Log In
Open a browser and navigate to your domain. Log in with:
- Username:
[email protected] - Password: the password generated in step 8
Important Paths
| Item | Path |
|---|---|
| PM2 ecosystem config | ~/erxes.io/ecosystem.config.js |
| Frontend env | ~/erxes.io/erxes/js/env.js |
| Nginx site config | /etc/nginx/sites-available/default |
Useful Commands
bash# Check running processes pm2 list # View erxes logs pm2 logs # Restart all services pm2 restart ecosystem.config.js # Reload Nginx systemctl reload nginx
Support Details
- Supported By: Nmtec
- Hours: Community Edition — 5 days/week, initial response within 48 hours. Paid 24/7 support available on request.
- Support URL: https://discord.gg/zx8u2m4f5W
- Support Email: [email protected]
Resources
- Documentation: https://docs.erxes.io/docs/intro
- Resource Center: https://erxes.io/resource-center
- Website: https://erxes.io
- Plugin Marketplace: https://erxes.io/marketplace