cx-nexredirect/README.md

87 lines
2.8 KiB
Markdown

# CoreX NexRedirect
Self-hosted Domain-Redirect-Server mit Web-Admin-UI und Per-Domain-Analytics. Viele Domains zeigen via DNS auf einen einzigen Server, der jede Domain auf das jeweilige Ziel weiterleitet und protokolliert, welche Domains tatsächlich noch genutzt werden — ideal um tote Domains zu identifizieren.
## Features
- **One-Line Install** auf Debian/Ubuntu (Caddy + Node + systemd)
- **Web-Admin-UI** mit Setup-Wizard, Domain-Verwaltung, Analytics
- **Auto-HTTPS** via Caddy (Let's Encrypt automatisch)
- **DNS-Validierung** beim Hinzufügen einer Domain (zeigt fehlende Records)
- **Domain-Gruppen** für gleiches Ziel über mehrere Domains
- **Per-Domain-Analytics** (Hits, Geo, Top-Domains, "Tote Domains")
- **Public REST-API** mit Token-Auth und Scopes
- **Self-Update** via GitHub-Releases (UI-Banner + Auto-Update opt-in)
- **DSGVO-freundlich**: IP-Hash mit täglich rotierendem Salt, kein Klartext
## Installation
```bash
curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo bash
```
Optional vorab MaxMind-Lizenz für Geo-Lookup:
```bash
export MAXMIND_LICENSE_KEY=xxx
curl ... | sudo -E bash
```
Anschließend Setup unter `http://<server-ip>/setup` aufrufen und Admin-Account erstellen.
Details: [docs/INSTALL.md](docs/INSTALL.md)
## Domain hinzufügen
1. **Admin-UI** → "Domains" → "+ Domain hinzufügen"
2. Domain + Ziel-URL (oder Gruppe) eingeben
3. **DNS-Records** beim DNS-Provider eintragen (A/AAAA auf Server-IP)
4. **Validieren** — Server prüft DNS, aktiviert Domain, Caddy reload
Alternativ via API:
```bash
curl -X POST -H "Authorization: Bearer nrx_..." -H "Content-Type: application/json" \
-d '{"domain":"alt-firma.de","target_url":"https://www.firma.de"}' \
https://admin.firma.de/api/v1/domains
```
## API
Tokens werden im Web-UI unter **Einstellungen → API-Tokens** erstellt. Tokens haben Scopes (`read:domains`, `write:domains`, `read:analytics`, `read:hits`).
```bash
curl -H "Authorization: Bearer nrx_..." https://admin.firma.de/api/v1/domains
```
Vollständige Doku: [docs/API.md](docs/API.md)
## Updates
Standardmäßig prüft der Server stündlich auf neue Releases und zeigt einen Banner in der UI. **Keine Auto-Updates** außer aktiviert.
- Manuell: Settings → "Update X.Y.Z installieren"
- Auto: Settings → Auto-Update-Toggle aktivieren
Details: [docs/UPDATE.md](docs/UPDATE.md)
## Stack
- Next.js 15 + TypeScript + TailwindCSS + Radix UI + Recharts
- better-sqlite3 (eine Datei in `/var/lib/corex-nexredirect/nexredirect.db`)
- Caddy (Auto-HTTPS, Reverse-Proxy)
- MaxMind GeoLite2-Country (lokal)
- NextAuth Credentials + bcryptjs
## Lokale Entwicklung
```bash
git clone https://github.com/CoreXManagement/CoreX-NexRedirect
cd CoreX-NexRedirect
npm install
npm run dev
```
Setup unter `http://localhost:3000/setup`.
## Lizenz
Internal — © CoreX Management