chore(scanner): alte Scanner-App zurueckgebaut

Die eigenstaendige Vorgaenger-App unter scanner.perinco.de ist auf dem Server
entfernt: Unit project-scanner-backend (Port 5005), beide Apache-Vhosts, das
Let's-Encrypt-Zertifikat samt Renewal-Config, /var/www/Projekt Scanner (486 MB)
und die Datenbank project_scanner (Dump unter /root/backups). Damit entfallen
die LEGACY_*-Variablen und das Importskript, dessen Quelle es nicht mehr gibt.

/root/.cache/ms-playwright bleibt bewusst stehen: der Cache stammt aus der
Installation der alten App, liegt aber ausserhalb beider Verzeichnisse und wird
vom CRM-Scanner benutzt - playwright ist auf 1.60.0 gepinnt, damit es genau
dieser Build (chromium-1223) bleibt. Der Hinweis steht jetzt in README und
docs/06-betrieb.md, damit ihn beim naechsten Aufraeumen niemand mitnimmt.

SCANNER_SCHEDULER_OFFSET geht auf 0: der Versatz sollte verhindern, dass beide
Instanzen mit denselben Portal-Cookies gleichzeitig losziehen. Ohne zweite
Instanz hat er keinen Zweck mehr, die Mechanik bleibt fuer kuenftige Erststarts
im Code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-09-09 17:45:42 +02:00
co-authored by Claude Opus 5
parent ab6b9f2372
commit 3c9d83161e
11 changed files with 158 additions and 646 deletions
+13 -26
View File
@@ -62,48 +62,35 @@ MAIL_SYNC=true
# MAIL_MAX_BODY_CHARS=400000
# ---------------------------------------------------------------------------
# Projekt Scanner (portiert, laeuft parallel zur alten App)
# Projekt Scanner (portiert)
# ---------------------------------------------------------------------------
# Diese Instanz ist vollstaendig eigenstaendig: eigene Datenbank, eigener
# Schluessel, eigenes Upload-Verzeichnis, eigener Scheduler. Sie fasst die Daten
# des alten Scanners nicht an.
# Eigene Datenbank, eigener Schluessel, eigenes Upload-Verzeichnis, eigener
# Scheduler. Die eigenstaendige Vorgaenger-App wurde am 09.09.2026
# zurueckgebaut, es gibt keine zweite Instanz mehr.
# Eigene Datenbank - wird beim Start automatisch angelegt, falls sie fehlt.
# NICHT auf project_scanner zeigen lassen, das ist die Datenbank der alten App.
# Wird beim Start automatisch angelegt, falls sie fehlt.
SCANNER_DB_NAME=perinco_scanner
# SCANNER_DB_HOST=localhost
# SCANNER_DB_PORT=3306
# SCANNER_DB_USER=root
# SCANNER_DB_PASSWORD=
# Eigener Schluessel fuer die Portal-Passwoerter, unabhaengig von der alten App.
# Schluessel fuer die Portal-Passwoerter (AES).
# Langer Zufallswert, z. B.: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
SCANNER_ENCRYPTION_KEY=
# Eigenes Verzeichnis fuer die CV-PDFs. Leer = <server>/uploads.
# Verzeichnis fuer die CV-PDFs. Leer = <server>/uploads.
SCANNER_UPLOAD_DIR=
# Hintergrund-Scraper (Playwright + OpenAI). Standard ist AN; nur "false"
# schaltet ihn ab. Achtung: solange die alte App laeuft, bewerten beide Instanzen
# dieselben Projekte unabhaengig voneinander - die OpenAI-Kosten fallen doppelt an.
# schaltet ihn ab.
SCANNER_SCHEDULER=true
# Minuten Versatz fuer den allerersten Lauf dieser Instanz. Verhindert, dass
# beide Scanner gleichzeitig mit denselben Portal-Sessions losziehen (CAPTCHA).
# Greift nur, solange noch kein Lauf stattgefunden hat - danach traegt der in der
# Datenbank gespeicherte Zeitpunkt (last_scan_at) den Zeitplan ueber Neustarts
# hinweg. 0 = sofort loslegen.
SCANNER_SCHEDULER_OFFSET=30
# Minuten Versatz fuer den allerersten Lauf. Stammt aus dem Parallelbetrieb mit
# der alten App und ist seit deren Rueckbau ohne Wirkung, solange in der
# Datenbank ein last_scan_at steht - der traegt den Zeitplan ueber Neustarts.
# 0 = sofort loslegen.
SCANNER_SCHEDULER_OFFSET=0
# Fallback fuer den OpenAI-Key; bevorzugt wird der Wert aus den Einstellungen.
# OPENAI_API_KEY=
# --- Einmalige Uebernahme aus der alten Scanner-Datenbank ---
# npm run scanner:import [-- --with-matches] [-- --force] [-- --dry-run]
LEGACY_DB_NAME=project_scanner
# LEGACY_DB_HOST / _PORT / _USER / _PASSWORD (leer = CRM-Werte von oben)
# Verzeichnis der CV-PDFs der alten App - von dort werden die Dateien kopiert.
# LEGACY_UPLOAD_DIR=/opt/project-scanner/backend/uploads
# ENCRYPTION_KEY der alten App - nur damit koennen die Portal-Passwoerter
# uebernommen (und hier neu verschluesselt) werden.
# LEGACY_ENCRYPTION_KEY=