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
  • 简体中文
  • Reference

    • Node Types
    • Roam API
    • Server Config
    • Client Config

Server Configuration Reference

Ice Server supports both command line arguments and environment variables for configuration. Environment variables take precedence.

Configuration Options

ArgumentEnvironment VariableTypeDefaultDescription
--portICE_PORTint8121Server port
--storage-pathICE_STORAGE_PATHstring./ice-dataFile storage path
--client-timeoutICE_CLIENT_TIMEOUTint60Client inactivity timeout (seconds). Clients that haven't reported a heartbeat within this time are marked offline
--version-retentionICE_VERSION_RETENTIONint1000Number of version files to retain. Excess versions are cleaned up during recycling
--recycle-cronICE_RECYCLE_CRONstring0 3 * * *Cron expression for the recycling scheduled task
--recycle-wayICE_RECYCLE_WAYstringhardRecycling method. soft: mark as deleted; hard: physically delete
--recycle-protect-daysICE_RECYCLE_PROTECT_DAYSint1Recycling protection days. Versions within the protection period will not be recycled

Configuration Examples

Command Line Arguments

./ice-server --port 8121 --storage-path ./ice-data --version-retention 500

Environment Variables (Recommended for Docker)

docker run -d --name ice-server \
  -p 8121:8121 \
  -e ICE_PORT=8121 \
  -e ICE_STORAGE_PATH=/app/ice-data \
  -e ICE_VERSION_RETENTION=500 \
  -v ./ice-data:/app/ice-data \
  waitmoon/ice-server:latest

Docker Compose

version: '3.8'
services:
  ice-server:
    image: waitmoon/ice-server:latest
    ports:
      - "8121:8121"
    environment:
      ICE_STORAGE_PATH: /app/ice-data
      ICE_VERSION_RETENTION: 500
      ICE_RECYCLE_CRON: "0 3 * * *"
    volumes:
      - ./ice-data:/app/ice-data

Debug Log Levels

The debug field in the Pack is a bitmask. Combine values by adding them to control log output:

ValueNameDescription
1IN_PACKPrint Pack contents before execution
2PROCESSPrint execution process (requires the node's debug flag to be enabled)
4OUT_ROAMPrint Roam contents after execution
8OUT_PACKPrint Pack contents after execution

For example, debug = 3 prints both IN_PACK (1) and PROCESS (2).

Edit this page on GitHub
Prev
Roam API
Next
Client Config