# Peertube

* `/data/peertube-data` : stoquage persistent de peertube
* `/etc/peertube` : dossier contenant les fichiers de configuration
* `/etc/peertube/peertube.nginx.conf` : configuration nginx
## 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
# Créer un pod pour Nginx et Peertube
podman pod create --name peertube --restart=unless-stopped -p 127.0.0.1:9000:9000 -p 0.0.0.0:1935:1935 -p 127.0.0.1:9080:9080

# Créer le conteneur Nginx
podman create --name peertube-nginx-1.25.3-1 --pod peertube \
  --restart=unless-stopped \
  -v /etc/peertube/peertube.nginx.conf:/etc/nginx/conf.d/default.conf:Z \
  -v /etc/peertube/:/config:Z \
  -v /data/peertube-data/storage:/var/www/peertube/storage:Z \
  nginx:1.25.3
# Démarrer Nginx
podman start peertube-nginx-1.25.3-1

# Créer le conteneur Peertube
podman create --name peertube-5.0.1-1 --pod peertube \
  --restart=unless-stopped \
  -v /data/peertube-data/:/var/lib/peertube:Z \
  -v /etc/peertube/:/config:Z \
  chocobozzz/peertube:v5.0.1-bullseye
# 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`