Repo-Bereitstellung mit Proxmox-Container (pkg.pfeiffer-privat.de) #1

Open
opened 2026-08-26 10:01:16 +02:00 by ppfeiffer · 1 comment
Owner

Ziel

Bereitstellung des Debian-Package-Repos (pkg.pfeiffer-privat.de) klären – als Proxmox-Container statt/neben der bisher dokumentierten Docker/Portainer-Variante.

Ausgangslage

  • wissen/debian-repo-docs enthält bereits einen 8-Phasen-Fahrplan (GPG-Setup, reprepro, Nginx, NPM-Proxy) für eine Docker/Portainer-Umsetzung – bisher nur Dokumentation, noch nicht deployed (Stand Phase 2 offen).
  • ppfeiffer/debian-repo und ppfeiffer/system2mqtt existieren als Repos noch nicht.
  • Geplante Struktur ist multi-arch angelegt: dists/{bookworm,trixie}/main/{binary-amd64,binary-arm64,source}.
  • TNN2.0 (Projekte_AX25/TNN2.0) hat bereits eine funktionierende CI, die ein natives amd64-.deb baut und aktuell nur als Forgejo-Release-Asset veröffentlicht (nicht ins Apt-Repo).

Zu klären

  • Proxmox-Container (LXC oder VM?) als Zielplattform statt Docker-Stack – welche Vor-/Nachteile gegenüber der bestehenden Portainer-Doku?
  • reprepro + Nginx im Container: eigenständiger LXC oder Teil eines bestehenden Hosts?
  • GPG-Signing-Setup (Key-Ablage, Secrets) im Proxmox-Kontext
  • Netzwerk-Anbindung (Caddy/NPM-Reverse-Proxy für pkg.pfeiffer-privat.de)
  • Anbindung der bestehenden TNN2.0-Release-Pipeline (reprepro includedeb) an das neue Repo-Ziel
  • Migration der bereits vorhandenen Doku aus wissen/debian-repo-docs auf die Proxmox-Variante

Referenzen

  • wissen/debian-repo-docs (FAHRPLAN.md, docker-compose.yml, nginx.conf)
  • Projekte_AX25/TNN2.0 (.forgejo/workflows/build.yml – release-Job)
## Ziel Bereitstellung des Debian-Package-Repos (pkg.pfeiffer-privat.de) klären – als Proxmox-Container statt/neben der bisher dokumentierten Docker/Portainer-Variante. ## Ausgangslage - `wissen/debian-repo-docs` enthält bereits einen 8-Phasen-Fahrplan (GPG-Setup, reprepro, Nginx, NPM-Proxy) für eine Docker/Portainer-Umsetzung – bisher nur Dokumentation, noch nicht deployed (Stand Phase 2 offen). - `ppfeiffer/debian-repo` und `ppfeiffer/system2mqtt` existieren als Repos noch nicht. - Geplante Struktur ist multi-arch angelegt: `dists/{bookworm,trixie}/main/{binary-amd64,binary-arm64,source}`. - TNN2.0 (`Projekte_AX25/TNN2.0`) hat bereits eine funktionierende CI, die ein natives amd64-.deb baut und aktuell nur als Forgejo-Release-Asset veröffentlicht (nicht ins Apt-Repo). ## Zu klären - [ ] Proxmox-Container (LXC oder VM?) als Zielplattform statt Docker-Stack – welche Vor-/Nachteile gegenüber der bestehenden Portainer-Doku? - [ ] reprepro + Nginx im Container: eigenständiger LXC oder Teil eines bestehenden Hosts? - [ ] GPG-Signing-Setup (Key-Ablage, Secrets) im Proxmox-Kontext - [ ] Netzwerk-Anbindung (Caddy/NPM-Reverse-Proxy für pkg.pfeiffer-privat.de) - [ ] Anbindung der bestehenden TNN2.0-Release-Pipeline (reprepro includedeb) an das neue Repo-Ziel - [ ] Migration der bereits vorhandenen Doku aus `wissen/debian-repo-docs` auf die Proxmox-Variante ## Referenzen - wissen/debian-repo-docs (FAHRPLAN.md, docker-compose.yml, nginx.conf) - Projekte_AX25/TNN2.0 (.forgejo/workflows/build.yml – release-Job)
Author
Owner

Update: Forgejo-MCP-Server für Issue-Automatisierung

Zusatz zum LXC-Setup (pkg.pfeiffer-privat.de): Eigener LXC-Container für einen Forgejo-MCP-Server, damit Issues direkt aus dem AI-Assistant heraus bearbeitet werden können.

URL: mcp.home.pfeiffer-privat.de

Finale Lösung: raohwork/forgejo-mcp (Go-Binary, HTTP-Modus) statt der ursprünglich geplanten Node/npx-Variante (@ric_/forgejo-mcp), die sich als reines stdio-Paket herausstellte und für einen dauerhaften systemd-Service ungeeignet war.

1. LXC-Container (Debian 13, Trixie)

pct create 151 local:vztmpl/debian-13-standard_13.0-1_amd64.tar.zst \
  --hostname mcp-forgejo --cores 1 --memory 512 --swap 512 \
  --rootfs local-lvm:4 --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --unprivileged 1 --features nesting=0 --start 1

MAC via pct config 151 | grep net0 für die DHCP-Reservierung.

2. Go installieren & Binary bauen

pct exec 151 -- apt install -y golang-go
pct exec 151 -- bash -c "GOBIN=/usr/local/bin go install github.com/raohwork/forgejo-mcp@latest"

3. Forgejo-Zugriffstoken

Scope eng fassen (nur issue/repository), unter Einstellungen → Anwendungen → Zugriffstoken.

4. systemd-Service

[Unit]
Description=Forgejo MCP HTTP Server
After=network.target

[Service]
User=forgejo-mcp
ExecStart=/usr/local/bin/forgejo-mcp http --address :3000 --server https://git.pfeiffer-privat.de --token <TOKEN>
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

5. NPM-Proxy-Host + Absicherung

  • Domain: mcp.home.pfeiffer-privat.de → Forward auf <LXC-IP>:3000
  • Wichtig: Der Go-Server bringt im Single-User-Modus keine eigene HTTP-Auth mit. Absicherung erfolgt über eine NPM Access List mit Basic-Auth auf dem Proxy-Host.

6. Claude Custom Connector

  • URL: https://mcp.home.pfeiffer-privat.de
  • Advanced Settings → Request Headers → authorization: Basic <base64(user:pass)>

Status

✅ Verbindung getestet und funktionsfähig — dieser Kommentar wurde direkt über den Connector aus Claude gepostet.

Offene Punkte

  • LXC-Container angelegt, Go-Binary installiert, systemd-Service läuft
  • NPM-Proxy + Basic-Auth eingerichtet
  • Claude Custom Connector verbunden und verifiziert
  • Verwendetes Forgejo-Token nochmals auf minimalen Scope prüfen
  • Dokumentation in wissen/debian-repo-docs um Proxmox-Variante ergänzen
## Update: Forgejo-MCP-Server für Issue-Automatisierung **Zusatz zum LXC-Setup (pkg.pfeiffer-privat.de):** Eigener LXC-Container für einen Forgejo-MCP-Server, damit Issues direkt aus dem AI-Assistant heraus bearbeitet werden können. **URL:** `mcp.home.pfeiffer-privat.de` **Finale Lösung:** `raohwork/forgejo-mcp` (Go-Binary, HTTP-Modus) statt der ursprünglich geplanten Node/npx-Variante (`@ric_/forgejo-mcp`), die sich als reines stdio-Paket herausstellte und für einen dauerhaften systemd-Service ungeeignet war. ### 1. LXC-Container (Debian 13, Trixie) ```bash pct create 151 local:vztmpl/debian-13-standard_13.0-1_amd64.tar.zst \ --hostname mcp-forgejo --cores 1 --memory 512 --swap 512 \ --rootfs local-lvm:4 --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --unprivileged 1 --features nesting=0 --start 1 ``` MAC via `pct config 151 | grep net0` für die DHCP-Reservierung. ### 2. Go installieren & Binary bauen ```bash pct exec 151 -- apt install -y golang-go pct exec 151 -- bash -c "GOBIN=/usr/local/bin go install github.com/raohwork/forgejo-mcp@latest" ``` ### 3. Forgejo-Zugriffstoken Scope eng fassen (nur `issue`/`repository`), unter `Einstellungen → Anwendungen → Zugriffstoken`. ### 4. systemd-Service ```ini [Unit] Description=Forgejo MCP HTTP Server After=network.target [Service] User=forgejo-mcp ExecStart=/usr/local/bin/forgejo-mcp http --address :3000 --server https://git.pfeiffer-privat.de --token <TOKEN> Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target ``` ### 5. NPM-Proxy-Host + Absicherung - Domain: `mcp.home.pfeiffer-privat.de` → Forward auf `<LXC-IP>:3000` - **Wichtig:** Der Go-Server bringt im Single-User-Modus keine eigene HTTP-Auth mit. Absicherung erfolgt über eine NPM Access List mit Basic-Auth auf dem Proxy-Host. ### 6. Claude Custom Connector - URL: `https://mcp.home.pfeiffer-privat.de` - Advanced Settings → Request Headers → `authorization: Basic <base64(user:pass)>` ### Status ✅ Verbindung getestet und funktionsfähig — dieser Kommentar wurde direkt über den Connector aus Claude gepostet. ### Offene Punkte - [x] LXC-Container angelegt, Go-Binary installiert, systemd-Service läuft - [x] NPM-Proxy + Basic-Auth eingerichtet - [x] Claude Custom Connector verbunden und verifiziert - [ ] Verwendetes Forgejo-Token nochmals auf minimalen Scope prüfen - [ ] Dokumentation in `wissen/debian-repo-docs` um Proxmox-Variante ergänzen
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ppfeiffer/Infrastruktur#1
No description provided.