Pular para o conteúdo principal

Instalando Gogs no Debian/Raspberry





# Instalando Gogs no Debian/Raspberry:

# O que é git?

Git é um projeto de código aberto no qual o objetivo básico é versionar códigos, documentos e ou arquivos/pastas. O mesmo é muito utilizado por desenvolvedores facilitando a entrega rápida e ou continua de codigos ou até rollback, também é possível aproveitar para replicar ambientes; Ex: Produção, Desenvolvimento e Homologação. A possibilidade são infinitas e muito utilizada como parte de processo utilizado por Devops/sysadmins.


# O que é gogs?

Gogs (Go Git Service) projeto em software livre escrito na linguagem Go, sendo o mesmo facilitando e apresentando uma interface web ao repositório git.


# Recomenda-se atualizar a lista de repositórios e o sistema:

apt update -y

apt upgrade -y


# Instalar os pacotes básicos:

apt install git mariadb-server vim -y


# Deve-se inicializar o banco de dados Mariadb e habilita-lo:

systemctl enable mariadb --now


# Recomenda-se primeiramente criar segurança no sistema Mariadb:

mysql_secure_installation 


# Exemplo de resultado resumido:

Enter current password for root (enter for none):  -->  [ENTER]

Switch to unix_socket authentication [Y/n] --> [ENTER]

Change the root password? [Y/n] --> [Y]

New password: [senha_segura] --> Ex: gogs_$3cur1ty

Remove anonymous users? [Y/n] --> [Y]

Disallow root login remotely? [Y/n] --> [Y]

Remove test database and access to it? [Y/n] --> [Y]

Reload privilege tables now? [Y/n] --> [Y]


# Criar base de dados:

MariaDB [(none)]> CREATE SCHEMA `gogs` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' IDENTIFIED BY 'gogsforcepasswd';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> EXIT


# Criar usuário com diretório /opt/gogs e login desabilitado:

adduser --home /opt/gogs --shell /bin/bash --disabled-login --gecos 'Gogs application' gogs


# Baixar gogs no link e extrair o gogs:

# Obs: Verifique a arquitetura antes de baixar:

# Link: https://gogs.io/docs/installation/install_from_binary

wget https://dl.gogs.io/0.12.10/gogs_0.12.10_linux_armv8.zip

unzip gogs_0.12.10_linux_armv8.zip -d /opt/

chown -R gogs:gogs /opt/gogs/


# Criando systemd personalizado:

cp /opt/gogs/scripts/systemd/gogs.service /etc/systemd/system/


# Contéudo e variavéis para serem alterados:

# Obs: Usuário criado gogs e diretório /opt/gogs:

cat /etc/systemd/system/gogs.service

# Alterar informações

User=gogs

Group=gogs

WorkingDirectory=/opt/gogs

ExecStart=/opt/gogs/gogs web

Environment=USER=gogs HOME=/opt/gogs


# Após editar o serviço, deve-se recarregar as configurações:

systemctl daemon-reload

systemctl enable gogs --now


# Acesso o navegador para continuar a instalação web:

http://seu_ip:3000/

Ex: http://192.168.15.101:3000/


# Exemplo de configuração com base nas configurações do tutorial:


Database Type --> MySQL

Host --> 127.0.0.1:3306

User --> gogs

Password --> gogsforcepasswd

Database Name --> gogs


Application Name --> Gogs

Repository Root Path --> /opt/gogs/gogs-repositories

Run User --> gogs

Domain --> 192.168.15.101

SSH Port --> 22

HTTP Port --> 3000

Application URL --> http://192.168.15.101:3000/

Log Path --> /opt/gogs/log


Admin Account Settings

Username --> gogs

Password --> gogsadmin

Confirm Password  --> gogsadmin

Admin Email  --> seuemail@com


Click --> Install Gogs


# Após Instalação concluida, o ambiente se encontra preparado para criar repositórios git:

http://seu_ip:3000/

Username --> gogs

Password --> gogsadmin


# Criando repositório git básico:

Clique em + --> New Repository Git --> Preencha o nome --> Create Repository


# Simulando um exemplo de sua utilização, imagine que temos um servidor web no qual programamos em uma linguagem de programação X.

# Criaremos um arquivo vazio de documentação para ser inserido no servidor Gogs:

touch README.md

git init

git remote add origin http://192.168.15.101:3000/gogs/repository.git

git add README.md

git commit -m "first commit"

git push -u origin master


# Recomendações finais:

Obs 1: Recomenda-se a implantação que aumente a segurança como ssl, firewall local, selinux.

Obs 2: Recomenda-se para aumentar a segurança repositórios privados, previnindo assim acesso a informações indevidas.


Ass: Luiz Guilherme Nunes Fernandes

Email: narutospinal@gmail.com

Informativo: Entusiasta e colaborador em Software Livre.

Comentários