Olá a todos. Meu nome é Lee e eu hospedo o Discourse por conta própria intermitentemente desde 2013. Lembro-me de ter que me virar com o rbenv para sequer começar. Lembro-me de ter que compilar o nginx com Phusion Passenger para fazer as coisas funcionarem. Lembro-me de discutir com o @sam provavelmente dez anos atrás que mudar para Docker era ceder à fraqueza do desenvolvedor “funciona no meu diretório inicial e no meu pesadelo de dotfiles” (e estar completamente errado!). Lembro-me da primeira vez que ouvi a frase “bike-shedding”. Para citar o homem, eu lembro de tudo.
Depois de estar ausente por vários anos, tive a ocasião de voltar a hospedar o Discourse por conta própria como substituto para comentários nativos do WordPress em um site de meteorologia da área de Houston que normalmente tem cerca de 10 mil PV/dia, mas durante furacões, pode ter cerca de 2 milhões de PV/dia para cerca de 1 milhão de visitantes únicos. Lutamos com os comentários nativos do WordPress por anos, mas a partir da última quarta-feira, estamos no ar com o Discourse auto-hospedado. (E em Graviton3, nada menos! Sério, simplesmente funciona e é ótimo.)
Aqui está o ponto que estou chegando: é 2025, e como um auto-hospedeiro, ainda estou lidando com o gerenciamento manual do meu espaço de imagem docker. Apresento uma história sobre /dev/root, contada em trechos de código, após menos de uma semana em produção:
[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
....
[um monte de linhas redigidas]
....
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 #
Eu amo vocês. Eu amo o Discourse. Estou casado com o produto e pretendo continuar usando-o mais ou menos para sempre.
Mas, tipo… só, por quê. Por que é 2025 e eu, pessoalmente, por minha própria conta, ainda estou me virando com launcher cleanup? Por que o gerenciamento de imagens não é uma função inerente do launcher?
Novamente, eu amo vocês. Escolhi o Discourse para o SCW porque acredito no que vocês construíram e adoro usá-lo. Mas tipo… metade do volume de boot da minha pobre AMI está ocupada com lixo inútil que poderia — pelo menos se eu entender o lado técnico das coisas — ser gerenciado automaticamente.
Não quero reclamar — apenas estou voltando depois de alguns anos longe da cadeira de administrador. Eu amo a detecção de spam por IA e a triagem por IA, especialmente em um fórum de meteorologia onde posts politicamente carregados sobre mudanças climáticas (a favor ou contra) são uma característica regular. Obrigado por tudo <3