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.
Compose-stack
officielOpenCVE 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.
# tjek github.com/opencve/opencve for nyeste struktur/version
git clone https://github.com/opencve/opencve.git
cd opencve
# 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
docker compose up -d
docker compose ps
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.
docker compose exec webapp \
opencve upgrade
docker compose exec webapp \
opencve create-user lars admin@defencia.dk --superuser
opencve --help i containeren.docker compose exec webapp \
opencve import-data
# henter CVE/CWE/vendor-data — tager tid første gang
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.
| Trin | Handling |
|---|---|
| Find vendor/produkt | Søg i Vendors/Products — fx Microsoft, Fortinet, Cisco, de produkter du faktisk kører |
| Subscribe | Abonnér på vendor (alle produkter) eller specifikke produkter |
| Organisationer | Grupper abonnementer i org/projekt hvis du adskiller miljøer |
| Notifikation | Vælg e-mail og/eller webhook pr. abonnement/organisation |
Webhook-notifikationer
til n8nDet 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.
# 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
Drift
docker compose ps
docker compose logs -f scheduler
docker compose logs --tail=50 webapp
git pull
docker compose pull
docker compose up -d
docker compose exec webapp opencve upgrade
upgrade) efter en image-opdatering.docker compose exec postgres \
pg_dump -U opencve opencve > opencve_$(date +%F).sql
docker compose exec scheduler \
opencve import-data # eller relevant sync-kommando
Hærdning
| Kontrol | Anbefaling |
|---|---|
| Eksponering | Webapp bag Nginx + HTTPS, bind til 127.0.0.1 |
| Database/Redis | På internal-netværk, ingen værts-porte |
| SECRET_KEY | Stærk, unik, gemt i Bitwarden |
| Webhook | Hemmelig header/token så kun OpenCVE kan trigge n8n |
| Login | Superuser med stærkt password; Fail2ban på login |
| Brug app-password/SMTP-relay, ikke personlig adgangskode | |
| Opdatering | Følg releases — sårbarhedsdata kræver en sund scheduler |