Deploy SynxML Platform

SynxML Platform is an integrated platform designed for data science and AI development. It provides full lifecycle management from data preparation to production deployment, including data management, model development, training, and deployment. The platform offers a web-based visual interface.

This document explains how to deploy SynxML Platform for a SynxDB cluster.

Steps to deploy SynxML Platform

Preparation

Before deploying SynxML Platform, make sure the following requirements are met:

  • A machine running CentOS 7 with at least 16 GB of available memory.

  • A SynxDB database cluster has been successfully deployed and is accessible.

  • The database is configured to allow access from SynxML Platform nodes in the pg_hba.conf file.

  • Contact Synx Data Labs technical support to obtain the following RPM installation packages:

    • synxml-runtime (runtime dependencies)

    • synxml-platform (platform services)

Step 1: Install the RPM packages

  1. Install the RPM packages. Replace <version> with the actual file name, for example: synxml-platform-0.1.2-1.noarch.rpm.

    # Installs the runtime component.
    sudo yum install -y synxml-runtime-<version>.x86_64.rpm
    
    # Installs the platform component.
    sudo yum install -y synxml-platform-<version>.noarch.rpm
    
  2. Initialize the environment. Switch to the synxml user and activate the synxml Python environment:

    su - synxml
    source /usr/local/synxml/bin/activate  # Enter the synxml user environment
    
  3. Verify the installation. If the installation is successful, the following command returns a result.

    rpm -qa | grep synxml-platform
    

Step 2: Configure SynxML Platform

  1. Modify the SynxML Platform configuration file. Edit the /etc/synxml/platform.toml file. For example:

    [database]  # Database connection settings
    name = "synxml"  # Database name
    user = "gpadmin"  # Database user
    password = "gpadmin"  # Database password
    host = "localhost"  # Database host
    port = 5432  # Database port
    schema = "synxml"  # Database schema
    
    [service]  # Platform service settings
    allowed_hosts = ["*"]
    ray_service_url = "http://localhost:8000"  # Ray service URL
    service_host = "0.0.0.0"  # Platform service bind address
    service_port = 8813  # Platform service port
    web_workers = 1
    
    [storage]
    file_path = "static"
    
    [system]
    thread_pool_max_workers = 20
    

    Make sure the port number in ray_service_url matches the one configured later in services.yml.

  2. Modify the service configuration file. Edit the services.yml file located at:

    /usr/local/synxml/lib/python3.10/site-packages/synxml/platform/core/services.yml
    

    Update the DBCONN_PREFIX and DBCONN fields according to your actual database connection information:

    DBCONN_PREFIX: postgresql://
    DBCONN: gpadmin:gpadmin@localhost:5432/synxml
    
  3. Set the following environment variables in the synxml user environment:

    # Sets the shared storage directory.
    export SHARED_STORAGE_PATH=/home/synxml/ray-logs
    
    # Sets the model directory.
    export ROOT_MODEL_DIR=/home/synxml/models
    
    # Sets the data directory.
    export ROOT_DATA_DIR=/home/synxml/
    

    For multi-node deployments, you can set the shared storage to an S3-compatible path:

    # Set the shared storage directory
    export SHARED_STORAGE_PATH=s3://ak:sk@bucket/path?endpoint_override=http://ip:port
    
  4. Grant read and write permissions to the static resources directory (run as root):

    sudo chmod 777 /usr/local/synxml/lib/python3.10/site-packages/synxml/platform/static
    

Step 3: Start the SynxML Platform service

Run the following commands in the synxml user environment.

  1. Start the Ray service.

    ray start --head
    ray status  # Checks the status.
    
  2. Start the model backend service.

    serve deploy /usr/local/synxml/lib/python3.10/site-packages/synxml/platform/core/services.yml
    serve status  # Checks the status.
    
  3. Start the API backend service.

    systemctl start synxml-platform.service
    

Step 4: Access the SynxML Platform console in your browser

Open a browser and navigate to http://<ip>:<port>/hp to access the SynxML Platform login page. Here:

  • <ip> is the IP address of the machine where SynxML Platform is running.

  • <port> is the service port configured in the service_port field of the /etc/synxml/platform.toml file.

The default login username and password are both admin.

Manage SynxML Platform services

The following are commonly used commands to manage SynxML Platform:

  • Check the service status:

    systemctl status synxml-platform.service
    
  • Stop the service:

    systemctl stop synxml-platform.service
    
  • Restart the service (run this after updating the configuration):

    systemctl restart synxml-platform.service
    
  • Enable the service to start on boot:

    sudo systemctl enable synxml-platform.service
    
  • View logs in real time:

    sudo journalctl -u synxml-platform.service -f
    
  • View logs within a specific time range, for example from 2025-04-22 to 2025-04-23:

    sudo journalctl -u synxml-platform.service --since "2025-04-22" --until "2025-04-23"
    
  • View all logs:

    sudo journalctl -u synxml-platform.service -e
    

Additional notes

  • For assistance with obtaining RPM packages or configuring the platform, contact Synx Data Labs technical support.

  • It is recommended to record logs during installation and deployment to help with troubleshooting.