Skip to content

Production

Guide for building, packaging, and deploying your service in production environments.


Building for Release

bash
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_NODE=ON -DENABLE_BUILD_HEARTBEAT=ON
make -j$(nproc)

Release mode enables optimizations (-O2) and disables debug assertions.


Packaging

The packaging script creates distribution artifacts for deployment.

bash
./scripts/package.py                      # Build for amd64 + arm64
./scripts/package.py --arch amd64         # Single architecture
./scripts/package.py --output ./dist      # Custom output directory
./scripts/package.py --skip-setup         # Skip QEMU/image setup

Installation

bash
./scripts/install.sh

The installer supports two modes:

ModeWhat Gets Installed
Framework SDKHeaders (/usr/local/include), static library (/usr/local/lib).
Service DaemonThe node binary for production deployment.

Production Checklist

  • TLS enabled for all inter-node communication
  • Multiple seed nodes in different availability zones
  • JWT keys generated, configured, and stored securely
  • Logging scopes configured for production (service + operational)
  • ENABLE_SILENCE=ON at compile time to eliminate logging overhead in production (see Logging)
  • Quotas enabled to protect against abuse
  • WAL enabled for message durability
  • Metrics collection enabled for monitoring
  • NTP synchronized clocks across all nodes
  • Firewall rules configured for mesh ports (default: 10000)