# 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
Postar um comentário