Dos instancias Pleroma en un mismo Servidor con LXD y Nginx

El servidor donde instalaremos todo esto lo llamaremos a partir de ahora dom0, y los dominios de los dos pleromas se llamarán pleroma1.net y pleroma2.net

Crear tres contenedores

lxc launch images:debian/buster/amd64 pleroma1
lxc launch images:debian/buster/amd64 pleroma2
lxc launch images:debian/buster/amd64 nginx

Lista los contenedores

lxc list

Necesitamos asegurar que cada contenedor tenga un IP diferente y fija. Aquí fijamos el IP del pleroma1 (10.188.77.05 es un ejemplo)

lxc stop pleroma1
lxc network attach lxdbr0 pleroma1 eth0 eth0
lxc config device set nginx eth0 ipv4.address 10.188.77.05
lxc start pleroma1

Compruébalo con lxc list

Pleroma

Ahora entra en cada contenedor pleroma y instalar pleroma, sin seguir las instrucciónes sobre nginx.

lxc exec pleroma1 bash

Nota: No se instalan ni nginx, ni letsencrypt en los contenedores pleroma

Nginx

Instala nginx y la configuración de los dos pleromas.

Desde dom0 copia la configuración por omisión de nginx que facilita la gente de pleroma hasta dom0

lxc file pull pleroma1/opt/pleroma/installation/pleroma.nginx /tmp

Y copialo hasta el contenedor nginx

lxc push /tmp/pleroma.nginx nginx/etc/nginx/sites-available/pleroma.nginx

Entra en el contenedor nginx

lxc exec nginx bash

/etc/hosts

Primero modificamos /etc/hosts para que nginx pueda reenviar el tráfico hacía el contenedor de pleroma correspondiente. En este ejemplo los IPs están inventados. Para saber cuales son los tuyos haz lxc list desde dom0

10.188.77.15    pleroma1
10.188.77.25    pleroma2

nginx sites-available

Creamos las dos configs, una para cada pleroma.

cp /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-available/pleroma1
cp /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-available/pleroma2

Modificaciones

Hay que modificar un par de lineas en las configs.

Busca esta linea y cambia en los dos sitios de la misma linea pleroma por pleroma1

proxy_cache_path /tmp/pleroma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m max_size=10g
                 inactive=720m use_temp_path=off;

Haz lo mismo en la linea

proxy_cache        pleroma_media_cache;

Y por último , cambia 127.0.0.1 por el nombre que has definido en /etc/hosts

proxy_pass         http://127.0.0.1:4000;

Letsencrypt certs

Ahora es el momento de instalar los certificados

Resolución de nombre

Arráncalo todo y los dos pleromas estarán en marcha pero, aunque los pleromas federan con todo el planeta tal como esperamos, no se federan entre ellos. pleroma1 no ve a pleroma2 y viceversa.

Tenemos que decir a cada uno donde está el otro.

En cada contenedor pleroma hay que entrar y trucar la resolución del nombre para que las peticiones lleguen al contenedor nginx.

Fíjate en el IP del contenedor nginx, pon que es 10.188.77.35

Entra en pleroma1 y modifica /etc/hosts para que el fqdn de pleroma2 apunta al nginx

lxc exec pleroma1 bash

y añade al /etc/hosts

10.188.77.35	pleroma2.net

Haz los mismo con pleroma2, y ya estaría.


by tuttle