IceIce
Home
  • Getting Started

    • Quick Start
    • Core Concepts
    • Architecture
  • SDK Guide

    • Java SDK
    • Go SDK
    • Python SDK
  • Reference

    • Node Types
    • Roam API
    • Server Config
    • Client Config
Playground
FAQ
  • Changelog
  • Upgrade Guide
Sponsor
Community
GitHub
  • English
  • 简体中文
Home
  • Getting Started

    • Quick Start
    • Core Concepts
    • Architecture
  • SDK Guide

    • Java SDK
    • Go SDK
    • Python SDK
  • Reference

    • Node Types
    • Roam API
    • Server Config
    • Client Config
Playground
FAQ
  • Changelog
  • Upgrade Guide
Sponsor
Community
GitHub
  • English
  • 简体中文
  • Guide

    • Getting Started
    • Core Concepts
    • Architecture
    • FAQ

Getting Started

Deploy, integrate, and execute your first rule with the Ice rule engine in 5 minutes.

Prerequisites

Ice consists of three components:

  • Ice Server -- Visual rule configuration management platform with a Web interface
  • Ice Client -- Rule execution SDK integrated into your business application
  • Shared Storage -- Server and Client synchronize configurations through a shared file directory (ice-data/), with no network communication required
Server --> writes config --> ice-data/ <-- reads config <-- Client

Step 1: Deploy the Server

Docker Deployment (Recommended)

docker run -d --name ice-server \
  -p 8121:8121 \
  -v ./ice-data:/app/ice-data \
  waitmoon/ice-server:latest

After startup, visit http://localhost:8121 to access the management interface.

Online demo: eg.waitmoon.com

Manual Deployment

Download the package for your platform from waitmoon.com/downloads:

tar -xzvf ice-server-linux-amd64.tar.gz && cd ice-server-linux-amd64
sh ice.sh start

Step 2: Integrate the Client SDK

Add the dependency to your business application and start the Client. The Server and Client must share the same ice-data directory.

Spring Projects

Spring/SpringBoot projects require an additional bridge class so that leaf nodes can inject Spring Beans. See Java SDK Guide for details.

Step 3: Develop Leaf Nodes

Leaf nodes are where business logic is executed. Extend the corresponding base class, and fields in the class will automatically appear in the Server configuration interface:

Step 4: Configure and Execute

Configure Rules in Server

  1. Create an App
  2. Create a new Rule (Ice) and obtain its iceId
  3. Add relation nodes and leaf nodes to compose the rule tree
  4. Configure leaf node parameters
  5. Click Publish

Execute in Code

Shared Storage Deployment Options

ScenarioSolution
Local developmentServer and Client use the same local path
DockerMount to the same host directory using -v
Distributed deploymentNFS / AWS EFS / GCP Filestore

Common Issues

Client cannot load configuration? Check that storagePath points to the same ice-data directory as the Server.

Rule changes not taking effect? Make sure you clicked "Publish" in the Server interface. The Client polls for configuration changes every 5 seconds by default.

Node class not found on startup? Verify that the leaf node class is under the scan package path configured in the Client, and that the class name is correct.

For more issues, see FAQ.

Next Steps

  • Core Concepts -- Understand the design philosophy of tree-based orchestration
  • Architecture -- How Server / Client / shared storage work together
  • Java SDK | Go SDK | Python SDK -- Complete SDK references
Edit this page on GitHub
Last Updated: 3/20/26, 1:36 AM
Contributors: waitmoon, Claude Opus 4.6
Next
Core Concepts