DEV Community

Cover image for GIT Server usando um Raspberry PI & Pendrive
Guilherme Thomas
Guilherme Thomas

Posted on • Edited on

GIT Server usando um Raspberry PI & Pendrive

GIT completou 17 anos esse mês, ele é um sistema de controle de versões de código iniciado pelo Linus Torvalds, inicialmente feito para controle do desenvolvimento do kernel do Linux, e hoje usado de diversas maneiras (mas ainda principalmente no desenvolvimento de software).

Existem diversas razões para querer ter um GIT server próprio, acredito que a maior delas seja a segurança do seu código, se ele possui dados sensíveis ou seja proprietário, pode ser uma boa ideia não usar serviços populares como Github ou Bitbucket.

Enquanto não tenho oportunidade de comprar um Raspberry Pi 4, resolvi usar meu Model 3 pra brincar um pouco e decidir criar um servidor de GIT com ele. O processo é bem simples.

O que usei foi:

  1. Raspberry Pi Model 3
  2. Pendrive (FAT)
  3. OS Raspbian

Image description

Como falamos de segurança, a primeira coisa a fazer é criar um usuário separado para usar, pois usaremos uma chave SSH para "publicar" no nosso server, você pode sim usar o usuário root mas não é aconselhável de jeito nenhum.

Image description

Criei um user chamado gitsv e dei uma senha pra ele, agora voce pode acessar o user com

su gitsv

após

cd

Se tudo deu certo a gente já pode acessar por outra máquina na rede local.

ssh "user@endereco"
Image description

Digite agora ssh-keygen e siga os passos, agora envie essa public key para o server com ssh-copy-id -i [local]/unique_key.pub gitsv@[endereco]

Agora pra garantir, manda um
sudo apt-get update
sudo apt-get upgrade
sudo reboot

Acesse novamente o Raspberry por SSH e instale o GIT
sudo apt-get install wget git Depois disso pode desligar o PI que vamos deixar pronto o pendrive.

Pode plugar o pendrive e iniciar o PI, logue nele e pode usar o comando mkdir nome no meu, usei pdrivedir como nome. Depois, vamos usar o comando blkid que vai listar nossos blocks com um identificador único (UUID), o system type (TYPE) e rótulo de volume (LABEL). No meu caso, foi assim:

Image description

Precisamos agora dizer pro PI que nossos arquivos irão pro diretório que criamos (pdrivedir).
Pra isso, usamos nano /etc/fstab e adicionamos ao final do arquivo: /dev/sda1 /home/pi/pdrivedir vfat uid=pi,gid=pi,umask=0022,sync,auto,nosuid,rw,nouser 0 0
Lembrando de substituir o /dev/sda1 pela info do seu pendrive. Mete aquele CTRL-X, Y e Reboot.

Image description

Bora criar agora uma pasta com final .git que vai ser nosso repositorio:
mkdir pdrivedir/projeto.git
cd pdrivedir/projeto.git
E dentro da pasta, vamos iniciar o git, com:
git init --bare
Inclusive recomendo esse link pra entender os repos bare e non-bare

Image description

Quer saber como dar o primeiro commit? Então:
Image description

Precisamos fazer com que nosso git local esteja ciente desse repositório que criamos, bora com:
git remote add origin gitsv@endereco:/local/projeto.git
"origin" pode ser qualquer nome de sua escolha. E agora o último passo é "pushar" o projeto para esse repositório, se for pra branch "master" o comando será esse git push origin master

Finalizado! O repo GIT está prontíssimo no seu servidor local, sendo armazenado no pendrive.

Se quiser, podemos também deixar esse Raspberry Pi online, definindo um endereço de IP fixo e redirecionando uma porta (nesse caso a 22).

Top comments (0)