guides/opencve
Vulnerability management · CVE · Self-hosting

OpenCVE · Docker

Self-hosted platform til at overvåge CVE'er og blive notificeret når sårbarheder rammer de produkter, leverandører og teknologier du abonnerer på. Fungerer som triggerkilde for din berigelses-pipeline via webhooks.

Open Source · BSD-3 Docker / Linux OpenCVE.io
Postgres+ Redis backend
Schedulerimporterer CVE-data
Webhook+ e-mail-notifikationer

Arkitektur

OpenCVE består af en webapp, en database (PostgreSQL), en cache/kø (Redis) og en scheduler/worker der jævnligt henter og indekserer CVE-data fra de officielle kilder. Du abonnerer på vendors/produkter, og platformen notificerer dig ved ændringer.

I din pipeline: OpenCVE er trigger-laget. Når en relevant CVE dukker op, kalder OpenCVE en webhook → din n8n-workflow beriger den → resultatet lander i CVE-dashboardet. Se CVE-berigelses-workflowet. Forudsætning: Docker.

Compose-stack

officiel

OpenCVE leverer et officielt Compose-setup. Den nemmeste vej er at klone deres repo og bruge den medfølgende docker-compose.yml + .env, da scheduler/worker og webapp deler konfiguration.

1 · Hent officielt compose-setup
# tjek github.com/opencve/opencve for nyeste struktur/version
git clone https://github.com/opencve/opencve.git
cd opencve
Versioner og servicenavne kan ændre sig mellem releases — verificér mod deres dokumentation før du kører.
2 · Konfigurér .env
# kopiér eksemplet og udfyld hemmeligheder
cp .env.example .env
nano .env
# sæt POSTGRES_PASSWORD, SECRET_KEY (openssl rand -hex 32),
# mail-indstillinger og evt. START_URL / public hostname
3 · Start stacken
docker compose up -d
docker compose ps
Forventede services: webapp, postgres, redis, scheduler og en eller flere workers.
Bind til localhost: Sørg for at webapp-porten kun eksponeres på 127.0.0.1 i compose og lægges bag din Nginx-reverse-proxy — ikke direkte mod internettet. Se Docker+UFW-fælden i Docker-guiden.

Initialisering & CVE-import

Ved første opstart skal databasen migreres, en superuser oprettes, og det indledende CVE-datasæt importeres. Den første import er stor og kan tage et stykke tid.

Migrér & opret superuser
docker compose exec webapp \
  opencve upgrade
docker compose exec webapp \
  opencve create-user lars admin@defencia.dk --superuser
Kommandonavne kan variere mellem versioner — tjek opencve --help i containeren.
Indledende dataimport
docker compose exec webapp \
  opencve import-data
# henter CVE/CWE/vendor-data — tager tid første gang
Scheduler: Efter den første import holder scheduleren databasen opdateret automatisk på interval. Tjek at scheduler- og worker-containerne kører og ikke logger fejl.

Abonnementer

Kernen i OpenCVE: abonnér på de vendors og produkter der er relevante for dit miljø, så du kun får støj fra det der betyder noget.

TrinHandling
Find vendor/produktSøg i Vendors/Products — fx Microsoft, Fortinet, Cisco, de produkter du faktisk kører
SubscribeAbonnér på vendor (alle produkter) eller specifikke produkter
OrganisationerGrupper abonnementer i org/projekt hvis du adskiller miljøer
NotifikationVælg e-mail og/eller webhook pr. abonnement/organisation
Kuratér stramt: Ligesom dine 71 RSS-feeds er værdien i kurateringen. Abonnér kun på det din organisation reelt bruger — ellers drukner de vigtige CVE'er i støj.

Webhook-notifikationer

til n8n

Det er her OpenCVE kobles til din automatisering. Opret en webhook-notifikation der peger på din n8n webhook-URL, så hver relevant CVE udløser berigelses-workflowet.

Opsætning
# I OpenCVE UI:
# Settings/Notifications → Add → Webhook
# URL: https://n8n.defencia.dk/webhook/opencve-cve
# Vælg hvilke abonnementer/severities der trigger
# Tilføj evt. en hemmelig header til validering i n8n
OpenCVE POST'er en JSON-payload med CVE-id, ændringstype og metadata til din endpoint.
Næste skridt: n8n modtager payloaden og beriger CVE'en (CVSS, EPSS, KEV, berørte produkter) før den lander i dashboardet. Hele det flow er beskrevet i CVE-berigelses-workflowet.

Drift

Logs & status
docker compose ps
docker compose logs -f scheduler
docker compose logs --tail=50 webapp
Opdatér
git pull
docker compose pull
docker compose up -d
docker compose exec webapp opencve upgrade
Kør altid migrations (upgrade) efter en image-opdatering.
Backup database
docker compose exec postgres \
  pg_dump -U opencve opencve > opencve_$(date +%F).sql
Tving manuel CVE-sync
docker compose exec scheduler \
  opencve import-data # eller relevant sync-kommando

Hærdning

KontrolAnbefaling
EksponeringWebapp bag Nginx + HTTPS, bind til 127.0.0.1
Database/Redisinternal-netværk, ingen værts-porte
SECRET_KEYStærk, unik, gemt i Bitwarden
WebhookHemmelig header/token så kun OpenCVE kan trigge n8n
LoginSuperuser med stærkt password; Fail2ban på login
MailBrug app-password/SMTP-relay, ikke personlig adgangskode
OpdateringFølg releases — sårbarhedsdata kræver en sund scheduler