137 lines
3.9 KiB
Markdown
137 lines
3.9 KiB
Markdown
|
|
# Troubleshooting
|
||
|
|
|
||
|
|
## Service läuft nicht
|
||
|
|
|
||
|
|
```bash
|
||
|
|
nexredirect status
|
||
|
|
nexredirect logs -n 100
|
||
|
|
```
|
||
|
|
|
||
|
|
Häufigste Ursachen:
|
||
|
|
|
||
|
|
- **Port 3000 belegt**: anderer Service auf 3000? `ss -tlnp | grep 3000`
|
||
|
|
- **better-sqlite3 native module fehlt**: nach Update `sudo nexredirect update -f` zwingt npm ci
|
||
|
|
- **DB-Dateirechte**: `ls -la /var/lib/corex-nexredirect/`. Sollte `nexredirect:nexredirect` gehören
|
||
|
|
- **NEXTAUTH_SECRET nicht gesetzt**: `systemctl cat corex-nexredirect.service` prüfen
|
||
|
|
|
||
|
|
## /domains gibt "Application error"
|
||
|
|
|
||
|
|
Spalte fehlt (bei Update von alter Version). Logs prüfen:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
nexredirect logs -n 50 | grep SqliteError
|
||
|
|
```
|
||
|
|
|
||
|
|
Falls `no such column`: Migration nicht durchgelaufen. v0.1.15+ hat Self-Healing (`PRAGMA table_info` Check). Update auf neueste Version + Restart:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nexredirect update
|
||
|
|
```
|
||
|
|
|
||
|
|
## Domain-Add: DNS-Verify schlägt fehl
|
||
|
|
|
||
|
|
```bash
|
||
|
|
dig +short example.de @8.8.8.8
|
||
|
|
dig +short example.de @1.1.1.1
|
||
|
|
```
|
||
|
|
|
||
|
|
Output muss die Server-IP sein. Falls nicht:
|
||
|
|
|
||
|
|
- DNS noch nicht propagiert (TTL warten)
|
||
|
|
- A-Record falsch eingetragen (manche Provider erwarten leeres Name-Feld statt `@`)
|
||
|
|
- DNSSEC-Problem beim Registrar
|
||
|
|
|
||
|
|
Server-IP korrekt? `nexredirect db` und `SELECT * FROM settings WHERE key LIKE 'server_%';`
|
||
|
|
|
||
|
|
## HTTPS funktioniert nicht trotz active
|
||
|
|
|
||
|
|
Caddy braucht eingehend Port 80 für ACME-Challenge:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nexredirect logs caddy 2>&1 | grep -i acme
|
||
|
|
journalctl -u caddy -n 50 | grep -i error
|
||
|
|
```
|
||
|
|
|
||
|
|
Häufigste Ursachen:
|
||
|
|
|
||
|
|
- Firewall blockt Port 80 (UFW / iptables)
|
||
|
|
- Cloudflare-Proxy davor → Caddy bekommt CF-IP, ACME schlägt fehl. Cloudflare auf "DNS-only" stellen
|
||
|
|
- Let's Encrypt Rate-Limit (50 Certs/Woche pro Domain)
|
||
|
|
|
||
|
|
## Caddyfile kann nicht geschrieben werden
|
||
|
|
|
||
|
|
Bei manueller Migration vor v0.1.9:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nexredirect caddy fix-perms
|
||
|
|
sudo nexredirect caddy regen
|
||
|
|
```
|
||
|
|
|
||
|
|
Setzt Owner auf Service-User und regeneriert + reloaded.
|
||
|
|
|
||
|
|
## Update läuft, UI zeigt aber alte Version
|
||
|
|
|
||
|
|
Browser-Cache. Hard-Reload (Ctrl+Shift+R) oder Inkognito. v0.1.5+ hat Auto-Reload nach Update integriert.
|
||
|
|
|
||
|
|
## Hit-Counter steigt nicht
|
||
|
|
|
||
|
|
Wenn Domain `redirect_code = 301`:
|
||
|
|
Browser cached den Redirect, alle weiteren Aufrufe gehen direkt zum Ziel. NexRedirect setzt `Cache-Control: no-store`, viele Browser ignorieren das aber bei 301.
|
||
|
|
|
||
|
|
**Fix**: Auf 302 ändern. v0.1.7+ migriert beim ersten Boot automatisch.
|
||
|
|
|
||
|
|
## Hits werden gefiltert obwohl echte User
|
||
|
|
|
||
|
|
Modernere Filter (v0.1.19+) prüft Browser-Signal-Header. Sehr alte Browser ohne `Sec-Fetch-Mode` UND ohne `Accept-Language` werden gefiltert.
|
||
|
|
|
||
|
|
Im Hit-Log nachschauen: `nexredirect db` und `SELECT * FROM hits ORDER BY ts DESC LIMIT 50;`. Wenn der Browser geloggt wird, ist alles OK. Sonst Bot-Filter zu aggressiv.
|
||
|
|
|
||
|
|
## Update.sh: "dubious ownership"
|
||
|
|
|
||
|
|
Wenn `update.sh` als root aufgerufen wird aber Repo `nexredirect` gehört. Fix:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nexredirect update
|
||
|
|
```
|
||
|
|
|
||
|
|
(CLI ruft update.sh über sudo auf und führt git als Service-User aus.) Bei Manuell:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo -u nexredirect git -C /opt/corex-nexredirect pull --ff-only
|
||
|
|
sudo /opt/corex-nexredirect/scripts/update.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## PDF-Download: "chrome_not_found"
|
||
|
|
|
||
|
|
Chromium fehlt. Beim Update wird's installiert; ältere Installs:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo apt install -y chromium
|
||
|
|
```
|
||
|
|
|
||
|
|
Pfad in der App ist `/usr/bin/chromium` oder `/usr/bin/chromium-browser`. Override via `NEXREDIRECT_CHROME_PATH` in der systemd-Unit-File.
|
||
|
|
|
||
|
|
## Logs zu Caddy-Reload-Fehlern
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nexredirect caddy show > /tmp/cur.caddyfile
|
||
|
|
caddy validate --config /tmp/cur.caddyfile
|
||
|
|
```
|
||
|
|
|
||
|
|
Validate-Output zeigt Syntax-Fehler. Bei Bedarf manuell editieren / Settings im UI korrigieren → `sudo nexredirect caddy regen`.
|
||
|
|
|
||
|
|
## Backup wiederherstellen
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl stop corex-nexredirect caddy
|
||
|
|
sudo tar -xzf nexredirect-backup-XXX.tar.gz -C /
|
||
|
|
sudo chown nexredirect:nexredirect /var/lib/corex-nexredirect/*.db*
|
||
|
|
sudo systemctl start caddy corex-nexredirect
|
||
|
|
```
|
||
|
|
|
||
|
|
## Fragen / Bugs
|
||
|
|
|
||
|
|
GitHub Issues: https://github.com/CoreXManagement/CoreX-NexRedirect/issues
|
||
|
|
|
||
|
|
→ Zurück zu [[Home]]
|