Migrate from GitHub to Forgejo: update all release/update URLs
This commit is contained in:
parent
8317eed72a
commit
3f07578fb4
11 changed files with 100 additions and 39 deletions
61
.forgejo/workflows/release.yml
Normal file
61
.forgejo/workflows/release.yml
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
name: Build & Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
env:
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
|
||||
- name: Package release
|
||||
run: |
|
||||
TAG=${GITHUB_REF_NAME}
|
||||
tar -czf nexredirect-next-${TAG}.tar.gz \
|
||||
.next public package.json package-lock.json \
|
||||
scripts/ bin/ systemd/ types/ server.ts next.config.js
|
||||
sha256sum nexredirect-next-${TAG}.tar.gz > nexredirect-checksums-${TAG}.txt
|
||||
echo "TAG=$TAG" >> $GITHUB_OUTPUT
|
||||
id: pkg
|
||||
|
||||
- name: Create release
|
||||
run: |
|
||||
TAG=${GITHUB_REF_NAME}
|
||||
curl -fsSL \
|
||||
-H "Authorization: Bearer ${{ secrets.FORGEJO_TOKEN }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
"https://forgejo.mgmt.corexmanagement.de/api/v1/repos/admin_hg/cx-nexredirect/releases" \
|
||||
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"draft\":false,\"prerelease\":false}"
|
||||
|
||||
- name: Upload assets
|
||||
run: |
|
||||
TAG=${GITHUB_REF_NAME}
|
||||
RELEASE_ID=$(curl -s \
|
||||
-H "Authorization: Bearer ${{ secrets.FORGEJO_TOKEN }}" \
|
||||
"https://forgejo.mgmt.corexmanagement.de/api/v1/repos/admin_hg/cx-nexredirect/releases/tags/$TAG" \
|
||||
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
|
||||
for FILE in nexredirect-next-${TAG}.tar.gz nexredirect-checksums-${TAG}.txt; do
|
||||
curl -fsSL \
|
||||
-H "Authorization: Bearer ${{ secrets.FORGEJO_TOKEN }}" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
"https://forgejo.mgmt.corexmanagement.de/api/v1/repos/admin_hg/cx-nexredirect/releases/$RELEASE_ID/assets?name=$FILE" \
|
||||
--data-binary @"$FILE"
|
||||
done
|
||||
30
README.md
30
README.md
|
|
@ -24,28 +24,28 @@ Self-hosted Domain-Redirect-Server mit Web-Admin-UI und Per-Domain-Analytics. Vi
|
|||
## Installation
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo 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://github.com/CoreXManagement/CoreX-NexRedirect/wiki)**.
|
||||
→ Vollständige Anleitung im **[Wiki](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki)**.
|
||||
|
||||
## Dokumentation
|
||||
|
||||
Komplette Doku ist im **[GitHub Wiki](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki)**:
|
||||
Komplette Doku ist im **[GitHub Wiki](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/wiki)**:
|
||||
|
||||
- [Installation](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Installation)
|
||||
- [DNS Setup](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/DNS-Setup)
|
||||
- [Domain Management](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Domain-Management)
|
||||
- [Sunset Pages](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Sunset-Pages)
|
||||
- [Analytics & Reports](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Analytics-&-Reports)
|
||||
- [Bot Filter](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Bot-Filter)
|
||||
- [CLI](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/CLI)
|
||||
- [API](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/API)
|
||||
- [Updates](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Updates)
|
||||
- [Architecture](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Architecture)
|
||||
- [Troubleshooting](https://github.com/CoreXManagement/CoreX-NexRedirect/wiki/Troubleshooting)
|
||||
- [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
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ Komplette Doku ist im **[GitHub Wiki](https://github.com/CoreXManagement/CoreX-N
|
|||
## Lokale Entwicklung
|
||||
|
||||
```bash
|
||||
git clone https://github.com/CoreXManagement/CoreX-NexRedirect
|
||||
git clone https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect
|
||||
cd CoreX-NexRedirect
|
||||
npm install
|
||||
npm run dev
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ const execFileAsync = promisify(execFile);
|
|||
|
||||
const VALID_TAG = /^v?\d+\.\d+\.\d+(-[\w.]+)?$/;
|
||||
|
||||
const REPO = process.env.NEXREDIRECT_REPO || "CoreXManagement/CoreX-NexRedirect";
|
||||
const REPO = process.env.NEXREDIRECT_REPO || "admin_hg/cx-nexredirect";
|
||||
|
||||
export type ReleaseInfo = {
|
||||
tag_name: string;
|
||||
|
|
@ -43,11 +43,11 @@ function cmpVersions(a: string, b: string): number {
|
|||
|
||||
export async function fetchLatestRelease(includePrerelease = false): Promise<ReleaseInfo | null> {
|
||||
const url = includePrerelease
|
||||
? `https://api.github.com/repos/${REPO}/releases?per_page=10`
|
||||
: `https://api.github.com/repos/${REPO}/releases/latest`;
|
||||
? `https://forgejo.mgmt.corexmanagement.de/api/v1/repos/${REPO}/releases?per_page=10`
|
||||
: `https://forgejo.mgmt.corexmanagement.de/api/v1/repos/${REPO}/releases/latest`;
|
||||
try {
|
||||
const res = await fetch(url, {
|
||||
headers: { "Accept": "application/vnd.github+json", "User-Agent": "corex-nexredirect" },
|
||||
headers: { "Accept": "application/json", "User-Agent": "corex-nexredirect" },
|
||||
});
|
||||
if (!res.ok) return null;
|
||||
const data = await res.json();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# CoreX NexRedirect — One-line install
|
||||
# Usage: curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo bash
|
||||
# Usage: curl -sSL https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/raw/branch/main/scripts/install.sh | sudo bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ if ! command -v apt-get >/dev/null 2>&1; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
REPO="${NEXREDIRECT_REPO:-CoreXManagement/CoreX-NexRedirect}"
|
||||
REPO="${NEXREDIRECT_REPO:-admin_hg/cx-nexredirect}"
|
||||
INSTALL_DIR="${NEXREDIRECT_DIR:-/opt/corex-nexredirect}"
|
||||
DATA_DIR="${NEXREDIRECT_DATA_DIR:-/var/lib/corex-nexredirect}"
|
||||
SERVICE_USER="nexredirect"
|
||||
|
|
@ -53,7 +53,7 @@ fi
|
|||
echo "==> Latest Release ermitteln"
|
||||
TARGET_TAG="${NEXREDIRECT_TAG:-}"
|
||||
if [[ -z "$TARGET_TAG" ]]; then
|
||||
TARGET_TAG=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null \
|
||||
TARGET_TAG=$(curl -fsSL "https://forgejo.mgmt.corexmanagement.de/api/v1/repos/${REPO}/releases/latest" 2>/dev/null \
|
||||
| grep -m1 '"tag_name"' | sed -E 's/.*"tag_name": *"([^"]+)".*/\1/' || true)
|
||||
fi
|
||||
if [[ -z "$TARGET_TAG" ]]; then
|
||||
|
|
@ -70,7 +70,7 @@ if [[ -d "$INSTALL_DIR/.git" ]]; then
|
|||
git -C "$INSTALL_DIR" reset --hard --quiet "$TARGET_REF" 2>/dev/null || git -C "$INSTALL_DIR" reset --hard --quiet "origin/$TARGET_REF"
|
||||
else
|
||||
rm -rf "$INSTALL_DIR"
|
||||
git clone --quiet "https://github.com/${REPO}.git" "$INSTALL_DIR"
|
||||
git clone --quiet "https://forgejo.mgmt.corexmanagement.de/${REPO}.git" "$INSTALL_DIR"
|
||||
git -C "$INSTALL_DIR" checkout --quiet "$TARGET_REF" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
|
|
@ -84,8 +84,8 @@ sudo -u "$SERVICE_USER" -H bash -c "cd '$INSTALL_DIR' && npm ci --no-audit --no-
|
|||
echo "==> Prebuilt .next/ versuchen (SHA256-verifiziert)"
|
||||
PREBUILT_OK=0
|
||||
if [[ -n "$TARGET_TAG" ]]; then
|
||||
ASSET_URL="https://github.com/${REPO}/releases/download/${TARGET_TAG}/nexredirect-next-${TARGET_TAG}.tar.gz"
|
||||
CHECKSUM_URL="https://github.com/${REPO}/releases/download/${TARGET_TAG}/nexredirect-checksums-${TARGET_TAG}.txt"
|
||||
ASSET_URL="https://forgejo.mgmt.corexmanagement.de/${REPO}/releases/download/${TARGET_TAG}/nexredirect-next-${TARGET_TAG}.tar.gz"
|
||||
CHECKSUM_URL="https://forgejo.mgmt.corexmanagement.de/${REPO}/releases/download/${TARGET_TAG}/nexredirect-checksums-${TARGET_TAG}.txt"
|
||||
if curl -fsSL -o /tmp/next-build.tgz "$ASSET_URL" 2>/dev/null; then
|
||||
VERIFIED=0
|
||||
if curl -fsSL -o /tmp/next-checksums.txt "$CHECKSUM_URL" 2>/dev/null; then
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
set -euo pipefail
|
||||
|
||||
TAG="${1:-}"
|
||||
REPO="${NEXREDIRECT_REPO:-CoreXManagement/CoreX-NexRedirect}"
|
||||
REPO="${NEXREDIRECT_REPO:-admin_hg/cx-nexredirect}"
|
||||
INSTALL_DIR="${NEXREDIRECT_DIR:-/opt/corex-nexredirect}"
|
||||
SERVICE_USER="nexredirect"
|
||||
|
||||
|
|
@ -30,7 +30,7 @@ if [[ -f /etc/caddy/Caddyfile ]]; then
|
|||
fi
|
||||
|
||||
if [[ -z "$TAG" ]]; then
|
||||
TAG=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null \
|
||||
TAG=$(curl -fsSL "https://forgejo.mgmt.corexmanagement.de/api/v1/repos/${REPO}/releases/latest" 2>/dev/null \
|
||||
| grep -m1 '"tag_name"' | sed -E 's/.*"tag_name": *"([^"]+)".*/\1/' || true)
|
||||
fi
|
||||
|
||||
|
|
@ -46,8 +46,8 @@ sudo -u "$SERVICE_USER" -H bash -c "cd '$INSTALL_DIR' && npm ci --no-audit --no-
|
|||
|
||||
PREBUILT_OK=0
|
||||
if [[ -n "$TAG" ]]; then
|
||||
ASSET_URL="https://github.com/${REPO}/releases/download/${TAG}/nexredirect-next-${TAG}.tar.gz"
|
||||
CHECKSUM_URL="https://github.com/${REPO}/releases/download/${TAG}/nexredirect-checksums-${TAG}.txt"
|
||||
ASSET_URL="https://forgejo.mgmt.corexmanagement.de/${REPO}/releases/download/${TAG}/nexredirect-next-${TAG}.tar.gz"
|
||||
CHECKSUM_URL="https://forgejo.mgmt.corexmanagement.de/${REPO}/releases/download/${TAG}/nexredirect-checksums-${TAG}.txt"
|
||||
if curl -fsSL -o /tmp/next-build.tgz "$ASSET_URL" 2>/dev/null; then
|
||||
VERIFIED=0
|
||||
if curl -fsSL -o /tmp/next-checksums.txt "$CHECKSUM_URL" 2>/dev/null; then
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Bot Filter
|
||||
|
||||
NexRedirect zählt nur "echte" Besucher — Scanner, Crawler und Monitoring-Tools werden serverseitig herausgefiltert. Kombination mehrerer Heuristiken in [`lib/hits.ts`](https://github.com/CoreXManagement/CoreX-NexRedirect/blob/main/lib/hits.ts):
|
||||
NexRedirect zählt nur "echte" Besucher — Scanner, Crawler und Monitoring-Tools werden serverseitig herausgefiltert. Kombination mehrerer Heuristiken in [`lib/hits.ts`](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/blob/main/lib/hits.ts):
|
||||
|
||||
## 1. HTTP-Method
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Du hast viele Domains, die nur auf eine andere Webseite weiterleiten sollen —
|
|||
## Schnellstart
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo bash
|
||||
curl -sSL https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/main/scripts/install.sh | sudo bash
|
||||
```
|
||||
|
||||
Setup-Wizard danach: `http://<server-ip>/setup`
|
||||
|
|
@ -40,4 +40,4 @@ Next.js 15 + TypeScript + TailwindCSS + better-sqlite3 (eine Datei) + Caddy (Aut
|
|||
|
||||
## Lizenz
|
||||
|
||||
[MIT](https://github.com/CoreXManagement/CoreX-NexRedirect/blob/main/LICENSE) — viel Spaß damit.
|
||||
[MIT](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/blob/main/LICENSE) — viel Spaß damit.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
## One-Line Install
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo bash
|
||||
curl -sSL https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/main/scripts/install.sh | sudo bash
|
||||
```
|
||||
|
||||
Das Script:
|
||||
|
|
@ -48,7 +48,7 @@ Wer das Curl-Pipe-Bash nicht mag:
|
|||
sudo apt install -y caddy nodejs git sqlite3 chromium
|
||||
sudo useradd --system --home /opt/corex-nexredirect --shell /usr/sbin/nologin nexredirect
|
||||
sudo mkdir -p /opt/corex-nexredirect /var/lib/corex-nexredirect
|
||||
sudo git clone https://github.com/CoreXManagement/CoreX-NexRedirect /opt/corex-nexredirect
|
||||
sudo git clone https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect /opt/corex-nexredirect
|
||||
sudo chown -R nexredirect:nexredirect /opt/corex-nexredirect /var/lib/corex-nexredirect
|
||||
sudo -u nexredirect bash -c "cd /opt/corex-nexredirect && npm ci && npm run build"
|
||||
sudo cp /opt/corex-nexredirect/systemd/corex-nexredirect.service /etc/systemd/system/
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Custom Server (`server.ts`) prüft beim Resolve eines Hosts:
|
|||
|
||||
Hit wird beim ERSTEN Request gezählt (Notice-Render). Continue-Click zählt NICHT als zweiter Hit (würde sonst doppeln).
|
||||
|
||||
HTML-Page ist in [`lib/sunset-html.ts`](https://github.com/CoreXManagement/CoreX-NexRedirect/blob/main/lib/sunset-html.ts) — schwarz auf weiß, kein JS, kein externes Asset, kein Tracking. Funktioniert auch ohne JS-Browser.
|
||||
HTML-Page ist in [`lib/sunset-html.ts`](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/blob/main/lib/sunset-html.ts) — schwarz auf weiß, kein JS, kein externes Asset, kein Tracking. Funktioniert auch ohne JS-Browser.
|
||||
|
||||
## Wichtige Hinweise
|
||||
|
||||
|
|
|
|||
|
|
@ -131,6 +131,6 @@ sudo systemctl start caddy corex-nexredirect
|
|||
|
||||
## Fragen / Bugs
|
||||
|
||||
GitHub Issues: https://github.com/CoreXManagement/CoreX-NexRedirect/issues
|
||||
GitHub Issues: https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/issues
|
||||
|
||||
→ Zurück zu [[Home]]
|
||||
|
|
|
|||
|
|
@ -15,6 +15,6 @@
|
|||
|
||||
---
|
||||
|
||||
[Repo](https://github.com/CoreXManagement/CoreX-NexRedirect)
|
||||
[Releases](https://github.com/CoreXManagement/CoreX-NexRedirect/releases)
|
||||
[Issues](https://github.com/CoreXManagement/CoreX-NexRedirect/issues)
|
||||
[Repo](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect)
|
||||
[Releases](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/releases)
|
||||
[Issues](https://forgejo.mgmt.corexmanagement.de/admin_hg/cx-nexredirect/issues)
|
||||
|
|
|
|||
Loading…
Reference in a new issue