Compare commits

...

2 commits

Author SHA1 Message Date
Hendrik Garske
8e28a654bc Remove GitHub Actions workflows 2026-06-04 22:16:22 +02:00
Hendrik Garske
ee403ebb14 Archive: project moved to Forgejo 2026-06-04 22:14:30 +02:00
4 changed files with 10 additions and 163 deletions

View file

@ -1,22 +0,0 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
ci:
runs-on: [self-hosted, Linux, X64, docker]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- run: npm ci --no-audit --no-fund
- run: npm run build
- run: npm test --if-present

View file

@ -1,47 +0,0 @@
name: Release Build
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
build:
runs-on: [self-hosted, Linux, X64, docker]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- name: Install deps
run: npm ci --no-audit --no-fund
- name: Build Next.js
run: npm run build
- name: Package .next/
run: |
TAG="${GITHUB_REF_NAME}"
tar -czf "nexredirect-next-${TAG}.tar.gz" .next
ls -lh "nexredirect-next-${TAG}.tar.gz"
- name: Compute SHA256
run: |
TAG="${GITHUB_REF_NAME}"
sha256sum "nexredirect-next-${TAG}.tar.gz" > "nexredirect-checksums-${TAG}.txt"
cat "nexredirect-checksums-${TAG}.txt"
- name: Attach to release
uses: softprops/action-gh-release@v2
with:
files: |
nexredirect-next-*.tar.gz
nexredirect-checksums-*.txt
tag_name: ${{ github.ref_name }}
fail_on_unmatched_files: true

View file

@ -1,27 +0,0 @@
name: Security Scan
on:
push:
branches: [main]
pull_request:
branches: ["**"]
permissions:
contents: read
jobs:
audit:
name: npm Audit
runs-on: [self-hosted, Linux, X64, docker]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- run: npm ci --no-audit --no-fund
- run: npm audit --audit-level=high
continue-on-error: true

View file

@ -1,72 +1,15 @@
# 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.
> **⚠️ Dieses Repository ist nicht mehr aktiv.**
>
> Das Projekt wird jetzt auf unserem eigenen Forgejo-Server gehostet:
>
> **[https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect)**
>
> Bitte alle Issues, Pull Requests und Releases dort einreichen.
## 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 + Live-Übersicht** aller Records (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA)
- **Domain-Gruppen** für gleiches Ziel über mehrere Domains
- **Sunset-Notice-Pages** vor Redirect (per Domain oder Bulk)
- **Per-Domain-Analytics** (Hits, eindeutige Besucher, Geo, "Tote Domains")
- **Bot-Filter** mit Browser-Signal-Heuristik (Sec-Fetch, Accept-Language) + persistenter IP-Blocklist
- **PDF-Export** (Gesamt + Per-Domain) via headless Chromium
- **CSV-Import + Export** für Domains und Hits
- **Audit-Log** aller administrativen Aktionen
- **Public REST-API** mit Token-Auth und Scopes
- **Multi-User** mit Rollen (admin / user)
- **Self-Update** via GitHub-Releases (UI-Banner + Auto-Update opt-in)
- **Webhook-Notifications** bei Events (Domain-Verify-Fail etc.)
- **DSGVO-freundlich**: IP-Hash mit täglich rotierendem Salt, kein Klartext
Self-hosted Domain-Redirect-Server mit Web-Admin-UI und Per-Domain-Analytics.
## Installation
```bash
curl -sSL https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/main/scripts/install.sh | sudo bash
```
Anschließend Setup unter `http://<server-ip>/setup` aufrufen.
→ Vollständige Anleitung im **[Wiki](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki)**.
## Dokumentation
Komplette Doku ist im **[GitHub Wiki](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki)**:
- [Installation](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Installation)
- [DNS Setup](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/DNS-Setup)
- [Domain Management](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Domain-Management)
- [Sunset Pages](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Sunset-Pages)
- [Analytics & Reports](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Analytics-&-Reports)
- [Bot Filter](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Bot-Filter)
- [CLI](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/CLI)
- [API](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/API)
- [Updates](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Updates)
- [Architecture](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Architecture)
- [Troubleshooting](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki/Troubleshooting)
## 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, optional)
- NextAuth Credentials + bcryptjs
- puppeteer-core + Chromium (PDF-Export)
## Lokale Entwicklung
```bash
git clone https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect
cd CoreX-NexRedirect
npm install
npm run dev
```
Setup unter `http://localhost:3000/setup`.
## Lizenz
[MIT](LICENSE) — viel Spaß damit.
**Neue Heimat:** https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect