Gitea é uma solução leve de servidor Git auto-hospedado, escrita em Go, que compila em um único binário. Seu design prioriza facilidade de instalação e baixo consumo de recursos, tornando-o ideal para uso pessoal ou em ambientes com hardware limitado. Diferente de alternativas mais pesadas como o GitLab, que pode exigir até 4 GB de RAM, o Gitea opera eficientemente com menos de 1 GB, sendo suportado em múltiplas plataformas, incluindo Linux, macOS, Windows e arquiteturas ARM.
Instalação via Docker
Para implantar o Gitea de forma simplificada, utilizaremos o Docker. Primeiro, obtenha a imagem oficial do repositório, verificando a versão adequada para sua arquitetura. Por exemplo, em máquinas ARM, pode-se especificar uma tag como 1.21-arm64.
docker pull gitea/gitea:1.21-arm64
Em seguida, prepare um diretório no host para armazenar os dados persistentes do Gitea:
mkdir -p /srv/gitea/storage
Execute o container com os parâmetros necessários, mapeando volumes e portas. Ajuste as variáveis de ambiente para sincronizar IDs de usuário e grupo, evitando problemas de permissão:
docker run -d \
--name meu-gitea \
-e USER_UID=1000 \
-e USER_GID=1000 \
-v /srv/gitea/storage:/data \
-p 8080:3000 \
-p 2222:22 \
--restart unless-stopped \
gitea/gitea:1.21-arm64
Este comando mapeia a porta 3000 do container para 8080 no host para a interface web, e a porta SSH 22 para 2222. O parâmetro --restart unless-stopped garante que o container reinicie automaticamente.
Verificação e logs
Confirme se o container está em execução usando:
docker ps | grep meu-gitea
Se não aparecer, liste todos os containers com docker ps -a para diagnosticar paradas inesperadas. Para inspecionar logs, utilize:
docker logs meu-gitea --tail 100
Isso exibe as últimas 100 linhas de log para troubleshooting.
Configuração inicial via interface web
Acesse http://SEU_IP:8080 no navegador, garantindo que a porta esteja liberada no firewall. Na tela de configuração inicial, selecione SQLite como banco de dados para simplificação. Ajuste os seguintes campos críticos:
- HTTP Port: Deve corresponder à porta mapeada no container (3000), não altere este vallor.
- SSH Port: Defina como 2222 para refletir o mapeamento SSH. Isso afetará os URLs exibidos para repositórios.
- Domínio: Insira o IP ou nome de domínio do servidor.
Na seção de configurações opcionais, crie uma conta de administrador inicial. Considere desativar o registro público para restringir o acesso e habilitar o modo local para avatares, evitando chamadas externas desnecessárias. Clique em "Instalar" para concluir. Após alguns segundos, você será redirecionado para a página de login.
Funcionalidades úteis
O Gitea suporta migração de repositórios de plataformas como GitHub. Ao criar um novo repositório, selecione "Migrar" e insira a URL original. Ative a opção "Repositório espelho" para sincronização automática a cada 8 horas (configurável em app.ini), funcionando como um backup contínuo. Para alterar portas exibidas após configurar um proxy reverso (ex.: Nginx), edite o arquivo /data/gitea/conf/app.ini dentro do container via shell (docker exec -it meu-gitea /bin/sh).