SymBot
SymBot is a user friendly, self-hosted and automated DCA (Dollar Cost Averaging) cryptocurrency bot solution
Install / Use
/learn @3cqs-coder/SymBotREADME

SymBot is a user friendly, self-hosted and automated DCA (Dollar Cost Averaging) cryptocurrency bot solution. Create and manage your bots entirely from your web browser or with simple built-in APIs. Best of all, your exchange credentials and keys always remain in your hands... not any other third-party.

Table of Contents
- Requirements
- Installation
- Installation Video
- Docker Installation
- SymBot Hub
- Upgrading
- Configuration
- Telegram Setup
- Advanced Setup
- Reverse Proxy Setup
- Artificial Intelligence (AI)
- API Information
- API Sample Usage
- WebSocket API
- Webhooks
- Backup and Restore Features
- Reset or Configure SymBot
- Frequently Asked Questions (FAQ)
- Disclaimer
- Help Support
Requirements
- Linux, MacOS, or Windows based system
- Node.js v20.19 or later must be installed on your system
- MongoDB installed or a cloud host provider
- Access to a cryptocurrency exchange such as Binance or Coinbase
- Reliable high-speed internet connection
- 1GB RAM minimum but recommended at least 4GB
- 1GB disk space minimum
NOTE: Trading requires your system and internet connection to be running 24/7. Any interruption could result in missed trades, signals, etc. See also Disclaimer.
Installation
If you prefer to run SymBot using Docker, feel free to skip this section and proceed to the Docker Installation section below.
Once you have met all the requirements, follow these simple steps to install SymBot:
- Open a command line terminal
- Change directory to where SymBot files are located
- Type:
npm install - Wait for all packages to download and install
- SymBot will start in configuration mode, allowing you to enter your database URL and other settings using the web interface.
- Default password is admin
- Modify the app and bot configuration files as necessary (see Configuration)
- Type:
npm start. You can also usenpm start consolelogto display all logging to the console for testing purposes. The same information is also logged to files in thelogsdirectory - Open a web browser and type: http://127.0.0.1:3000
<a id="pm2-id"></a>
Recommended additional steps (optional)
To have SymBot run in the background it is recommended to use the Node.js process manager called pm2. Here's how to use it:
- Install pm2 by typing:
npm install pm2 -g - Create a file called
ecosystem.config.jsin the same location where your SymBot files are located and place the below configuration into it:
module.exports = {
apps: [
{
name: 'symbot',
namespace: 'symbot',
script: '/home/symbot/symbot.js',
kill_timeout: 8000,
max_memory_restart: '4000M'
}
]
}
- Replace
/home/symbot/symbot.jswith the actual location where SymBot resides on your server and save the file - Tell pm2 to start SymBot with a one time only command by typing:
pm2 start ecosystem.config.js - Type:
pm2 saveto save the configuration - If you don't already have pm2 starting at system boot time, type this with root privileges:
pm2 startup. Then type:pm2 save
SymBot will now start automatically even when the system is rebooted. With the above configuration pm2 will monitor SymBot and if memory exceeds roughly four gigabytes, a kill signal will be sent to SymBot. pm2 will wait eight seconds before terminating the process to give SymBot some time to safely shut itself down. pm2 will then start SymBot again. You can change those settings to suit your own server requirements and needs.
Installation Video
Sometimes you want just a little more guidance on how to get everything installed, so here's a quick video that demonstrates how to get SymBot installed along with Node.js and MongoDB on Ubuntu.
Note: With SymBot's configuration mode, manually editing the configuration files before starting, as shown in the video, is no longer required.
<a href="https://youtu.be/p_gZtRrgNNQ" target="_blank"> <picture> <img src="https://github.com/3cqs-coder/SymBot/assets/111208586/b428f4d4-7f1b-4ce3-9c48-0bb29d2b4e7e" width="720" /> </picture> </a>Installation (Docker)
Docker can be a great way to get SymBot up and running fast with all the necessary dependencies such as MongoDB.
The Docker build files can be modified as necessary, but should only be done if you're familiar with how they work. Running SymBot under Docker is considered experimental and performing any upgrades could cause unexpected issues.
- Open a command line terminal
- Change directory to where SymBot files are located
- Make any additional changes to the app and bot configuration files as necessary (see Configuration)
- SymBot will automatically configure the database URL and set your password to admin
- Change directory to
dockerin the same location where SymBot files are located - Type:
docker-compose -p symbot up -d --build - Wait for Docker to build everything and all containers to start
- Open a web browser and type: http://127.0.0.1:3000
SymBot will initially start in configuration mode. After you confirm the default settings and update, it will shutdown and restart automatically.
Mongo Express is also installed which can be used to access MongoDB visually by opening a web browser to http://127.0.0.1:3010
<a id="symbot-hub-id"></a>
SymBot Hub
SymBot Hub makes it easy to manage multiple SymBot instances from a single codebase. Whether you're testing strategies on different exchanges, running real and paper (sandbox) trading, or managing other setups, you can control everything with just a click.
With SymBot Hub's simple web interface, you can easily add, update, restart, or disable any instance. It also combines all instances into one system using an internal proxy server, so you only need one port to access everything. Plus, SymBot Hub helps you monitor system resources like memory usage, making instance management straightforward and efficient.
Starting SymBot Hub
Before starting SymBot Hub, make sure your first SymBot configuration is set up and working as expected. The initial instance will be created automatically using your default configuration files.
To get started:
- Open a command line terminal.
- If any SymBot instances are running, stop them.
- Navigate to the directory where your SymBot files are located.
- You can change the default port in hub.json but it is recommended to make all instance additions or updates using the web interface.
- Run the command:
node symbot-hub.js - Open a web browser and go to: http://127.0.0.1:3100
Your SymBot instances are now all accessible through SymBot Hub. For example, if you have two SymBot instances running on ports 3000 and 3001, you can access them by visiting:
- http://127.0.0.1:3100/instance/3000
- http://127.0.0.1:3100/instance/3001
This setup also makes it easier to use a domain name to access your SymBot instances. By pointing your domain to SymBot Hub, you can access them at:
- http://your-domain.com/instance/3000
- http://your-domain.com/instance/3001
Once SymBot Hub is running, it is recommended to update your process manager to automatically start SymBot Hub instead of individual SymBot instances. This ensures that SymBot Hub takes over the management of all SymBot instances, while your process manager continues to handle the automatic startup of SymBot Hub itself.
If your process manager, such as pm2, has maximum memory restart parameters configured, you may need to increase the limit, as SymBot Hub will consume more resources as the number of instances grows.
Lastly, be aware that exchanges often impose connection limits, and if you’re using services like Telegram, 3CQS signals, or other providers requiring API keys, there may also be restrictions on the number of connections allowed per IP address or API key. To stay within these limits, you may need to disable certain services on specific instances.
Upgrading
SymBot offers a convenient, one-click upgrade feature within its web interface. This feature automatically checks for new updates, downloads necessary files, installs them, and updates any required packages. Although the automated upgrade process eliminates the need to follow the manual steps below, it's recommended to review them to ensure that any process manager in use restarts SymBot correctly and that all trading activities resume smoothly.
When upgrading to a new version of SymBot it is recommended to follow the basic steps below.
- Stop all running SymBot instances
- If using pm2 suggested in the installation above, you can type:
pm2 stop ecosystem.config.jsin a command line terminal
- If using pm2 suggested in the installation above, you can type:
- Make a backup of the directory to where all current SymBot files are located
- Extract new SymBot files to existing directory. If prompted, be sure to allow new files to replace the original or you may be running portions of a previous version
- Copy existing configuration files from backup created previously
- Compare parameters in the new SymBot configuration files such as app.json
