Skip to main content
Edge Server is currently in preview. It is not recommended for production use.Edge server is under rapid development as a result:
  • APIs may change without notice.
  • Configuration format may change without notice.
  • Features, and behavior may change without notice.
  • This documentation may quickly grow stale or become inaccurate.
If you are experiencing issues, please reach out to your Ditto contact.
Ditto Edge Server is a lightweight, standalone database server that enables real-time data synchronization across devices in offline-first and edge computing environments. Built on the Ditto platform, Edge Server allows you to:
  • Deploy on resource-constrained devices like Raspberry Pi, industrial gateways, or IoT hubs
  • Synchronize data locally between nearby devices using Wi-Fi, Bluetooth, or LAN without internet connectivity
  • Expose a REST API so web browsers and HTTP clients can interact with the synchronized database
  • Bridge to the cloud by syncing with remote Ditto servers when internet connectivity is available
Edge Server is ideal for scenarios where you need data access at the network edge—retail stores, healthcare facilities, field operations, or any environment where low-latency access and offline resilience are critical.

Prerequisites

Edge Server does not currently support Windows. But it can run in a Docker container using Windows Subsystem for Linux (WSL).
  • Ditto SDK Connection Details from the Ditto Portal
  • Docker on a host that supports linux/arm64 or linux/amd64 platforms using a containerd image store.
  • A Linux Arm64 or Linux x86 host if installing native binaries.

Installation Methods

You can run the Ditto Edge Server as either a Docker container or a pre-built binary. Choose the method that best fits your environment.

Option 1: Docker Container

Download and load the Docker image:
 export TARGET=x86_64-unknown-linux-gnu # For linux/amd64 platform
 export TARGET=aarch64-unknown-linux-gnu # For linux/arm64 platform
 export DATE=2025-08-20  # Use the latest available date or check with your Ditto contact
 URL="https://edge-server-nightlies.s3.us-east-1.amazonaws.com/${DATE}/ditto-edge-server-image_${TARGET}.tar"   

 curl --fail -L "$URL" -o edge-server-image.tar
 docker load -i edge-server-image.tar
 # Tag the image for convenience (replace <image-id> with the actual ID):
 docker tag <image-id> edge-server:latest
Run the Edge Server
docker run \
  -rm \
  -p 127.0.0.1:8080:8080 \
  -v ./<your_config>.yaml:/config.yaml edge-server:latest \
  run -c /config.yaml

Option 2: Binary

Download the Edge Server binary
 export TARGET=x86_64-unknown-linux-gnu
 export DATE=2025-08-20  # Use the latest available date or check with your Ditto contact
 URL="https://edge-server-nightlies.s3.us-east-1.amazonaws.com/${DATE}/ditto-edge-server_${TARGET}"   

 curl --fail -L "$URL" -o edge-server
 chmod +x edge-server
Run the binary
./edge-server -c ./<your_config>.yaml

Configuration

To get a configuration file, follow the steps in Getting Started: Ditto Database.

Troubleshooting

Refer to the SDK Troubleshooting Guide for more help.
  • Permission denied: Make the binary executable (chmod +x edge-server).
  • Port already in use: Change the -p flag in the Docker command to use a different port.
  • Configuration errors: Double-check your YAML file for typos or missing fields.
  • Log files: See the Logging Configuration guide for details on controlling log verbosity and output.

Configuration Options

Edge Server offers several optional configuration settings: