Guia completo para instalação do Gitea: Ferramenta open source de gerenciamento de código-fonte

Guia completo para instalação do Gitea: Ferramenta open source de gerenciamento de código-fonte

O Gitea é uma ferramenta open source de Source Code Management – SCM, ou seja, gerenciamento de código-fonte, escrita em Go e que foi criada em novembro de 2016 além de ser baseada em uma outra ferramenta chamada Gogs.

Foi criado pela frustração da comunidade com relação ao Gogs, que embora que também fosse open source, seu criador não permitia a contribuição da comunidade no projeto e por conta disso, o ciclo de releases do Gogs era lento.

A comunidade queria uma ferramenta com a qual pudesse ter maior influência e que fosse mais rápida, então criaram um fork do antigo projeto, nascendo assim o Gitea.

Instalação

Iremos realizar a instalação do Gitea utilizando diretamente o binário de execução, pois as versões que existem em repositórios não são suportadas diretamente pelos administradores do projeto e não existe uma atualização para a versão do repositório há tempos, então, o que há disponível está desatualizado.

Vamos utilizar um servidor com as seguintes características para a instalação:

  • 2 CPU cores
  • 1GB RAM
  • Debian 10

Pré-requisitos

Para realizar a instalação do Gitea com sucesso  é necessário que o pacote git esteja instalado na máquina. Caso não esteja instalado, você pode instalar utilizando o comando apt install -y git.

Passo a passo

Primeiramente, vamos baixar o binário para que possamos utilizá-lo posteriormente. Com o seguinte comando iremos baixar o binário e deixá-lo disponível dentro do diretório /usr/local/bin/ com o nome “gitea“.

Os comandos abaixo foram executados como root.

wget https://dl.gitea.io/gitea/1.12.5/gitea-1.12.5-linux-amd64 -O /usr/local/bin/gitea

Por ser um binário, precisamos dar a permissão de execução no sistema.

chmod ug+x /usr/local/bin/gitea

Agora é preciso criar o usuário que irá executar o binário, então vamos criar um usuário de sistema chamado git.

adduser --system --group --disabled-password --home /home/git git

Após ter adicionado o usuário, vamos ajustar o permissionamento do binário para que somente o usuário git possa fazer uso dele.

chown git:git /usr/local/bin/gitea

Por ser uma instalação através do binário, é preciso criar os diretórios que armazenarão as informações geradas pelo Gitea.

mkdir -p /var/lib/gitea/{custom,data,log} /etc/gitea

Agora que os diretórios existem, as permissões devem ser ajustadas para que o usuário dono do processo do Gitea possa escrever com sucesso nos diretórios.

chown -R git:git /var/lib/gitea/ && chmod-R 750 /var/lib/gitea/
chown root:git /etc/gitea && chmod 770 /etc/gitea

Vamos gerenciar o Gitea como um serviço em nosso systemd, para isso, iremos utilizar um template criado pelo time da ferramenta. Vamos fazer o download do endereço abaixo e já disponibilizá-lo dentro do diretório de unidades do systemd.

wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -O /lib/systemd/system/gitea.service

Por ter adicionado uma nova unidade, precisamos que o systemd releia os arquivos de unidades, para isso, executamos o comando:

systemctl daemon-reload

Feito isso, podemos habilitar o serviço do Gitea na inicialização do sistema e iniciá-lo.

systemctl enable gitea --now

Agora que  o serviço está em execução em nosso servidor, precisaremos acessar a interface web para finalizar a instalação. Para isso, vamos ao navegador,  digitamos o endereço do servidor e acessamos a porta 3000, por exemplo: http://10.25.5.40:3000/.

Na tela inicial, clique em “Cadastrar“, no canto superior direito.

Vamos realizar o preenchimento dos seguintes campos com estes dados:

  • Tipo de banco de dados: SQLite3.
  • Domínio do servidor SSH: o FQDN da máquina.
  • Porta HTTP de uso do Gitea: 80
  • URL base do Gitea: http://FQDN:80
  • Nome do usuário administrador: analista
  • Senha: devops@4linux
  • Confirmar senha: devops@4linux
  • Endereço de e-mail: analista@4labs.example


Após ter clicado em “Instalar Gitea“, será mostrado um erro no navegador, o que é esperado pois precisamos realizar alguns ajustes finais.

Por questões de segurança, o Linux não permite que processos gerado por usuários que não sejam o próprio root possa escutar em portas baixas (portas menores do que 1024), então, para que o processo possa abrir a porta, precisamos permitir que os processos gerados a partir do binário possam escutar na porta 80, para isso será necessário a utilização dos ‘Capabilities’.

setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/gitea

Por fim, precisamos reiniciar o serviço para que ele seja executado normalmente na porta 80 do servidor.

systemctl restart gitea

Quanto os próximos passos sobre Git em si, aconselho dar uma lida neste post [1]!
Bom, por hoje é isso! Espero ter conseguido clarear o processo de instalação do SCM Gitea e contar um pouco de sua história!

Até a próxima!

Mais informações:

[1] Versionamento de código co, Gitea: https://blog.4linux.com.br/versionamento-de-codigo-utilizando-git-gitflow-github/

 

Versionamento de Código utilizando Git/GitFlow/GitHub

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Dominando o Docker Compose: Guia completo para gerenciamento de multi-contêineres
Próxima Como lidar com dados duplicados no PostgreSQL usando a coluna de sistema ctid

About author

Vinicius Felix
Vinicius Felix 5 posts

Vinicius Felix da Silva, atua como Analista de Infraestrutura, é entusiasta em tecnologias de software livre e é formado em Redes de Computadores pelo SENAC. Possui a certificação LPI 1.

View all posts by this author →

Você pode gostar também

DevOps

Conheça a experiência de um Arquiteto de Software no mundo DEVOPS

No último dia 3 de setembro aconteceu a prova beta test na sede da 4Linux em SP. Foram mais de 150 inscritos que fizeram a prova de seleção na plataforma

Big Data

Como a Computação em Nuvem Revolucionou o Big Data: Uma Análise Detalhada

Entre os anos 2012 a 2018, o Hadoop era considerado uma plataforma de Big Data praticamente hegemônica. Em um projeto típico de Big Data, além dos aspectos do pipeline de

Uncategorized

Como organizar e manipular rotas com Node.js e Express

O Express.js é conhecido como o framework minimalista e flexível para Node.js, uma biblioteca muito utilizada para desenvolvimento de aplicativos web. Neste artigo vamos falar sobre um recurso muito específico: