.. _Docker: https://docs.docker.com/get-started/get-docker/ .. _Redis: https://redis.io/ .. _MySQL: https://dev.mysql.com/ .. _PostgreSQL: https://www.postgresql.org/ .. _MongoDB: https://www.mongodb.com/ .. _installation: Installation ============ .. contents:: :local: :depth: 2 CGRateS can be installed either via packages or through an automated Go source installation. We recommend the latter for advanced users familiar with Go programming, and package installations for those not wanting to engage in the code building process. After completing the installation, you need to perform the :ref:`post-install configuration ` steps to set up CGRateS properly and prepare it to run. After these steps, CGRateS will be configured in **/etc/cgrates/cgrates.json** and the service can be managed using the **systemctl** command. Package Installation -------------------- Package installation method varies according to the Linux distribution: Debian or Debian-based Distributions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can add the CGRateS repository to your system's sources list, depending of the Debian version you are running, as follows: .. tabs:: .. group-tab:: Bookworm .. code-block:: bash # Install dependencies sudo apt-get install wget gnupg -y # Download and move the GPG Key to the trusted area wget https://apt.cgrates.org/apt.cgrates.org.gpg.key -O apt.cgrates.org.asc sudo mv apt.cgrates.org.asc /etc/apt/trusted.gpg.d/ # Add the repository to the apt sources list echo "deb http://apt.cgrates.org/debian/ 1.0-bookworm main" | sudo tee /etc/apt/sources.list.d/cgrates.list # Update the system repository and install CGRateS sudo apt-get update -y sudo apt-get install cgrates -y Alternatively, you can manually install a specific .deb package as follows: .. code-block:: bash wget http://pkg.cgrates.org/deb/1.0/bookworm/cgrates_current_amd64.deb sudo dpkg -i ./cgrates_current_amd64.deb .. group-tab:: Bullseye .. code-block:: bash # Install dependencies sudo apt-get install wget gnupg -y # Download and move the GPG Key to the trusted area wget https://apt.cgrates.org/apt.cgrates.org.gpg.key -O apt.cgrates.org.asc sudo mv apt.cgrates.org.asc /etc/apt/trusted.gpg.d/ # Add the repository to the apt sources list echo "deb http://apt.cgrates.org/debian/ 1.0-bullseye main" | sudo tee /etc/apt/sources.list.d/cgrates.list # Update the system repository and install CGRateS sudo apt-get update -y sudo apt-get install cgrates -y Alternatively, you can manually install a specific .deb package as follows: .. code-block:: bash wget http://pkg.cgrates.org/deb/1.0/bullseye/cgrates_current_amd64.deb sudo dpkg -i ./cgrates_current_amd64.deb .. note:: A complete archive of CGRateS packages is available at http://pkg.cgrates.org/deb/. Installing from Source ---------------------- Prerequisites: ^^^^^^^^^^^^^^ - **Git** .. code-block:: bash sudo apt-get install -y git # sudo dnf install -y git for .rpm distros - **Go** (refer to the official Go installation docs: https://go.dev/doc/install) To install the latest Go version at the time of writing this documentation, run: .. code-block:: bash sudo apt-get install -y wget tar # sudo dnf install -y wget tar for .rpm distros sudo rm -rf /usr/local/go cd /tmp wget https://go.dev/dl/go1.24.2.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.24.2.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin Installation: ^^^^^^^^^^^^^ .. code-block:: bash mkdir -p $HOME/go/src/github.com/cgrates/cgrates git clone --branch=1.0 https://github.com/cgrates/cgrates.git $HOME/go/src/github.com/cgrates/cgrates cd $HOME/go/src/github.com/cgrates/cgrates # Compile the binaries and move them to $GOPATH/bin ./build.sh # Create a symbolic link to the data folder sudo ln -s $HOME/go/src/github.com/cgrates/cgrates/data /usr/share/cgrates # Make cgr-engine binary available system-wide sudo ln -s $HOME/go/bin/cgr-engine /usr/bin/cgr-engine # Optional: Additional useful symbolic links sudo ln -s $HOME/go/bin/cgr-loader /usr/bin/cgr-loader sudo ln -s $HOME/go/bin/cgr-migrator /usr/bin/cgr-migrator sudo ln -s $HOME/go/bin/cgr-console /usr/bin/cgr-console sudo ln -s $HOME/go/bin/cgr-tester /usr/bin/cgr-tester .. _post_install: Post-install Configuration -------------------------- Database Setup ^^^^^^^^^^^^^^ CGRateS supports multiple database types for various operations, based on your installation and configuration. Currently, we support the following databases: `Redis`_ This can be used as :ref:`DataDB`. It is optimized for real-time information access. Post-installation, no additional setup is required as Redis doesn't require a specific schema. `MySQL`_ This can be used as :ref:`StorDB` and is optimized for CDR archiving and offline Tariff Plan versioning. Post-installation, you need to set up the CGRateS database using the provided scripts: .. code-block:: bash cd /usr/share/cgrates/storage/mysql/ sudo ./setup_cgr_db.sh root CGRateS.org localhost `PostgreSQL`_ Like MySQL, PostgreSQL can be used as :ref:`StorDB`. Post-installation, you need to set up the CGRateS database using the provided scripts: .. code-block:: bash cd /usr/share/cgrates/storage/postgres/ ./setup_cgr_db.sh `MongoDB`_ MongoDB can be used as both :ref:`DataDB` and :ref:`StorDB`. This is the first database that can store all types of data from CGRateS - from accounts, tariff plans to CDRs and logs. Post-installation, you need to set up the CGRateS database using the provided scripts: .. code-block:: bash cd /usr/share/cgrates/storage/mongo/ ./setup_cgr_db.sh Set Versions Data ^^^^^^^^^^^^^^^^^ After completing the database setup, you need to write the versions data. To do this, run the migrator tool with the parameters specific to your database. Sample usage for MySQL: .. code-block:: bash cgr-migrator -stordb_passwd="CGRateS.org" -exec="*set_versions"