Blogaro!

Portando o Blogaro para Texted

Created by Thiago Guedes on 2024-05-28 04:20:58

Tags: #rust  

Depois de 7 anos congelado, estou revivendo o Blogaro. Estava querendo voltar a escrever em português, mas não sabia mais como lidar com os constantes furos de segurança do wordpress.

Wordpress usa mysql para armazenar os dados. De quando em quando alguma pessoa sem o que fazer, inseria posts a comentários usando algum furo de segurança do wordpress. Isso dava no saco, mas eu fui levando e deletando posts e comentários indo de venda de serviços a pornografia. Até que um dia...

Eu recebo um e-mail de uma empresa dizendo que eu estava falando do produto deles sem autorização e que eles iriam exigir que o meu site fosse removido se eu não tirasse os posts do ar. Eu estava na Itália, sem meu computador, não conseguindo fazer nada. Essa foi a gota d'água.

Bom, para começar, eu não queria passar por isso novamente, então eu decidi que iria usar uma plataforma onde meus posts não ficariam num banco de dados ou algo assim e ficariam num formato aberto que eu não precisasse mais converter - Escolhido o Texted como plataforma e Markdown como formato.

(PS: Eu fiz o texted com esse propósito no passado para hospedar o thiagocafe.com. Eu já tinha problemas com o wordpress e por isso quis fazer algo novo)

Primeiro passo - criar o blog

Eu fiz basicamente isso para o bootstrap inicial: Creating a new blog with Texted

Depois, usando o excelente Obsidian, eu copiava e colava o conteúdo do post, diretamente do wordpress (renderizado) para o obsidian.

Com todos os posts convertidos, agora é hora de hospedar.

Segundo passo, hospedando o blog

Passos e workflow

  1. O resultado do texted-tool boostrap, junto com todos os posts criados foi diretamente para o git.
  2. Numa VPS, eu instalei o texted e clonei o repositório git com todos os posts
  3. Criei um serviço para rodar o texted
  4. Instalei o apache e criei vhosts para o blogaro (tenho outras para outros blogs)

Criando o serviço

Criar um serviço no systemd é muito simples. Basta criar um arquivo com a configuração:

E.g. /etc/systemd/system/blogaro.service

[Unit]
Description=Blogaro

[Service]
ExecStart=/var/www/meublog/run.sh
User=bloguser
Group=bloguser
Restart=always

[Install]
WantedBy=multi-user.target

E o arquivo run.sh

#!/bin/bash

cd /var/www/meublog
/var/www/meublog/texted 2>&1 >> /tmp/meublog.log

Criando o vhost no apache

O primeiro bloco do arquivo /etc/httpd/conf.d/001-blogaro-le-ssl.conf redireciona para https quando um request é http. O segundo, contém o proxy para o texted, configurado para usar a porta 8081 e o certificado SSL feito usando Let's Encrypt

<VirtualHost *:80>
	ProxyPreserveHost On
	ProxyRequests Off
	ServerName blogaro.com.br
	ServerAlias www.blogaro.com.br
	ProxyPass / http://localhost:8081/
	ProxyPassReverse / http://localhost:8081/
	RewriteEngine on
	RewriteCond %{SERVER_NAME} =www.blogaro.com.br [OR]
	RewriteCond %{SERVER_NAME} =blogaro.com.br [OR]
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ProxyPreserveHost On
	ProxyRequests Off
	ServerName blogaro.com.br
	ServerAlias www.blogaro.com.br
	ProxyPass / http://localhost:8081/
	ProxyPassReverse / http://localhost:8081/
	RewriteEngine on
	Include /etc/letsencrypt/options-ssl-apache.conf
	SSLCertificateFile /etc/letsencrypt/live/blogaro.com.br/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/blogaro.com.br/privkey.pem
</VirtualHost>
</IfModule>

E para terminar, executei o texted e reiniciei o apache

systemctl restart blogaro.service
systemctl restart httpd.service

Até