Como Contribuir no Blog do AkitaOnRails usando Docker
Contribuir em projetos open source pode ser um saco quando você precisa configurar um ambiente de desenvolvimento complexo. No blog do AkitaOnRails, isso significava instalar Hugo Extended, Go, Ruby e suas dependências. Mas agora temos uma solução muito mais simples: Docker.
O Problema
Antes, pra contribuir no blog você precisava:
- Instalar Hugo Extended
- Instalar Go
- Instalar Ruby
- Configurar todas as dependências
- Gerar o índice de posts manualmente
Isso criava barreiras pra novos contribuidores e podia causar conflitos com outras instalações no sistema. Um inferno.
A Solução: Docker
Agora você só precisa do Docker e Docker Compose. Tudo o resto roda em containers isolados.
Setup Rápido
# Clone o repositório
git clone https://github.com/akitaonrails/akitaonrails.github.io.git
cd akitaonrails.github.io
# Inicie o ambiente
./scripts/dev.sh start
# Acesse o blog
open http://localhost:1313
Pronto! O blog está rodando e você pode começar a contribuir.
Comandos Úteis
O projeto inclui scripts que facilitam o desenvolvimento:
# Ver todos os comandos disponíveis
./scripts/dev.sh help
# Criar um novo post
./scripts/dev.sh new-post "Título do Meu Post"
# Ver logs do servidor
./scripts/dev.sh logs
# Gerar índice de posts
./scripts/dev.sh generate-index
# Parar o ambiente
./scripts/dev.sh stop
Criando um Post
Criar um novo post é super simples:
./scripts/dev.sh new-post "Como Contribuir no Blog do AkitaOnRails"
O script automaticamente:
- Cria a estrutura de diretórios com a data atual
- Gera um arquivo
index.md
com front matter básico - O servidor Hugo recarrega automaticamente
Estrutura de um Post
O arquivo criado terá esta estrutura:
---
title: "Título do Post"
date: "2025-08-29"
draft: false
description: "Descrição do post"
tags: [tag1, tag2]
categories: [categoria]
---
Conteúdo do post aqui...
Vantagens do Docker
Para Contribuidores
- Setup rápido: Apenas Docker necessário
- Ambiente isolado: Não interfere com sistema local
- Hot reload: Mudanças aparecem automaticamente
- Reproduzível: Funciona igual para todos
Para o Projeto
- Menos issues: Ambiente consistente
- Mais contribuidores: Barreira de entrada menor
- Manutenção: Fácil de atualizar dependências
Como Funciona
O ambiente Docker inclui:
- Hugo Extended: Gerador de sites estáticos
- Go: Para módulos Hugo
- Ruby: Para script de geração de índice
- Volumes: Para hot reload dos arquivos
O docker-compose.yml
mapeia os diretórios locais para o container, então quando você edita um arquivo, o Hugo detecta a mudança e recarrega automaticamente.
Desenvolvimento Local (Alternativa)
Se preferir não usar Docker, ainda é possível instalar tudo localmente:
# Gerar índice
cd content && ruby generate_index.rb
# Rodar servidor
hugo server --logLevel debug --disableFastRender -p 1313
Mas o Docker é muito mais prático!
Próximos Passos
- Teste o ambiente: Execute
./scripts/dev.sh start
- Crie um post: Use
./scripts/dev.sh new-post
- Explore o código: Veja como personalizar layouts
- Contribua: Faça um Pull Request
Dica: O ambiente Docker salva automaticamente suas mudanças e recarrega o servidor. Basta editar os arquivos e ver as mudanças em tempo real! 🚀