# Peertube

* `/data/peertube-data` : stoquage persistent de peertube
* `/opt/peertube/config` : dossier contenant les fichiers de configuration
* `/opt/peertube/config/peertube.nginx.conf` : configuration nginx

Le podman tourne avec l'user peertube.

```
podman pod [start|stop] peertube
```

## Base de données

Installation de postgres :

```
dnf install postgresql-server postgresql-contrib
postgresql-setup --initdb --unit postgresql
systemctl enable postgresql
sudo systemctl start postgresql
```

Création de la base de données :

```shell
# création de l'utilisateur
sudo -u postgres createuser -P --interactive
# création de la base de donnée
sudo -u postgres createdb -O peertube peertube_prod
```

Autoriser les containers à accéder à la base de données en ajoutant cette ligne à la fin du fichier `~postgres/data/pg_hba.conf` :

```
# Containers
host    all             all             10.88.0.0/24            md5
```

## Pare-feu
Vérifier le firewall pour autorisé le trafic vers / depuis le réseau de podman, pour [nftables](https://wiki.ppsfleet.navy/books/administration-generale/page/nftables) ajouter ces lignes à la tables `inet filter` :

```
iifname cni-podman0 accept
oifname cni-podman0 accept
```

## Peertube

Lancement de l'instance :

```sh
podman create --name peertube-nginx-1.31.4 --pod peertube \
  --restart=unless-stopped \
  -v /opt/peertube/config/peertube.nginx.conf:/etc/nginx/conf.d/default.conf:Z \
  -v /opt/peertube/config/:/config:Z \
  -v /data/peertube-data/storage:/var/www/peertube/storage:Z \
  nginx:1.31.4
# Démarrer Nginx
podman start peertube-nginx-1.31.4


# Créer le conteneur Peertube
podman create --name peertube-8.2.4 --pod peertube \
  --restart=unless-stopped \
  -v /data/peertube-data/:/var/lib/peertube:Z \
  -v /etc/peertube/:/config:Z \
  chocobozzz/peertube:v8.2.4-trixie
# Démarrer Peertube
podman start peertube-5.0.1-1
```

#### Configuration Caddy

```nginx
tube.fede.re {
    #respond "Ongoing maintenance, we'll be back soon :)" 503
    reverse_proxy {
        to localhost:9080
    }
}
```

#### Mise à jour de la configuration Nginx

La configuration à copier est à partir du commentaire `# Application` jusqu'à la fin du bloc. Après copie, il faut supprimer les blocs faisant référence au dossier `peertube-latest/client`.

#### En cas de problèmes

Au redémarrage d'Altaïr peertube risque de ne pas redémarrer correctement, si ce n'est pas up vérifier :
 - que redis écoute bien sur 10.88.0.1 (`lsof -i :6379`) sinon le redémarrer via `systemctl restart redis`
 - que postgres écoute bien sur 10.88.0.1 (`lsof -i :5432`) sinon le redémarrer via `systemctl restart postgres`
 - Redemmarer le pod: `podman pod start peertube`
 
#### Troubleshouting 4.0.0

Python3 n'est pas installé dans le conteneur. Il faut installer python3 et symlink l'executable, depuis le conteneur:
* `apt install -y python3` 
* `ln -s /usr/bin/python3 /usr/bin/local/python`