Tareas Admin
Notas sobre tareas de administración de nuestra infra.
infraActualización de emojis copiados
En la página de federación indicamos de qué instancias copiamos los emojis
FederaciónPara 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 / emojiProbablemente 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"