Self-Hosted Deployment
FORG Enterprise Self-Hosted allows you to run the Rule Engine Worker and dashboard entirely within your own infrastructure. This is designed for air-gapped environments, organizations with strict egress controls, and regulated industries that cannot use cloud SaaS for behavioral telemetry.
Self-hosted deployment requires an Enterprise Self-Hosted license. Contact hello@forg.pro to get started.
Architecture
The self-hosted deployment consists of three components:
- Rule Engine — A Cloudflare Workers-compatible edge service that receives signals from developer agents, evaluates rules, and writes telemetry to your Postgres instance. Can be deployed to Cloudflare Workers, Deno Deploy, or a Node.js server.
- Dashboard — A Next.js application that reads from your Postgres instance and provides the FORG web UI. Deployable to any Node.js-compatible host.
- License Relay — A lightweight proxy that validates agent activations against your self-hosted license server, optionally without egress to
forg.pro.
Requirements
| Component | Requirement |
|---|---|
| Postgres | v14+ with pgvector extension |
| Node.js | v20+ |
| Docker | v24+ (optional, for container deployment) |
| Memory | 2 GB minimum for Rule Engine; 1 GB for Dashboard |
| Storage | 20 GB minimum for telemetry database |
| Outbound | forg.pro:443 for license validation (can be air-gapped with relay) |
Quick start with Docker Compose
# Download the self-hosted bundle (provided after license purchase):
tar -xzf forg-selfhosted-latest.tar.gz
cd forg-selfhosted
# Set environment variables:
cp .env.example .env
# Edit .env with your license key, database URL, and domain
# Start all services:
docker compose up -d
# Run database migrations:
docker compose exec engine npx wrangler d1 migrations apply
# Verify health:
curl http://localhost:6248/health
# { "status": "ok", "version": "1.5.0", "mode": "self-hosted" }Agent configuration for self-hosted
Developer agents point to your self-hosted Rule Engine instead of forg.pro:
# In ~/.forg/config.json or via environment variable:
{
"api_url": "https://forg.yourcompany.com"
}
# Or via environment variable:
export FORG_API_URL=https://forg.yourcompany.comUpdates
Self-hosted releases are published on a 2-week cadence, trailing the SaaS release by one week for stability. Updates are distributed as Docker image tags and release archives. Critical security patches are backported with 48-hour SLA.
Support
Self-hosted customers have access to a dedicated support channel and a shared Slack workspace with the FORG engineering team. SLAs are documented in your Enterprise agreement.