101 lines
2.9 KiB
Markdown
101 lines
2.9 KiB
Markdown
|
|
# Installation
|
||
|
|
|
||
|
|
## One-Line (Debian/Ubuntu)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh | sudo bash
|
||
|
|
```
|
||
|
|
|
||
|
|
Optional mit MaxMind-Lizenz für Geo-Lookup:
|
||
|
|
```bash
|
||
|
|
sudo MAXMIND_LICENSE_KEY=xxxxxxxx bash -c \
|
||
|
|
"$(curl -sSL https://raw.githubusercontent.com/CoreXManagement/CoreX-NexRedirect/main/scripts/install.sh)"
|
||
|
|
```
|
||
|
|
|
||
|
|
Das Script:
|
||
|
|
|
||
|
|
1. Prüft Debian/Ubuntu
|
||
|
|
2. Installiert Caddy (offizielles Repo), Node.js 20, git
|
||
|
|
3. Legt System-User `nexredirect` an
|
||
|
|
4. Cloned Repo nach `/opt/corex-nexredirect`
|
||
|
|
5. `npm ci && npm run build`
|
||
|
|
6. Holt GeoLite2-Country (falls Lizenz gesetzt)
|
||
|
|
7. Schreibt systemd-Unit `corex-nexredirect.service`
|
||
|
|
8. Schreibt minimale Caddyfile-Bootstrap-Config
|
||
|
|
9. `systemctl enable --now caddy corex-nexredirect`
|
||
|
|
10. Druckt Setup-URL
|
||
|
|
|
||
|
|
## Manueller Install
|
||
|
|
|
||
|
|
Wer das Curl-Pipe-Bash nicht mag:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo apt-get install -y caddy nodejs git
|
||
|
|
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 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/
|
||
|
|
sudo systemctl daemon-reload
|
||
|
|
sudo systemctl enable --now caddy corex-nexredirect
|
||
|
|
```
|
||
|
|
|
||
|
|
Bootstrap-Caddyfile in `/etc/caddy/Caddyfile`:
|
||
|
|
```
|
||
|
|
:80 {
|
||
|
|
reverse_proxy localhost:3000
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Verzeichnisse
|
||
|
|
|
||
|
|
| Pfad | Inhalt |
|
||
|
|
|------|--------|
|
||
|
|
| `/opt/corex-nexredirect` | Code (git checkout) |
|
||
|
|
| `/var/lib/corex-nexredirect/nexredirect.db` | SQLite (alle Daten) |
|
||
|
|
| `/var/lib/corex-nexredirect/GeoLite2-Country.mmdb` | Geo-DB (optional) |
|
||
|
|
| `/etc/caddy/Caddyfile` | Caddy-Config (auto-generated) |
|
||
|
|
| `/etc/systemd/system/corex-nexredirect.service` | systemd-Unit |
|
||
|
|
| `/etc/sudoers.d/corex-nexredirect` | Sudo für update.sh |
|
||
|
|
|
||
|
|
## Backup / Restore
|
||
|
|
|
||
|
|
Sicherung:
|
||
|
|
```bash
|
||
|
|
sudo tar -czf nexredirect-backup-$(date +%F).tar.gz \
|
||
|
|
/var/lib/corex-nexredirect/nexredirect.db \
|
||
|
|
/etc/caddy/Caddyfile
|
||
|
|
```
|
||
|
|
|
||
|
|
Restore:
|
||
|
|
```bash
|
||
|
|
sudo systemctl stop corex-nexredirect caddy
|
||
|
|
sudo tar -xzf nexredirect-backup-XXXX.tar.gz -C /
|
||
|
|
sudo chown nexredirect:nexredirect /var/lib/corex-nexredirect/nexredirect.db
|
||
|
|
sudo systemctl start caddy corex-nexredirect
|
||
|
|
```
|
||
|
|
|
||
|
|
SQLite ist im WAL-Modus — Hot-Backup ohne Stop:
|
||
|
|
```bash
|
||
|
|
sqlite3 /var/lib/corex-nexredirect/nexredirect.db ".backup /tmp/db.sqlite"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Logs
|
||
|
|
|
||
|
|
```bash
|
||
|
|
journalctl -u corex-nexredirect -f
|
||
|
|
journalctl -u caddy -f
|
||
|
|
```
|
||
|
|
|
||
|
|
## Deinstallation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo systemctl disable --now corex-nexredirect
|
||
|
|
sudo rm /etc/systemd/system/corex-nexredirect.service /etc/sudoers.d/corex-nexredirect
|
||
|
|
sudo systemctl daemon-reload
|
||
|
|
sudo userdel nexredirect
|
||
|
|
sudo rm -rf /opt/corex-nexredirect /var/lib/corex-nexredirect
|
||
|
|
# Caddy + Caddyfile bei Bedarf separat
|
||
|
|
```
|