Olá a todos.
No seguimento do nosso ultimo post sobre git e o software git, vamos agora fazer um post mais técnico sobre como efetuar deployment de uma instancia de git, neste caso na forma do gitea no nosso homelab.
Para a nossa receita, iremos necessitar dos seguintes pré-requisitos:
– Um servidor/LXC container a executar Rocky Linux 8 com acesso root.
– Pelo menos 1 GB de RAM e 1 CPU core.
– Um nome de domínio ou endereço IP público apontando para o seu servidor, ou caso desejem acesso interno apenas, um selfhosted non-valid domain para acederem por URL por dentro da vossa infra-estrutura.
Instalem as dependências necessárias:
Antes de começar, precisamos instalar as dependências necessárias. Executem o seguinte comando para atualizar a lista de pacotes e instalar os pacotes necessários:
sudo dnf update -y sudo dnf install curl git sqlite gcc gcc-c++ make openssl-devel
Criar um novo utilizador e grupo no sistema:
Em seguida, criem um novo utilizador e grupo no sistema que executará o Gitea. Usaremos para o exemplo em mãos o nome de usuário `git` e o nome de grupo `git`.
sudo groupadd --system git sudo useradd --system -d /var/lib/gitea -s /bin/bash -G git git
Descarregue e instale o Gitea:
Visitem o site da Gitea (https://dl.gitea.io/gitea/) e encontrem a versão mais recente do produto. No momento que este guia foi escrito, a versão mais recente estável era a 1.21.3.
cd/tmp curl -LO https://dl.gitea.com/gitea/1.21.3/gitea-1.21.3-linux-amd64.tar.gz
Quando o download estiver concluído, extraiam o arquivo e movam o binário para o diretório `/usr/local/bin/`.
tar -zxvf gitea-1.21.3-linux-amd64.tar.gz sudo mv gitea /usr/local/bin/
Configurar o Gitea:
Criem um novo diretório para os arquivos de configuração e arquivos de log do Gitea.
sudo mkdir -p /etc/gitea /var/lib/gitea/custom/conf /var/lib/gitea/log sudo chown git:git /var/lib/gitea/log
Copiem o ficheiro de configuração de template para o diretório `/etc/gitea/`.
sudo cp /usr/local/bin/custom/conf/app.ini /etc/gitea/
Abram o arquivo `app.ini` com o vosso editor de texto favorito
sudo vi /etc/gitea/app.ini
Atualize as seguintes configurações na secção`[servidor]`:
APP_NAME = Gitea in the house ROOT_URL = https://nome-do-vosso-dominio.com/
Atualize as seguintes configurações na secção`[database]`:
DB_TYPE = sqlite3
Nota: neste caso, and for simplicity sake, escolhi uma sqlite DB. Quem tiver já a utilizar um servidor mysql, como é obvio, use-o. É mais fácil ter as coisas centralizadas do que andar a fazer hopping por 30 vm’s e lxc containers para fazer backups coisa-a-coisa.
Atualizem as seguintes configurações na seção `[repository]`:
ROOT = /var/lib/gitea/repositórios
Nota: Acho que é obvio, mas a diretoria acima refere-se onde os vossos repositórios irão ficar guardados localmente no git server.
Atualizem as seguintes configurações na seção `[security]`:
INSTALL_LOCK = true SECRET_KEY = gerem uma chave secreta aleatória e coloquem-a aqui INTERNAL_TOKEN = gerem um token interno aleatório e coloquem-o aqui
Nota: Podem gerar uma chave secreta aleatória e um token interno executando os seguintes comandos numa shell local:
openssl rand -hex 16 openssl rand -hex 16
Gravem e fechem o arquivo.
Configurar o Gitea como um serviço systemd:
Criem um novo arquivo de serviço systemd para o Gitea.
sudo vi /etc/systemd/system/gitea.service
Adicionem o seguinte conteúdo ao arquivo:
[unit] Description=Gitea (Git com uma xícara de chá) After=syslog.target After=network.target After=postgresql.service Wants=postgresql.service [service] # Modifiquem esses dois valores e descomente-os se tiver #repos #GITEA_CUSTOM=/var/lib/gitea/custom #GITEA_WORK_DIR=/var/lib/gitea User=git Group=git WorkingDirectory=/var/lib/gitea ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/var/lib/gitea [Install] WantedBy=multi-user.target
Gravem e saiam do vosso editor.
Façam reload ao systemd para carregar a nossa nova configuração.
sudo systemctl daemon-reload
Iniciem o vosso Gitea e activem o arraque automático:
sudo systemctl start gitea sudo systemctl enable gitea
Acedam ao vosso novo servidor gitea:
Abram o vosso browser favorito, e acedam ao vosso servidor através do URL/porta configurada.
http://url-do-nosso-novo-servidor-gitea:3000/ https://url-do-nosso-novo-servidor-gitea:3000/
Nota: Para https e/ou outras portas deverão fazer alterações no vosso ficheiro de configuração, como introdução de certificados ssl.
Em seguida, e no browser, terão acesso ao vosso processo de configuração final do gitea. E parabens, acabaram de configurar o vosso primeiro servidor git.
Chegamos ao fim do post desta semana, ao estilo mais técnico como faço de vez em quando. Espero que tenham gostado, e atá a proxima semana.
Como sempre, se tiverem algum reparo, ou alguma sugestão sabem onde me encontrar.
Abraço.
Nuno