💾 Archived View for wiki.archipielago.uno › admin.gmi captured on 2024-02-05 at 09:12:35. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-11-04)
-=-=-=-=-=-=-
Notas sobre tareas de administración de nuestra infra.
Un cronjob ejecuta dos veces al mes el siguiente comando que renueva los certificados que están por expirar:
# certbot renew --nginx
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
Las tres-eses (?)
Primero hay que crear un subdominio dirigido a la dirección IP del Archipiélago I.
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.
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.
(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"