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
Compartilhe este post:
Share on Twitter Share on Facebook Share on LinkedIn Share on WhatsApp Share on Email
Anterior Docker Compose - Explicado
Próxima PostgreSQL - Como eliminar valores repetidos
Categoria DesenvolvimentoDevOpsInfraestrutura TI
About author
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
Treinamentos
4Linux lança curso de DevSecOps e solidifica liderança em cursos para carreira DevOps
Treinamento possui conteúdo único em relação a qualquer outro no mercado A 4Linux anuncia hoje o lançamento de mais um curso para enriquecer a sua oferta de treinamentos na carreira
Infraestrutura TI
Sysadmin e sysadmins que valem por 1000.
Durante muito tempo o cotidiano do sysadmin de soluções Open Source foi regido por scripts caseiros que, aparentemente, eram capazes de solucionar todas as questões do dia a dia
Infraestrutura TI
[Parte #1] – FreeIPA – Configuração do Servidor
Este post é o Primeiro de uma série de posts sobre o FreeIPA O que é o FreeIPA ? O FreeIPA (Free Identity, Policy and Audit) é um sistema FOSS
Pesquisar
Busque por:
E-book Cases de Sucesso
Suporte e Consultoria em DevOps!
Suporte e Consultoria em Infra
Suporte e Consultoria em Dev
Nuvem de tags
Alta Disponibilidade Ansible Banco de Dados Big Data Ciência de Dados Cloud Containers Cursos de TI Data Engineering Data Science Debian Desenvolvimento Devops DevSecOps Docker Engenharia de Dados Grafana Hadoop iac Infraestrutura Java K8S Kubernetes LDAP Linux log Machine Learning MongoDB Monitoramento Monitoramento TI Moodle MySQL Omnichannel OpenShift Openstack PHP PostgreSQL Prometheus Python Rocket.chat Segurança software livre sre terraform zabbix
© 2020 Copyright TrendyBlog theme. All Rights reserved. Different Themes
Utilizamos cookies para oferecer melhor experiência, melhor desempenho, personalizar conteúdo e analisar como você interage em nosso site. Ao utilizar este site, você concorda com o uso de cookies. Saiba mais.
OK, ENTENDI
Manage consent
Fechar
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Necessary
Sempre ativado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.