Configurando um servidor Git auto-hospedado com Gitea

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).

Tags: Gitea Git Docker sqlite Auto-hospedagem

Publicado em 6-7 23:59 por Thomas