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?
Com 55 milhões de usuários, O GitHub é o maior repositório de software livre e de código aberto na Terra, mas seu atual proprietário, a Microsoft, não é um ajuste natural para o 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 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 sejam 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, instalar o Docker e o Docker Compose agora.
Os arquivos que você armazena em seu servidor Gitea podem ocupar muito espaço, por isso sugerimos usando armazenamento externo com seu Raspberry Pi, e usando-o 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 gita
Crie um novo arquivo com o nano:
nanodocker-compose.yml
...e cole o seguinte código nele:
versão: "3"redes:
gita:
externo: falso
Serviços:
servidor:
imagem: gitea/gitea: mais recente
container_name: gitea
ambiente:
- 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
reiniciar: sempre
redes:
-gitea
volumes:
- ./gitea:/dados
- /etc/timezone:/etc/timezone: gb
- /etc/localtime:/etc/localtime: gb
portas:
- "3000:3000"
- "222:22"
depende de:
-db
banco de dados:
imagem: mysql: 8
reiniciar: sempre
ambiente:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
redes:
-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, então 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.
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 seu.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 instalar apache2
Agora, inicie e habilite o Apache com os seguintes comandos:
sudo systemctl começar apache2
sudo systemctl habilitar 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 A registro. Colocou o Hospedar campo para "@" e o campo de valor para 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 roteador e encontre uma seção intitulada Encaminhamento de porta, Mapeamento de portas, ou Gestão Portuária.
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 atualizar
sudo apt-pegar instalar python3-certbot-apache
Altere os diretórios e crie um novo arquivo com o nano:
cd /etc/apache2/sites-available/
nanogita.conf
No novo arquivo, cole o seguinte, certificando-se de copiar em seu próprio nome de domínio:
<VirtualHost *:80>ServerName seu-nome-do-domínio.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost ativado</VirtualHost>
Salve e saia do nano com Ctrl + O, então Ctrl + xe habilite seu novo arquivo conf com:
sudoa2ensitegita.conf
Reinicie o Apache:
serviço sudo apache2 reiniciar
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:
serviço sudo apache2 reiniciar
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.
Em Configurações Gerais, colocou o titulo do site para um adequado, Domínio do Servidor deve ser o seu nome de domínio e Porta do Servidor SSH deve ser definido para 222. A URL base deve ser seu nome de domínio, incluindo "HTTPS://".
Quando terminar, acerte o grande azul Instalar o Gitea botão. 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 outras pessoas registrem e hospedem seus próprios repositórios em seu servidor Git, você precisa editar o app.ini arquivo. Se você inicialmente criou seu gita diretório no / (raiz), digite:
nano /gitea/gitea/gitea/conf/app.ini
Role para baixo até a seção de serviço e defina DISABLE_REGISTRATION para verdadeiro.
Salve e saia do nano com Ctrl + O, então Ctrl + X, em seguida, 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 + assine à direita da página e dê um nome sensato.
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 ter os direitos de acesso corretos e de 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:
gato ~/.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 chavee cole a chave que você acabou de copiar.
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.