← Volver atrás

Tareas Admin

Notas sobre tareas de administración de nuestra infra.

infra

Actualización de emojis copiados

En la página de federación indicamos de qué instancias copiamos los emojis

Federación

Para que se actualicen en el front-end, parece que lo que hay que hacer es la siguiente secuencia de dos pasos:

(1) borrar el archivo pack.json

Es decir, desde la línea de comandos, como root:

# rm /var/lib/pleroma/static/emoji/stolen/pack.json

(una pensaría que esto se haría automáticamente al recargar los emojis, pero hasta ahora la experiencia ha sido que no es así)

(2) recargar los emojis

Esto desde admin-fe, en las settings de emoji:

Admin FE - settings / emoji

Probablemente se actualice solo, pero no está de más presionar "Reload emoji" y también "Import packs from the server filesystem".


Renovación de certificados TLS (Let's Encrypt)

Un cronjob ejecuta dos veces al mes el siguiente comando que renueva los certificados que están por expirar:

# certbot renew --nginx

Prosody

Adicionalmente, para Prosody, el servidor de XMPP, que requiere su propia copia del certificado de archipielago.uno, cada mes se ejecutan los siguientes dos comandos:

# prosodyctl --root cert import /etc/letsencrypt/live
# systemctl restart prosody.service

Creación de nuevas islas

Las tres-eses (?)

1) subdominio

Primero hay que crear un subdominio dirigido a la dirección IP del Archipiélago I.

2) script

Con eso listo, tenemos un script en el directorio home de root que se ejecuta de la siguiente forma:

# ./creaisla.sh NOMBRE_DE_ISLA

El password que aparece tiene que copiarse y pegarse dos veces en la prompt. Hay que tomar nota de ese password y del generado para el wiki, pues hay que compartirlos a la nueva isla.

Más abajo en esta página hemos puesto los detalles de lo que hace el script.

3) sync

Agrega manualmente el nombre de la isla al archivo /root/sync.sh, que se ve algo así:

#!/bin/bash
users=(diez azul lind hache caogena aves ness miel vladomiro)
for u in ${users[*]}
do
	echo $u
	unison -batch /var/lichen/$u/ /home/$u/public_lichen/
	cp -vu /home/$u/lichen.htpasswd /var/lichen/$u.htpasswd
	chown -R $u: /home/$u/public_lichen/
done

Este script se ejecuta cada minuto y es el que mantiene sincronizados los directorios servidos públicamente desde /var/lichen/ con los directorios home/ de cada isla.

Detalles del script creaisla.sh

(Nota: los pasos de generación de password están ofuscados intencionalmente)

Lo primero que hace el script es crear le user, preguntándonos su password:

#!/bin/bash
u=$1
p="PASSWORD GENERADO AUTOMÁTICAMENTE"
echo "creando ${u}, ${p}"
adduser $u # en este paso hay que pegar dos veces el password 
usermod -aG archipielago $u

luego crea el directorio (duplicado) para lichen, con los permisos correspondientes:

mkdir "/var/lichen/${u}"
unison -batch "/home/${u}/public_lichen" "/var/lichen/${u}"
chown -R www-data: "/var/lichen/${u}"

crea el directorio para el repo de git, y el enlace simbólico:

echo "creando repos..."
mkdir "/srv/cgit/repos/${u}"
ln -s "/srv/cgit/repos/${u}" "baul"

también haz un enlace simbólico para acceder al directorio de radio costa:

echo "creando enlace para radiocosta..."
ln -s "/srv/radiocosta" "/home/${u}/radiocosta"

después configura nginx usando una plantilla default de http, y llama a certbot para el certificado TLS:

echo "configurando nginx y certbot..."

sed "s/USER/${u}/" /etc/nginx/sites-available/template-lichen-http > "/etc/nginx/sites-available/${u}-archi1"
ln -s "/etc/nginx/sites-available/${u}-archi1" "/etc/nginx/sites-enabled/${u}-archi1"
systemctl reload nginx
certbot -d "${u}.archipielago.uno" --nginx

posteriormente crea la configuración para chamorrx en gemini:

echo "creando configuración para chamorrx en gemini..."

geminiconfig="/opt/chamorrx/config.txt"
cp $geminiconfig .

cat >> $geminiconfig <<EOF
${u}.archipielago.uno /var/lichen/${u}
EOF

echo "reiniciando chamorrx..."

systemctl restart chamorrx

agrega a la isla al wiki:

echo "agregando user a wiki..."

pwiki="PASSWORD GENERADO AUTOMÁTICAMENTE"
echo $pwiki
sudo -u www-data htpasswd -b /var/lichen/wiki.htpasswd $u $pwiki

se crea la cuenta de xmpp:

echo "creando cuenta xmpp:"

prosodyctl register $u "archipielago.uno" $p

y al final se genera la invitación al Mar:

# pleroma
echo "generando invitación al Mar..."

cd /opt/akkoma/; sudo -Hu akkoma MIX_ENV=prod mix pleroma.user invite --max-use 1; cd -

bueno, al final final se imprime un aviso y recordatorio del paso 3)

echo "ya quedó!"
echo "recuerda agregar a ${u} a /root/sync.sh"