From 3928b36bcefd3caea667139763f3124def4a3b12 Mon Sep 17 00:00:00 2001 From: Max HeadRoom Date: Fri, 5 Jun 2026 05:26:23 +0200 Subject: [PATCH] Update peertube.md --- peertube.md | 278 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 274 insertions(+), 4 deletions(-) diff --git a/peertube.md b/peertube.md index 361e4e8..53cbef4 100644 --- a/peertube.md +++ b/peertube.md @@ -1,14 +1,208 @@ # Desplegament de PeerTube en LXC no privilegiat amb NFS via Proxmox -## 1. Objectiu +## Objectiu -Aquest document descriu el desplegament d'un servidor PeerTube sobre un contenidor LXC no privilegiat en Proxmox. +Aquest document descriu el desplegament d'un servidor PeerTube sobre un contenidor LXC no privilegiat dins d'un Proxmox. L'emmagatzematge persistent dels vídeos es proporciona des d'un dataset de TrueNAS exportat per NFS. El muntatge NFS es realitza al host Proxmox i es presenta al contenidor mitjançant un bind mount. > **Decisió tècnica:** no es munta NFS directament dins del contenidor perquè es vol mantenir el LXC com a no privilegiat. -## 2. Arquitectura +# Punt zero: accés al laboratori amb túnels SSH + +## 0. Objectiu + +Abans de començar el desplegament de PeerTube, cal definir com accedirem als diferents serveis interns de la infraestructura. + +En aquest escenari, el servidor Proxmox té accés públic per SSH, però alguns serveis interns només són accessibles des de la xarxa privada del laboratori. Per aquest motiu utilitzarem túnels SSH. + +Els túnels SSH permeten obrir un port local al nostre ordinador i redirigir-lo cap a un servei remot que només és visible des del servidor al qual ens connectem. + +## 0.1 Arquitectura d'accés + +```text +Ordinador local + │ + │ SSH + ▼ +Host Proxmox amb IP pública + │ + ├── accés a xarxa privada + │ + ├── TrueNAS + │ + ├── contenidors LXC + │ + └── serveis web interns +``` + +> **Decisió tècnica:** no exposarem directament tots els serveis interns a Internet. Accedirem a les interfícies d'administració mitjançant túnels SSH quan sigui necessari. + +## 0.2 Túnel SSH simple + +Un túnel local SSH segueix aquesta estructura: + +```bash +ssh -L PORT_LOCAL:IP_DESTI:PORT_DESTI usuari@servidor_ssh +``` + +On: + +```text +PORT_LOCAL → port que obrim al nostre ordinador +IP_DESTI → IP vista des del servidor SSH +PORT_DESTI → port real del servei intern +usuari → usuari SSH +servidor_ssh → màquina pública a la qual sí que podem entrar +``` + +## 0.3 Exemple: accedir a la GUI de Proxmox + +Si Proxmox escolta al port `8006`, podem crear un túnel així: + +```bash +ssh -L 8006:127.0.0.1:8006 root@IP_PUBLICA_PROXMOX +``` + +Després, al navegador local obrim: + +```text +https://localhost:8006 +``` + +> **Nota:** el navegador pot mostrar un avís de certificat perquè estem entrant per `localhost` però el certificat no està emès per aquest nom. + +## 0.4 Exemple: accedir a TrueNAS des de fora + +Si TrueNAS té la IP privada `192.168.100.101` i la seva interfície web escolta al port `443`, podem fer: + +```bash +ssh -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX +``` + +Després obrim al navegador: + +```text +https://localhost:8443 +``` + +En aquest cas: + +```text +localhost:8443 + │ + ▼ +SSH cap a Proxmox + │ + ▼ +192.168.100.101:443 +``` + +## 0.5 Exemple: accedir a un servei web dins d'un LXC + +Si el contenidor PeerTube té una IP privada, per exemple `192.168.100.150`, i el servei web escolta al port `9000`: + +```bash +ssh -L 9000:192.168.100.150:9000 USER@IP_PUBLICA_PROXMOX +``` + +Després obrim: + +```text +http://localhost:9000 +``` + +## 0.6 Exemple: accedir per SSH a un contenidor intern + +Si el contenidor no té SSH exposat públicament, però és visible des del host Proxmox, podem fer un túnel cap al seu port 22: + +```bash +ssh -L 2222:192.168.100.150:22 USER@IP_PUBLICA_PROXMOX +``` + +Després, en una altra terminal: + +```bash +ssh admin@localhost -p 2222 +``` + +Això equival a entrar per SSH al contenidor passant a través del host Proxmox. + +## 0.7 Mantenir el túnel obert sense shell remota + +Si només volem obrir el túnel però no volem quedar-nos dins d'una shell interactiva del servidor, podem afegir `-N`: + +```bash +ssh -N -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX +``` + +Si també volem enviar-lo al background: + +```bash +ssh -f -N -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX +``` + +> **Atenció:** si s'envia el túnel al background amb `-f`, després pot ser menys evident recordar quin procés SSH l'està mantenint obert. + +## 0.8 Veure túnels SSH actius + +Per veure processos SSH oberts: + +```bash +ps aux | grep ssh +``` + +Per veure ports locals escoltant: + +```bash +ss -ltnp +``` + +Exemple de sortida esperada: + +```console +LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("ssh",pid=12345,fd=5)) +``` + +## 0.9 Tancar un túnel SSH + +Si el túnel està obert en una terminal, es pot tancar amb: + +```text +CTRL + C +``` + +Si està en background, cal localitzar el procés: + +```bash +ps aux | grep ssh +``` + +I matar-lo: + +```bash +kill PID +``` + +Per exemple: + +```bash +kill 12345 +``` + +## 0.10 Recomanació d'ús + +Per aquesta documentació utilitzarem túnels SSH per accedir temporalment a serveis interns com: + +```text +- interfície web de TrueNAS +- serveis web interns de contenidors LXC +- SSH cap a contenidors sense exposició pública +``` + +Aquesta estratègia redueix l'exposició directa de serveis administratius a Internet i permet treballar sobre la xarxa interna del laboratori amb més control. + +## Arquitectura ```text TrueNAS @@ -23,6 +217,73 @@ LXC no privilegiat │ ▼ Docker Compose + PeerTube + +# Dataset TrueNAS per a PeerTube + +## Objectiu + +Crear un dataset específic a TrueNAS per emmagatzemar les dades persistents de PeerTube i exportar-lo per NFS cap al host Proxmox. + +## Arquitectura + +```text +TrueNAS + │ + │ export NFS + ▼ +Host Proxmox + │ + │ bind mount + ▼ +LXC Ubuntu no privilegiat +``` + +## Dataset creat + +```text +Pool: AV +Dataset: PeerTube +Path: /mnt/AV/PeerTube +``` + +## Opcions del dataset + +```text +Compression: lz4 +Atime: Off +Share type: Generic +``` + +> **Decisió tècnica:** el muntatge NFS es farà al host Proxmox, no dins del contenidor LXC, per mantenir el contenidor com a no privilegiat. + +## Export NFS + +```text +Path: /mnt/AV/PeerTube +Authorized host: IP_DEL_PROXMOX +``` + +## Prova de muntatge des de Proxmox + +```bash +mkdir -p /mnt/truenas-peertube +mount -t nfs 192.168.100.101:/mnt/AV/PeerTube /mnt/truenas-peertube +``` + +## Comprovació + +```bash +df -h | grep peertube +touch /mnt/truenas-peertube/prova-escriptura.txt +ls -lah /mnt/truenas-peertube +``` + + + + + + + ``` ## 3. Convencions de documentació @@ -82,7 +343,7 @@ localhost:8443 del teu ordinador Pas 6. Obre TrueNAS al navegador Ara, al navegador del teu ordinador local, obre: https://localhost:8443 -Accepta l’avís de certificat si surt. +Accepta l'avís de certificat si surt. Hauries de veure la pantalla de login de TrueNAS. @@ -94,3 +355,12 @@ Hauries de veure la pantalla de login de TrueNAS. mount.nfs: Operation not permitted + + + + + + + + +