Docker¶
The image is published to GitHub Container Registry at ghcr.io/raedkit/ovh-voip-spam-filter.
Tags¶
:latestβ the most recent stable release:v0.2.0β exact version:0.2β minor track (auto-updates within 0.2.x):0β major track (auto-updates within 0.x.y)
Multi-arch: linux/amd64 and linux/arm64. The image works on Apple Silicon, ARM Kubernetes clusters, and Raspberry Pi.
Pull and run¶
docker pull ghcr.io/raedkit/ovh-voip-spam-filter:latest
docker run --rm \
-e OVH_APPLICATION_KEY=... \
-e OVH_APPLICATION_SECRET=... \
-e OVH_CONSUMER_KEY=... \
-e OVH_BILLING_ACCOUNT=ab-12345-ovh \
-e OVH_SERVICE_NAME=0033xxxxxxxx \
ghcr.io/raedkit/ovh-voip-spam-filter:latest sync
Use --env-file for cleanliness:
cat > ovh.env <<EOF
OVH_APPLICATION_KEY=...
OVH_APPLICATION_SECRET=...
OVH_CONSUMER_KEY=...
OVH_BILLING_ACCOUNT=ab-12345-ovh
OVH_SERVICE_NAME=0033xxxxxxxx
EOF
chmod 600 ovh.env
docker run --rm --env-file ovh.env ghcr.io/raedkit/ovh-voip-spam-filter:latest sync
Image details¶
- Base:
python:3.12-slim - Multi-stage build (builder + runtime)
- Runs as non-root user
ovh(UID10001) - Entrypoint:
python -m ovh_voip_spam_filter - Default command:
sync PYTHONUNBUFFERED=1so logs flush immediately to stderr- No mounted volumes required β the container is fully ephemeral
Building locally¶
git clone https://github.com/raedkit/ovh-voip-spam-filter.git
cd ovh-voip-spam-filter
docker build -t ovh-voip-spam-filter:dev .
docker run --rm ovh-voip-spam-filter:dev --help
Kubernetes CronJob (sketch)¶
A future release will ship deploy/k8s/ templates. For now, a minimal CronJob looks like:
apiVersion: batch/v1
kind: CronJob
metadata:
name: ovh-voip-spam-filter
spec:
schedule: "0 3 * * 1" # Monday 03:00 UTC
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
activeDeadlineSeconds: 1800 # absorb a 13-min bootstrap with margin
template:
spec:
restartPolicy: OnFailure
containers:
- name: sync
image: ghcr.io/raedkit/ovh-voip-spam-filter:latest
args: ["sync"]
envFrom:
- secretRef: { name: ovh-credentials }
- configMapRef: { name: ovh-spam-config }
See the roadmap for ready-to-deploy manifests.