Hola a todos. Mi nombre es Lee y he estado autoalojando Discourse de forma intermitente desde 2013. Recuerdo tener que lidiar con rbenv para empezar. Recuerdo tener que compilar nginx con Phusion Passenger para que las cosas funcionaran. Recuerdo haber discutido con @sam probablemente hace diez malditos años que cambiar a Docker era capitular a la debilidad del desarrollador de “me funciona en mi directorio personal y mi pesadilla de archivos ocultos” (¡y estar completamente equivocado!). Recuerdo la primera vez que escuché la frase “bike-shedding”. Para citar al hombre, lo recuerdo todo.
Después de estar ausente durante varios años, he tenido la ocasión de volver a autoalojar Discourse como reemplazo de los comentarios nativos de Wordpress en un sitio de noticias meteorológicas del área de Houston que normalmente tiene ~10k PV/día, pero durante los huracanes, puede tener ~2 millones de PV/día para ~1 millón de visitantes únicos. Hemos tenido problemas con los comentarios nativos de Wordpress durante años, pero a partir del pasado miércoles, estamos en vivo con Discourse autoalojado. (¡Y en Graviton3, nada menos! En serio, simplemente funciona y es genial).
Aquí está el punto al que quiero llegar: es 2025, y como autoalojador, sigo lidiando con la gestión manual de mi espacio de imágenes de docker. Presento una historia sobre /dev/root, contada en fragmentos de código, después de menos de una semana en producción:
[11:49:56] 0 ✓ (1.8ms)
root@discourse:/var/discourse # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 21G 9.6G 69% /
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 3.1G 1.1M 3.1G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 128K 3.6K 125K 3% /sys/firmware/efi/efivars
/dev/nvme1n1p16 891M 109M 720M 14% /boot
/dev/nvme1n1p15 98M 6.4M 92M 7% /boot/efi
/dev/nvme0n1 32G 346M 30G 2% /var/discourse
tmpfs 1.6G 12K 1.6G 1% /run/user/1001
overlay 30G 21G 9.6G 69% /var/lib/docker/overlay2/5a649418bbfc064f488e895572eec1ace487a3eaa324fe1d8e3b395e6c5e3645/merged
[11:49:59] 0 ✓ (4.8ms)
root@discourse:/var/discourse # ./launcher cleanup
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: discourse/base@sha256:3696bdf18652b5455bd33795ec3b8e0f201c17a04f0e0126fc0317ed821373cd
....
[una enormidad de líneas redactadas]
....
Total reclaimed space: 12.43GB
[11:50:34] 0 ✓ (27.8s)
root@discourse:/var/discourse # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 6.9G 24G 23% /
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 3.1G 1.1M 3.1G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 128K 3.6K 125K 3% /sys/firmware/efi/efivars
/dev/nvme1n1p16 891M 109M 720M 14% /boot
/dev/nvme1n1p15 98M 6.4M 92M 7% /boot/efi
/dev/nvme0n1 32G 346M 30G 2% /var/discourse
tmpfs 1.6G 12K 1.6G 1% /run/user/1001
overlay 30G 6.9G 24G 23% /var/lib/docker/overlay2/5a649418bbfc064f488e895572eec1ace487a3eaa324fe1d8e3b395e6c5e3645/merged
[11:55:28] 0 ✓ (3.3ms)
root@discourse:/var/discourse #
Los amo. Amo Discourse. Estoy casado con el producto y tengo la intención de seguir usándolo más o menos para siempre.
Pero, como… ¿por qué? ¿Por qué es 2025 y yo, por mi cuenta, sigo lidiando con la gestión manual de launcher cleanup? ¿Por qué la gestión de imágenes no es una función inherente de launcher?
De nuevo, los amo. Elegí Discourse para SCW porque creo en lo que han construido y me encanta usarlo. Pero es como si la mitad del volumen de arranque de mi pobre AMI estuviera ocupado con basura inútil que podría —al menos si entiendo el lado técnico de las cosas— ser gestionada automáticamente.
No pretendo quejarme, solo estoy volviendo a revisar después de unos años alejado de la silla de administrador. Me encanta la detección de spam con IA y la clasificación con IA, especialmente en un foro meteorológico donde las publicaciones políticamente cargadas sobre el cambio climático (a favor o en contra) son una característica habitual. Gracias por todo <3