Installation
There are several ways to install Horizon and Synapse. Docker is the recommended method for most users. npm packages are available as an alternative. Building from source is intended for contributors and advanced users.
Docker (Recommended)
Docker is the fastest way to get running — no build tools or language runtimes required.
Full Platform
Deploy Horizon with Synapse and all dependencies using Docker Compose:
# compose.yml
services:
horizon:
image: nickcrew/horizon:latest
ports:
- "3100:3100"
- "5180:5180"
environment:
NODE_ENV: production
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/signal_horizon
CLICKHOUSE_ENABLED: "true"
CLICKHOUSE_HOST: clickhouse
REDIS_URL: redis://redis:6379
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
synapse:
image: nickcrew/synapse-waf:latest
ports:
- "6190:6190"
- "6191:6191"
volumes:
- ./config.yaml:/etc/synapse/config.yaml:ro
restart: unless-stopped
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: signal_horizon
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped
clickhouse:
image: clickhouse/clickhouse-server:23.8
environment:
CLICKHOUSE_DB: signal_horizon
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
volumes:
- clickhouse_data:/var/lib/clickhouse
restart: unless-stopped
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
postgres_data:
clickhouse_data:docker compose up -dSynapse Standalone
Run Synapse as a standalone WAF without the Horizon hub:
docker run -d \
--name synapse \
-p 6190:6190 \
-p 6191:6191 \
-v $(pwd)/config.yaml:/etc/synapse/config.yaml:ro \
nickcrew/synapse-waf:latestSee Synapse Configuration for a full config reference, or use the example config as a starting point.
Available tags
Both images publish latest and semver tags (e.g., nickcrew/synapse-waf:0.6.0). Pin to a specific version in production.
npm
All packages are published under the @atlascrew scope on npm.
Horizon
npm install -g @atlascrew/horizon
# Start the server
horizon startHorizon requires PostgreSQL 15+ and optionally ClickHouse and Redis. See the Horizon Configuration reference for environment variables.
Synapse WAF
npm install -g @atlascrew/synapse-waf
# Start with a config file
synapse-waf --config config.yamlClient Libraries
Use the client libraries to integrate with Synapse and Horizon programmatically:
# Synapse API client library
npm install @atlascrew/synapse-api
# Synapse CLI
npm install -g @atlascrew/synapse-clientFrom Source (Advanced)
Building from source is intended for contributors and advanced users who need to modify the platform. This requires the full development toolchain (Node.js, pnpm, Rust nightly, and system dependencies).
git clone https://github.com/atlas-crew/edge-protection.git
cd edge-protection
pnpm installSee Local Environment Setup for the complete development workflow, including database setup and running dev servers.
Rust build time
The first Synapse build fetches and compiles all Rust dependencies, which can take several minutes. Subsequent builds are incremental and much faster.
Next Steps
- Quick Start — verify your installation and send test traffic
- Configuration — configure rules, features, and thresholds
- Deployment — production deployment guides