veraPDF-Sidecar (SRC-14)
Prueft die PDF/A-Derivate aus SRC-06 gegen veraPDF, den Referenz-Validator fuer
PDF/A. Zwei Teile: die offizielle veraPDF-CLI unter /opt/nexarch-verapdf
(Java, unveraendert vom Hersteller) und ein duenner, selbst geschriebener
HTTP-Wrapper verapdf-sidecar (Go, dms/cmd/verapdf-sidecar), der je Anfrage
einen eigenen veraPDF-Lauf startet. Nur auf 127.0.0.1:8612
(DMS-Portbereich 8600-8699, deploy/ports.tsv; 8610 ist der KoSIT-Sidecar aus
MET-07). Der DMS-Worker spricht ihn ueber NEXARCH_DMS_WORKER_VERAPDF_ADDR
an. Ohne diese Variable ist das Ergebnis immer not_checked.
veraPDF hat keinen dokumentierten Daemon-Modus; jede Pruefung startet einen eigenen kurzlebigen Java-Prozess (ueblicherweise < 1 s). Das ist das vom Hersteller unterstuetzte Betriebsmodell, nicht ein Workaround.
Bestandteile (feste Versionen, Pruefsummen)
| Datei | Version | Pruefsumme |
|---|---|---|
Temurin JRE (Linux x64), wiederverwendet aus /opt/nexarch-kosit/jre |
21.0.12.1 | SHA-256 2413149700df0f7d440500a84a8f764c535f21e5a5e87d38328b64eec2c5b500 (siehe deploy/kosit/README.md) |
verapdf-installer.zip |
veraPDF Greenfield 1.30.2, gebaut 2026-06-03 | SHA-256 6cc6341cb1af644044054b81f00a6590a7918abb18f762243de115258bcad838, zusaetzlich per GPG-Signatur (.asc) gegen den Schluessel 13DD102B4DD69354D12DE5A83184863278B17FE7 (Carl Wilson, veraPDF-Techlead, keyserver.ubuntu.com) geprueft |
Quellen: github.com/adoptium/temurin21-binaries, software.verapdf.org/releases/.
Der Installer selbst ist ein IzPack-Assistent ohne separat verzeichnete
SHA-256-Summe; der Hersteller sichert die Downloads per GPG-Signatur.
Installation
Der Installer laesst sich nicht ganz unbeaufsichtigt starten (kein
auto-install.xml im Zip); die Konsolen-Antworten sind aber fest und
reproduzierbar:
# JRE, Installer und Signatur laden, Signatur pruefen (siehe oben)
useradd --system --no-create-home --home-dir /opt/nexarch-verapdf --shell /usr/sbin/nologin nexarch-verapdf
# Nur die CLI installieren (keine GUI, keine Doku, keine Beispiel-Plugins):
export JAVA_HOME=/opt/nexarch-kosit/jre PATH=/opt/nexarch-kosit/jre/bin:$PATH
printf '1\n/opt/nexarch-verapdf\nO\n1\nN\nY\nN\nN\n1\n1\n1\n1\n1\n' \
| java -jar verapdf-izpack-installer-1.30.2.jar -console
# Sidecar bauen und ablegen (aus diesem Branch):
cd dms && go build -o /opt/nexarch-verapdf/sidecar/verapdf-sidecar ./cmd/verapdf-sidecar
chown -R root:root /opt/nexarch-verapdf && chmod -R go-w /opt/nexarch-verapdf
cp deploy/verapdf/nexarch-dms-verapdf.service /etc/systemd/system/
systemctl daemon-reload && systemctl enable --now nexarch-dms-verapdf
Die Eingabefolge des Installers (Konsolenmodus, Sprache Deutsch): 1 = Hinweis
bestaetigen, Zielpfad /opt/nexarch-verapdf, O = Verzeichnis anlegen,
1 = weiter, dann je Paket N/Y/N/N (GUI aus, CLI an, Dokumentation aus,
Beispiel-Plugins aus), danach 1 mehrfach fuer Installation, Abschluss und die
Frage nach einem automatischen Installationsskript.
Betrieb
- Worker:
NEXARCH_DMS_WORKER_VERAPDF_ADDR=http://127.0.0.1:8612, optionalNEXARCH_DMS_WORKER_VERAPDF_FLAVOUR(Standard2b) undNEXARCH_DMS_WORKER_VERAPDF_TIMEOUT_SECONDS. - Der Sidecar selbst braucht
NEXARCH_VERAPDF_SIDECAR_BIN(Pfad zumverapdf-Startskript, Standard/opt/nexarch-verapdf/verapdf) undJAVA_HOME/PATHfuer die Java-Laufzeit (Environment-Zeilen in der Unit). - Der Dienst hat keine Zugriffskontrolle: nie an eine andere Adresse als Loopback binden.
- Der Sidecar meldet einen fehlgeschlagenen oder zeitueberschrittenen Lauf als
HTTP 502/504; der DMS-Client wertet das als
not_checked, niecompliant.
Rueckbau
systemctl disable --now nexarch-dms-verapdf
rm /etc/systemd/system/nexarch-dms-verapdf.service && systemctl daemon-reload
rm -rf /opt/nexarch-verapdf
userdel nexarch-verapdf
Bereits abgelegte Ergebnisse (revision_pdfa_conformance) bleiben erhalten;
ohne Sidecar entstehen neue Ergebnisse mit not_checked.