# Video

**Software**: Peertube
**Web oficial**: [https://joinpeertube.org/](https://joinpeertube.org/)  
**Documentación oficial**: [https://docs.joinpeertube.org/](https://docs.joinpeertube.org/)  
**Foro/Matrix de soporte**: [https://framacolibri.org/c/peertube/38](https://framacolibri.org/c/peertube/38)

**Ubicaciones importantes**:`/var/www/peertube `  
**Logs relevantes**:

### Comandos de gestión

**Crear un usuario nuevo**  
No hay descripción en la documentación de cómo gestionar usuarios a través de CLI.  
_Se puede hacer mediante la interfaz web, en esta página: [https://video.anartist.org/admin/users/create](https://video.anartist.org/admin/users/create)_

**Actualizar**  
*¡¡Siempre hay que leer la instrucciones en la [documentación oficial](https://docs.joinpeertube.org/install-any-os?id=upgrade) y leer el [changelog](https://github.com/Chocobozzz/PeerTube/blob/develop/CHANGELOG.md) de la nueva versión!!*  
*¡¡Es muy recomendable hacer una copia de seguridad antes de actualizar!!*
```bash
cd /var/www/peertube/peertube-latest/scripts && sudo -H -u peertube ./upgrade.sh
```
Reiniciar Peertube y comprobar logs:
```bash
sudo systemctl restart peertube && sudo journalctl -fu peertube
```
Más información [**en esta guía**](https://docs.joinpeertube.org/install-any-os?id=upgrade)

---

### Diario de Instalación

#### Servidor XMPP para chat en emisión Live de Peertube
**Instalar Prosody, un servidor XMPP:**
```bash
sudo apt install prosody
```
**Editar el archivo de configuración de Prosody, de tal manera que concuerde con la instancia**
```bash
sudo nano /etc/prosody/conf.avail/video.anartist.org.cfg.lua
```
**Copiar** el contenido de aquí: [virtualhost.cfg.lua](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/documentation/examples/prosody/virtualhost.cfg.lua) ; y **cambiar** los **nombres** predeterminados por aquellos de la instancia.  
Para el apartado _Component_, `room.xxx.xxx.xx`

Guardar el documento y salir

**Crear un enlace estático entre dos archivos**
```bash
sudo su -

cd /etc/prosody/conf.d

ln -s ../conf.avail/video.anartist.org.cfg.lua
```

**Importar el certificado TLS para Prosody**
```bash
prosodyctl --root cert import /etc/letsencrypt/live/
```
**Reiniciar Prosody** y, después, **comprobar su estado**
```bash
systemctl restart prosody
systemctl status prosody
```
**Añadir el código posterior al final del archivo de configuración de Nginx para Peertube, antes de su último `}`**
```bash
nano /etc/nginx/sites-enabled/peertube
```
Este es el código:
```
location /http-bind {
    proxy_pass  http://localhost:5280/http-bind;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_buffering off;
    tcp_nodelay on;
  }

  location /xmpp-websocket {
    proxy_pass http://localhost:5280/xmpp-websocket;
    proxy_http_version 1.1;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_read_timeout 900s;
  }
 ```

**Comprobar el estado de Nginx** (para buscar errores) y **reiniciar Nginx**
```bash
nginx -t
systemctl reload nginx
```

_**Luego instalar el plugin `livechat` desde la interfaz web de Peertube (>3.0.1)** y seguir los pasos especificados [**aquí**](https://github.com/JohnXLivingston/peertube-plugin-livechat#settings)_

### Errores conocidos
#### YarnPkg invalid signature
A veces al ejecutar `sudo apt-get update` se produce este error que no deja proseguir con la actualización de los repositorios:
```bash
[...]
Err:4 https://dl.yarnpkg.com/debian stable InRelease
  The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Hit:8 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Fetched 17.1 kB in 1s (22.4 kB/s)                 
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
W: Failed to fetch https://dl.yarnpkg.com/debian/dists/stable/InRelease  The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
W: Some index files failed to download. They have been ignored, or old ones used instead.
```

El problema surge porque las claves del repositorio `https://dl.yarnpkg.com/debian` no están actualizadas y verificadas. El sistema operativo no deja proseguir.

Es un [problema del repositorio de Yarn conocido](https://github.com/yarnpkg/yarn/issues/6865) y he [aquí una solución](https://github.com/yarnpkg/yarn/issues/6865#issuecomment-450789338):  
`curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -`

Después de esto, el problema debería estar resuelto.