---
title: "Konfiguration"
description: "Konfigurationsdatei des Servers von LumiScan Annotation Web: Adresse, Port, HTTPS, Projektordner, Datenbank, Sicherungen, Vorschläge, S3 und Anmeldung."
product: "LumiScan Annotation Web"
component: "lumiscan-annotation-web-de"
version: "2.4.1"
display_version: "2.4.1.2"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/configuration.html"
---

# Konfiguration – LumiScan Annotation Web

Der Server liest eine JSON-Datei, angegeben mit `--config`. Ein Beispiel mit allen Abschnitten liegt in `config\annotation-server.example.json`. Relative Pfade beziehen sich auf den Ordner der Konfigurationsdatei. Geheimnisse (Passwörter, Schlüssel) können in eigenen Dateien liegen, die nur das Dienstkonto lesen darf: Verwenden Sie dafür die Schlüssel mit der Endung `_file`.

## Beispiel

```json
{
  "bind": "0.0.0.0",
  "port": 8080,
  "public_url": "https://annotation.example.com",
  "projects_root": "../projects",
  "project_folders": ["D:/LumiScan"],
  "data_root": "D:/LumiScan/annotation-data",
  "database": "annotation-server.db",
  "web_root": "../www",
  "log_dir": "../logs",
  "backup": { "dir": "../backups", "every_hours": 24, "keep": 14 },
  "pre_annotation": [
    { "url": "http://gpu-server:8090", "token_file": "preannotate.token" }
  ],
  "auth": {
    "local_login": true,
    "default_role": "annotator",
    "ldap": { "enabled": false },
    "oidc": { "enabled": false }
  }
}
```

## Schlüssel

| Schlüssel | Bedeutung |
| --- | --- |
| `bind`, `port` | Adresse (Standard `0.0.0.0`, alle Netzwerkschnittstellen) und Port (Standard `8080`). |
| `public_url` | Die Adresse, die die Benutzer öffnen, z. B. `https://annotation.example.com`. Nötig hinter einem Reverse Proxy und für Single Sign-on (Rücksprungadresse). |
| `https` | `auto` (Standard), `on` oder `off`. Siehe [HTTPS](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/configuration.html#https). |
| `tls_cert`, `tls_key` | Zertifikat und privater Schlüssel (PEM) für HTTPS. Ohne sie verwendet der Server ein selbstsigniertes Zertifikat. Siehe [HTTPS](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/configuration.html#https). |
| `tls_names` | Optionale Liste: weitere Hostnamen oder IP-Adressen für das selbstsignierte Zertifikat. |
| `web_root` | Die Webseiten. Standard: `www` neben dem Programm. |
| `data_root` | Optional: ein Bildordner, der zum Projekt `default` wird, offen für alle Benutzer. So laufen bestehende Installationen der Version 2.0 unverändert weiter. |
| `projects_root` | Ordner für neue und importierte Projekte. Standard: `projects` neben der Konfiguration. |
| `project_folders` | Optionale Liste: Admins dürfen Projekte auf vorhandenen Ordnern nur unterhalb dieser anlegen. |
| `s3_targets` | Optionale Liste von S3-Buckets für Projekte, siehe [Projekte in S3-Buckets](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/projects-in-s3-buckets.html). |
| `pre_annotation` | Optional: ein Dienst für Rahmenvorschläge oder eine Liste davon, je mit `url`, `token_file` (oder `token`), `timeout_s`, `enabled`. Siehe [Dienst für Rahmenvorschläge](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/box-suggestion-service.html). Ein Eintrag `{"type": "onnx", "networks": "networks"}` führt stattdessen die Netze in diesem Ordner im Server aus (Programmversionen mit eingebauten Netzen wie die [Einzelplatz-Installation](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/single-pc-installation.html)). |
| `update_check` | `true`: Einmal täglich fragt der Server docs.hdvisionsystems.com nach der aktuellen Version und zeigt Projekt-Admins **Version … verfügbar**. Es wird nichts heruntergeladen. Standard: aus; an in der Einzelplatz-Installation. |
| `database` | Die Datenbank: Konten, Sitzungen, Projekte, Verlauf, Hinweise. Standard: `annotation-server.db` neben der Konfiguration. **Nur lokale Festplatte**, nie auf einer Netzwerkfreigabe. |
| `index_refresh_seconds` | Wie oft die Projektordner nach Änderungen außerhalb der Web-App durchsucht werden. Standard 60. |
| `upload_max_mb` | Größte Bilddatei, die Projekt-Admins [im Browser hinzufügen](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/adding-images.html) dürfen, in MB. Standard 2048. |
| `translations_dir` | Ordner mit Ihren eigenen Übersetzungstabellen der Oberfläche; sie haben Vorrang vor den mitinstallierten. Standard: `translations` neben der Konfiguration. Siehe [Sprachen und Übersetzungen](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/languages-and-translations.html). |
| `lock_lease_seconds` | Wie lange eine Bearbeitungssperre ohne Erneuerung gilt. Standard 60; der Browser erneuert sie, solange das Bild offen ist. |
| `log_dir` | Ordner für rotierende Protokolldateien. Ohne ihn geht das Protokoll nur auf die Konsole. |
| `backup.dir`, `backup.every_hours`, `backup.keep` | Automatische Sicherungen: Ordner (Standard `backups` neben der Konfiguration), Abstand in Stunden (Standard 24), Anzahl der aufbewahrten (Standard 14). Siehe [Sicherung und Wiederherstellung](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/backup-and-restore.html). |
| `auth` | Anmeldeverfahren und Sitzungen, siehe [Anmeldeverfahren](https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/sign-in-methods.html). |
| `license` | Für den LumiScan Key vorbereitet; in dieser Version nicht verwendet. |

## HTTPS {#https}

Der Server spricht standardmäßig HTTPS, Passwörter und Sitzungs-Cookies laufen also nie unverschlüsselt. Die Benutzer öffnen `https://<Server>:<Port>/`, z. B. `https://annotation-pc:8080/`. Der Port spricht entweder HTTPS oder HTTP: Eine Adresse mit `http://` bekommt keine Antwort.

- **Selbstsigniertes Zertifikat (Standard):** Ohne `tls_cert` und `tls_key` erzeugt der Server beim ersten Start ein Zertifikat und legt es im Ordner `tls` neben der Konfiguration ab (`self-signed-cert.pem`, `self-signed-key.pem`). Einzurichten ist nichts.
  - Das Zertifikat nennt den Hostnamen des Rechners, `localhost`, die Netzwerkadressen des Rechners, den Host aus `public_url` und die Einträge von `tls_names`. Tragen Sie in `tls_names` jeden weiteren Namen oder jede IP-Adresse ein, die Benutzer eingeben, z. B. einen DNS-Alias.
  - Es gilt 825 Tage. Der Server erneuert es 30 Tage vor dem Ablauf, auch im laufenden Betrieb, und wenn ein Name aus `public_url` oder `tls_names` darin fehlt.
  - Browser zeigen eine Warnung wie „Dies ist keine sichere Verbindung", bis sie dem Zertifikat vertrauen. Vergleichen Sie den SHA-256-Fingerabdruck in den Zertifikatsdetails der Warnung mit dem, den das Serverprotokoll beim Start zeigt (`HTTPS: SHA-256 fingerprint …`), und fahren Sie dann fort. Um die Warnung zu vermeiden, importieren Sie `self-signed-cert.pem` auf den Clients als vertrauenswürdiges Zertifikat (Windows: **Vertrauenswürdige Stammzertifizierungsstellen**, macOS: Schlüsselbund, **Immer vertrauen**), oder verwenden Sie ein Zertifikat der Zertifizierungsstelle Ihres Unternehmens.
  - Sichern Sie den Ordner `tls` mit der Konfiguration (die automatischen Sicherungen enthalten ihn). Ein neues Zertifikat bedeutet eine neue Warnung auf jedem Client.

- **Eigenes Zertifikat:** Setzen Sie `tls_cert` und `tls_key` auf die PEM-Dateien eines Zertifikats der Zertifizierungsstelle Ihres Unternehmens oder einer öffentlichen Zertifizierungsstelle (das Zertifikat mit seinen Zwischenzertifikaten) und seines Schlüssels. Der Server prüft beim Start, ob beide zusammengehören, und warnt 30 Tage vor dem Ablauf des Zertifikats. Starten Sie den Server nach dem Austausch der Dateien neu.
  ```json
    "tls_cert": "tls/annotation.pem",
    "tls_key": "tls/annotation.key",
  ```

- **Hinter einem Reverse Proxy (nginx, IIS, Apache):** Der Proxy beendet TLS und leitet an den Server auf demselben Rechner weiter, z. B. auf `127.0.0.1:8080`. Mit `"bind": "127.0.0.1"` bleibt der Server von selbst bei unverschlüsseltem HTTP (`"https": "auto"`); andernfalls setzen Sie `"https": "off"`. Setzen Sie `public_url` auf die Adresse, die die Benutzer öffnen. Der Proxy sollte den Header `X-Forwarded-Proto: https` senden, damit das Sitzungs-Cookie als sicher markiert wird.
  ```nginx
  server {
      listen 443 ssl;
      server_name annotation.example.com;
      ssl_certificate     /etc/ssl/annotation.pem;
      ssl_certificate_key /etc/ssl/annotation.key;
      client_max_body_size 64m;
      location / {
          proxy_pass http://127.0.0.1:8080;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto https;
          proxy_read_timeout 600s;
      }
  }
  ```

  `client_max_body_size` muss die 8-MB-Stücke eines Projektimports zulassen.

## Sitzungen und Sicherheit

- Die Anmeldung erzeugt ein Sitzungs-Cookie (HttpOnly, SameSite=Lax, Secure über HTTPS). Eine Sitzung endet nach `auth.session_hours` ohne Aktivität (Standard 12) und spätestens nach `auth.max_session_days` (Standard 7).
- Nach 5 fehlgeschlagenen Anmeldungen ist ein Konto für 15 Minuten gesperrt (30 Fehlversuche je Netzwerkadresse).
- Deaktivieren eines Benutzers oder Zurücksetzen seines Passworts beendet seine Sitzungen sofort.
- Jede ändernde Anfrage braucht den Header `X-Requested-With: lsa`; das schützt vor seitenübergreifenden Anfragen.
