Inbetriebnahme

Von null zum laufenden Analytics-Server — in etwa 15 Minuten.

1. Voraussetzungen

2. Programm starten

Entpacken Sie das Archiv und starten Sie die Anwendung:

# Windows
CookielessTracker.exe

# Linux
./CookielessTracker.x86_64

# Optional headless, z. B. auf einem Server ohne Bildschirm:
./CookielessTracker.x86_64 --headless --port 8080

Der Server beginnt sofort auf Port 8080 zu lauschen und öffnet das Dashboard. Ein Test mit curl bestätigt den Betrieb:

curl http://localhost:8080/health
# {"status":"ok","uptime_seconds":12,"storage":"sqlite","tls":false,"open_connections":0}

3. TLS / HTTPS aktivieren (empfohlen)

Legen Sie Zertifikat und Schlüssel im Datenverzeichnis der Anwendung ab. Dieses user://-Verzeichnis ist:

# Dateien exakt so benennen:
user://server.key   # privater Schlüssel (PEM)
user://server.crt   # Zertifikat (PEM, ggf. mit Kette)

Sind beide Dateien vorhanden und lesbar, spricht der Server automatisch HTTPS. Fehlt oder bricht eine Datei, fällt er ohne Absturz auf HTTP zurück und schreibt einen Hinweis ins Log.

4. Reverse-Proxy (optional)

Läuft bereits ein Webserver, kann dieser TLS übernehmen und an den Tracker weiterleiten. Beispiel für nginx:

server {
    listen 443 ssl http2;
    server_name analytics.ihre-domain.de;

    ssl_certificate     /etc/letsencrypt/live/analytics.ihre-domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/analytics.ihre-domain.de/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    }
}

Der Tracker vertraut X-Real-IP / X-Forwarded-For nur dann, wenn die Verbindung von einer lokalen/privaten Adresse kommt — Spoofing aus dem Internet ist damit ausgeschlossen.

5. Tracking-Snippet einbinden

Fügen Sie direkt vor </body> Ihrer Website ein:

<script>
  window.ZIVA_ANALYTICS = {
    host: "analytics.ihre-domain.de",  // Host des Trackers
    port: 443,                         // 443 bei HTTPS, 8080 bei HTTP
    path: "/track",                    // Endpunkt (Standard)
    heartbeat: 15000                   // Verweildauer-Heartbeat in ms
  };
</script>
<script src="https://analytics.ihre-domain.de/tracker.js" defer></script>

Alternativ können Sie den Inhalt von tracker.js direkt inline einfügen. Es wird kein Cookie gesetzt und nichts auf dem Endgerät gespeichert.

6. Lizenz aktivieren

Ohne Lizenz läuft die Anwendung im Testmodus mit reduziertem Monatsvolumen. Nach dem Kauf erhalten Sie einen signierten Lizenzschlüssel (Textdatei). Legen Sie ihn ab als:

user://license.key

Die Anwendung prüft die Signatur automatisch. Im Dashboard zeigt ein Badge den aktiven Tarif (z. B. STARTER) und den aktuellen Verbrauch. Ein Neustart ist nicht erforderlich, wenn Sie die Datei bei laufendem Programm ersetzen — spätestens nach dem nächsten Aktualisierungsintervall wird sie gelesen.

7. Autostart als Dienst (Linux)

Das Archiv enthält eine systemd-Unit-Vorlage. Nach Anpassung der Pfade:

sudo cp analytics-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now analytics-server
systemctl status analytics-server

8. Datenschutz & AVV

9. Fehlersuche

ProblemLösung
Keine Daten im DashboardKonsole des Browsers prüfen; Host/Port im Snippet müssen exakt passen. CORS ist serverseitig aktiviert.
Server startet nichtPort belegt? Anderen Port wählen oder den blockierenden Prozess beenden.
HTTPS klappt nichtserver.key/server.crt prüfen — bei Fehlern startet der Server bewusst als HTTP.
„Quota exceeded“Monatsvolumen des Tarifs erreicht; Upgrade in einen höheren Tarif durchführen.
Zu viele BotsBot-Traffic wird nur geflaggt, nicht gelöscht. Im Graphen per Schalter ausblenden.

10. Backup & Update