Radegast EDR — Backend
Radegast EDR is a lightweight, privacy-focused Endpoint Detection and Response platform perfect for smaller teams, home labbers, and families. With complete end-to-end encryption (E2EE) using age encryption, your log data remains private and secure — even from the server itself. No custom infrastructure is required: the built-in SQLite database and self-contained deployment make it easy to get started without complex setup. You don’t need to host any custom infrastructure if you don’t want to.
Built with FastAPI and SQLAlchemy, the backend handles device authorization, user configuration packs, encrypted log storage, alert status tracking, and key/session management.
Features
Device Management: Create and enroll EDR agent devices, assign them to groups, and generate secure authorization tokens
Configuration Packs: Store and distribute YAML/binary endpoint detection policies and versions
End-to-End Encrypted Log Storage: All logs are encrypted on the device using
agebefore transmission; the server stores only encrypted data it cannot readTeam Collaboration: Create teams, manage device group permissions, and receive email notifications for critical events
Zero-Trust Architecture: All data is encrypted client-side; the server never has access to your private keys or decrypted log contents
Self-Contained Deployment: Built-in SQLite database means no external database server required
Agent Distribution: Serve the Rustinel eBPF sensor and provide single-command installation for Linux and Windows
Deployment
The recommended way to run Radegast EDR in production is via the published container image.
Quick Start
# Pull and start with podman-compose (reads podman-compose.yaml)
podman-compose up -d
# Or with plain podman / docker
podman run -d \\
--name radegast-edr \\
-p 8000:8000 \\
-e RADEGAST_SECRET_KEY=<your-secret> \\
-e RADEGAST_BASE_URL=https://your.domain \\
-e RADEGAST_CORS_ORIGINS=https://your.domain \\
-v radegast_db:/app/data/db \\
-v radegast_uploads:/app/data/uploads \\
-v radegast_releases:/app/data/releases \\
docker.io/radegastedr/console:latest
For more details, see the Deployment Guide.
Local Development
Prerequisites
Python 3.11+
uv(recommended) or standardpip
Installation
Install project dependencies:
uv syncInstall dev tools (test runner etc.):
uv sync --dev
Running the Backend
Start the development server with hot-reload:
uv run uvicorn app.main:app --reload --port 8000
The server runs on http://localhost:8000. Interactive Swagger docs are available at http://localhost:8000/docs.
Configuration
All settings are controlled via environment variables prefixed with RADEGAST_ (defined in app/config.py).
See the Configuration Section in README for the full list of configuration options.