Spam

Set up and run the Reloop spam scanning backend (Rspamd) locally in Docker.

Rspamd spam scanner — scores inbound mail for the inbound MX receiver via HTTP /checkv2.

Run bun setup for core Docker first. Spam starts with the core Compose stack (not the edge profile) because inbound depends on it.

Overview

PropertyValue
Directoryapps/backend/spam
Docker servicereloop-spam (container reloop-spam)
Scan ports11332, 11333
Web UI11334
StackRspamd · Redis

Quick start

bun docker:up

Or rebuild after config changes:

docker compose -f local/docker-compose.yml up -d --build reloop-spam

Controller / scan endpoint: http://localhost:11333.

Configuration

Local overrides live in apps/backend/spam/local.d/ (mounted into the container).

Spam Redis (set on the spam container — native Rspamd RSPAMD_* env):

VariableDefault
RSPAMD_REDIS_SERVERSreloop-redis:6379
RSPAMD_REDIS_PASSWORDreloop123

Inbound wires to this service with:

VariableDefault
KUMOMTA_RSPAMD_URLhttp://reloop-spam:11333/checkv2

Commands

CommandDescription
bun docker:upStart core stack including spam
docker compose -f local/docker-compose.yml up -d --build reloop-spamRebuild and start spam only
docker logs -f reloop-spamStream logs
docker compose -f local/docker-compose.yml stop reloop-spamStop container

Architecture

Inbound (KumoMTA) → HTTP POST /checkv2 → Spam (Rspamd) → score / action / symbols
LayerDetail
Scan APIAccepts raw message bodies on /checkv2 (port 11333)
HeadersInbound injects X-Spam-* from the response for inbox
StateUses Redis (reloop-redis) for learning / fuzzy storage
Separate deployNot baked into the inbound image — own Dockerfile and CI (be-spam)

Next

Was this page helpful?

Edit this page