Instale o Gitea em um Raspberry Pi para criar seu próprio repositório de código

Instale o Gitea em um Raspberry Pi para criar seu próprio repositório de código

Git é um sistema de controle de versão usado por desenvolvedores de software, codificadores e criadores para colaborar e distribuir projetos de código aberto. Usando o Git, você pode lidar com projetos de qualquer tamanho, inserir alterações e mesclagens de código e permitir que os usuários clonem seus repositórios em suas próprias máquinas. O ecossistema de código aberto é executado no Git, e muitos dos projetos apresentados no MakeUseOf.com envolvem o uso de recursos do GitHub. Com o Gitea, você pode hospedar seus próprios repositórios Git totalmente funcionais em um Raspberry Pi em sua própria casa.

Por que hospedar seu próprio serviço Git no Raspberry Pi em vez de usar o GitHub?

Uma página do repositório GitHub mostrando uma lista de arquivos do código-fonte do React

Com 55 milhões de usuários, o GitHub é o maior repositório de software livre e de código aberto da Terra, mas seu atual proprietário, a Microsoft, não se encaixa perfeitamente no papel de guardião. CEOs anteriores da empresa descreveram o Linux e a General Public License como “um câncer”, e a maioria dos produtos da própria Microsoft são proprietários e de código fechado.

A propriedade da Microsoft também viu o GitHub explorar algumas tecnologias eticamente duvidosas – principalmente com o GitHub Copilot, uma ferramenta de IA para ajudar os programadores a gerar código. O Copilot foi treinado com dados do GitHub, em possível violação dos termos das licenças Creative Commons empregadas pelos codificadores.

Ao usar o GitHub, os desenvolvedores estão criando mais um ponto de estrangulamento no qual a inovação pode ser sufocada, prejudicada e sujeita a interferências frívolas.

Gitea permite que você configure seu próprio servidor Git no Raspberry Pi

Gitea é um fork do Gogs e é uma solução de hospedagem de código leve gerenciada pela comunidade escrita em Go e publicada sob a licença MIT. Ele pretende ter um modelo de desenvolvimento mais aberto e rápido que seu antecessor, e rodará em máquinas com recursos até modestos, como um Raspberry Pi. Você poderá trabalhar em seus dotfiles, ISOs personalizados do Ubuntu, scripts Bash e utilitários Java e Python sem medo de que eles estejam sujeitos a uma remoção DMCA, sejam usados ​​para treinar software nefasto ou estejam fora de seu controle .

Como instalar o Gitea no seu Raspberry Pi

O Gitea vem com vários métodos de instalação, mas o mais fácil é via Docker. Se você ainda não os tiver em execução no seu Raspberry Pi, instale o Docker e o Docker Compose agora.

Os arquivos que você armazena em seu servidor Gitea podem ocupar muito espaço, por isso sugerimos usar armazenamento externo com seu Raspberry Pi e usá-lo como o local para a instalação do Gitea.

Conecte-se ao seu Pi via SSH, navegue até o local onde deseja instalar o Gitea, crie um novo diretório e vá para ele:

mkdir gitea
cd gitea

Crie um novo arquivo com o nano:

nano docker-compose.yml

…e cole o seguinte código nele:

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
-. /gitea:/data
- /etc/timezone:/etc/timezone:gb
- /etc/localtime:/etc/localtime:gb
ports:
- "3000:3000"
- "222:22"
depends_on:
- db

db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
-. /mysql:/var/lib/mysql

Altere os fusos horários para sua própria localidade e escolha uma senha forte para seu banco de dados, salve e saia do nano com Ctrl + O , depois Ctrl + X.

Digitar:

docker-compose up -d

…para abrir o docker-compose no modo desanexado. O Docker-compose extrairá várias imagens para Gitea e Maria DB e configurará contêineres. Dependendo da velocidade da sua conexão, isso pode levar algum tempo.

docker-compose ps mostrando gitea e gitea_db_1 como up

Quando você retornar ao prompt de comando:

docker-compose ps

…deve mostrar “gitea” e “gitea_db_1″ como “up”. Agora você pode visitar a página de configuração inicial do seu site Gitea em your.pi.local.ip.address:3000 .

Não altere nada ainda. Se você planeja acessar sua instância do Gitea pela Internet, primeiro precisa fazer um pouco mais de preparação.

Acesse sua instância do Gitea pela Internet

Você deseja digitar um URL padrão para acessar sua instância do Gitea, portanto, precisará do Apache para lidar com o proxy. Instale o Apache com:

sudo apt install apache2

Agora, inicie e habilite o Apache com os seguintes comandos:

sudo systemctl start apache2
sudo systemctl enable apache2

Habilite os módulos proxy do Apache com:

sudo a2enmod proxy
sudo a2enmod proxy_http

Escolha um nome de domínio ou nome de subdomínio de um registrador respeitável. Em seguida, na página de configurações do seu registrador, encontre as opções de ‘DNS avançado’ e adicione um novo registro A. Defina o campo Host como “ @” e o campo de valor como seu endereço IP estático. Defina o valor TTL (Time to Lease) o mais baixo possível e salve.

Abra a página de administração do seu roteador e encontre uma seção intitulada Port Forwarding , Port Mapping ou Port Management.

Crie uma nova entrada para solicitações HTTP. Defina a porta local e pública para 80 e o endereço IP local para o endereço IP do seu Raspberry Pi.

Uma segunda porta aberta é necessária para solicitações HTTPS. Defina a porta local e pública para 443 e, novamente, o endereço IP local para o endereço IP do seu Pi.

Por fim, você precisa de uma porta aberta para solicitações SSH ao seu servidor Git. Defina a porta local e pública para 222 e o endereço IP local para o endereço IP do seu Pi.

Você usará o Certbot para obter certificados e chaves de segurança. Adicione o repositório do Certbot, atualize e instale o Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache

Altere os diretórios e crie um novo arquivo com o nano:

cd /etc/apache2/sites-available/
nano gitea.conf

No novo arquivo, cole o seguinte, certificando-se de copiar em seu próprio nome de domínio:

<VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Salve e saia do nano com Ctrl + O , depois Ctrl + X e habilite seu novo arquivo conf com:

sudo a2ensite gitea.conf

Reinicie o Apache:

sudo service apache2 restart

Execute o Certbot com:

sudo certbot

…e selecione seu nome de domínio em uma lista. O Certbot buscará e instalará certificados e chaves. Quando você retornar ao prompt, reinicie o Apache novamente:

sudo service apache2 restart

Configuração da instância do Gitea

Agora você pode visitar sua instância do Gitea em um navegador com o endereço https://your-domain-name.tld . Você poderá definir o tipo de banco de dados, senha e outras variáveis ​​na primeira seção. Esses serão os valores que você especificou em seu arquivo docker-compose e já devem estar preenchidos, portanto, não há necessidade de alterá-los.

Nas configurações gerais , defina o título do site para um adequado, o domínio do servidor deve ser o nome do seu domínio e a porta do servidor SSH deve ser definida como 222 . A URL base deve ser o seu nome de domínio, incluindo “HTTPS://”.

Quando terminar, clique no grande botão azul Instalar Gitea . Você será saudado por uma grande xícara de chá verde e qualquer nome e slug que você deu à instância. Para criar seu primeiro usuário, clique em registrar no canto superior direito da página e insira seus dados. Parabéns!

Para impedir que qualquer outra pessoa registre e hospede seus próprios repositórios em seu servidor Git, você precisa editar o arquivo app.ini . Se você inicialmente criou seu diretório gitea no diretório / (raiz), digite:

nano /gitea/gitea/gitea/conf/app.ini

Role para baixo até a seção de serviço e defina DISABLE_REGISTRATION como verdadeiro.

gitea diable registro definido como verdadeiro

Salve e saia do nano com Ctrl + O , depois Ctrl + X e reinicie seus contêineres:

docker-compose downdocker-compose up -d

Usando Gitea

Se você já usou o GitHub, vai se sentir instantaneamente em casa no Gitea. Depois de fazer login, você verá que não há repositórios disponíveis. Crie um clicando no sinal + à direita da página e dê a ele um nome sensato.

criação do repositório inicial gitea

Você pode optar por tornar o repositório privado marcando a caixa ou deixá-lo aberto para o mundo ver. Marque a caixa para inicializar com um arquivo leia-me e clique em Criar repositório para criar seu primeiro repositório! Você pode fazer e confirmar alterações, fazer upload de arquivos e editar como se fosse o GitHub.

Clique em SSH para copiar o endereço e você não poderá clonar repositórios para sua máquina local, recebendo um erro: “Por favor, certifique-se de que você tem os direitos de acesso corretos e que o repositório existe”. Você precisa adicionar a chave SSH da sua máquina local ao Gitea primeiro. Para fazer isso, copie a saída de:

cat ~/.ssh/id_rsa.pub

Na interface da web do Gitea, clique na foto do seu perfil e escolha configurações > Chaves SSH/ GPG . Clique em Adicionar chave e cole a chave que você acabou de copiar.

adicione a chave ssh ao gitea

Agora você pode interagir com seu próprio repositório Git em seu próprio servidor Git em seu próprio Raspberry Pi!

Use sua instância do Gitea para criar projetos de software incríveis

O Git é uma ferramenta incrível para colaborar em projetos incríveis, mas mesmo sem uma equipe, é fantástico para organizar seu próprio fluxo de trabalho e criar softwares ou configurações incríveis. Use-o para ajudar a controlar seus arquivos enquanto aprende uma nova linguagem de programação ou personaliza seu sistema de desktop para ser o melhor possível.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *