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