Gogs è un servizio Git gratuito e open source scritto in linguaggio Go. Gogs è un servizio git self-hosted indolore che ti consente di creare ed eseguire il tuo server Git su un server hardware minimo. L'interfaccia utente web di Gogs è molto simile a GitHub e offre supporto per database MySQL, PostgreSQL e SQLite.
In questo tutorial, ti mostreremo passo dopo passo come installare e configurare il tuo servizio Git usando Gogs su Ubuntu 16.04. Questo tutorial tratterà dettagli tra cui come installare Go sul sistema Ubuntu, installare PostgreSQL e installare e configurare il server Web Nginx come proxy inverso per l'applicazione Go.
Prerequisiti
- Ubuntu 16.04
- Privilegi di root
Cosa faremo
- Aggiorna e aggiorna il sistema
- Installa e configura PostgreSQL
- Installa Go e Git
- Installa Gogs
- Configura Gog
- Running Gogs come servizio
- Installa e configura Nginx come proxy inverso
- Test
Fase 1:aggiornamento e aggiornamento del sistema
Prima di andare oltre, aggiorna tutti i repository Ubuntu e tutti i pacchetti.
Esegui i comandi apt di seguito.
sudo apt update
sudo apt upgrade
Passaggio 2:installazione e configurazione di PostgreSQL
Gogs offre supporto per sistemi di database MySQL, PostgreSQL, SQLite3, MSSQL e TiDB.
In questa guida utilizzeremo PostgreSQL come database per le nostre installazioni di Gogs.
Installa PostgreSQL usando il comando apt di seguito.
sudo apt install -y postgresql postgresql-client libpq-dev
Al termine dell'installazione, avvia il servizio PostgreSQL e abilitalo all'avvio ogni volta all'avvio del sistema.
systemctl start postgresql
systemctl enable postgresql
Il database PostgreSQL è stato installato su un sistema Ubuntu.
Successivamente, dobbiamo creare un nuovo database e un nuovo utente per Gogs.
Accedi come utente 'postgres' ed esegui il comando 'psql' per ottenere la shell PostgreSQL.
su - postgres
psql
Crea un nuovo utente chiamato 'git' e assegna all'utente i privilegi per 'CREATEDB'.
CREATE USER git CREATEDB;
\password git
Crea un database chiamato 'gogs_production' e imposta l'utente 'git' come proprietario del database.
CREATE DATABASE gogs_production OWNER git;
È stato creato il nuovo database PostgreSQL "gogs_production" e l'utente "git" per l'installazione di Gogs.
Passaggio 3:installa Go e Git
Installa Git dal repository usando il comando apt di seguito.
sudo apt install git
Ora aggiungi il nuovo utente 'git' al sistema.
sudo adduser --disabled-login --gecos 'Gogs' git
Accedi come utente 'git' e crea una nuova directory 'locale'.
su - git
mkdir -p /home/git/local
Vai alla directory 'local' e scarica 'Go' (l'ultima versione) usando il comando wget come mostrato di seguito.
cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz
Estrai il file compresso go, quindi rimuovilo.
tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz
Il file binario 'Go' è stato scaricato nella directory '~/local/go'. Ora dobbiamo configurare l'ambiente:dobbiamo definire le directory 'GOROOT' e 'GOPATH in modo da poter eseguire un comando 'go' sul sistema sotto l'utente 'git'.
Esegui tutti i seguenti comandi.
cd ~/
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc
E ricarica Bash eseguendo il comando 'source ~/.bashrc' come mostrato di seguito.
source ~/.bashrc
Assicurati di utilizzare Bash come shell predefinita.
Ora esegui il comando 'vai' per controllare la versione.
go version
E assicurati di ottenere il risultato come mostrato nella schermata seguente.
Go è ora installato sul sistema sotto l'utente 'git'.
Passaggio 4:installazione del servizio Gogs Go Git
Accedi come utente 'git' e scarica 'Gogs' da GitHub usando il comando 'go'.
su - git
go get -u github.com/gogits/gogs
Il comando scaricherà tutto il codice sorgente di Gogs nella directory 'GOPATH/src'.
Vai alla directory '$GOPATH/src/github.com/gogits/gogs' e crea gogs usando i comandi seguenti.
cd $GOPATH/src/github.com/gogits/gogs
go build
E assicurati di non ricevere errori.
Ora esegui Gogs Go Git Service usando il comando seguente.
./gogs web
Il comando eseguirà Gogs sulla porta predefinita 3000.
Apri il tuo browser web e digita l'indirizzo IP del tuo server con la porta 3000, il mio è http://192.168.33.10:3000/
E dovresti ottenere il risultato come mostrato di seguito.
Gogs è installato sul sistema Ubuntu. Ora torna al tuo terminale e premi 'Ctrl + c' per uscire.
Passaggio 5:configurazione del servizio Gogs Go Git
In questo passaggio creeremo una configurazione personalizzata per Gogs.
Vai alla directory di installazione di Gogs e crea una nuova directory 'custom/conf'.
cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/
Copia la configurazione predefinita nella directory personalizzata e modificala usando vim.
cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini
Nel '[server] ', cambia il server 'HOST_ADDR' con '127.0.0.1'.
[server]
PROTOCOL = http
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
Nel '[database] ', cambia tutto con le tue informazioni sul database.
[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs_production
USER = git
PASSWD = [email protected]#
Salva ed esci.
Ora verifica la configurazione eseguendo il comando come mostrato di seguito.
./gogs web
E assicurati di ottenere il risultato come segue.
Gogs è ora in esecuzione con la nostra configurazione personalizzata, in 'localhost' con la porta 3000.
Passaggio 6 - Esecuzione di Gogs come servizio
In questo passaggio, configureremo Gogs come servizio sul sistema Ubuntu. Creeremo una nuova configurazione del file di servizio 'gogs.service' nella directory '/etc/systemd/system'.
Vai alla directory '/etc/systemd/system' e crea un nuovo file di servizio 'gogs.service' utilizzando l'editor vim.
cd /etc/systemd/system
vim gogs.service
Incolla lì la seguente configurazione del servizio gogs.
[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git
[Install]
WantedBy=multi-user.target
Salva ed esci.
Ora ricarica i servizi systemd.
systemctl daemon-reload
Avvia il servizio gogs e abilitalo all'avvio ogni volta all'avvio del sistema utilizzando il comando systemctl.
systemctl start gogs
systemctl enable gogs
Gogs è ora in esecuzione come servizio sul sistema Ubuntu.
Verificalo utilizzando i comandi seguenti.
netstat -plntu
systemctl status gogs
E dovresti ottenere il risultato come mostrato di seguito.
Passaggio 7:configura Nginx come proxy inverso per Gogs
In questo passaggio, configureremo Nginx come proxy inverso per Gogs. Utilizzeremo i pacchetti Nginx dal proprio repository.
Aggiungi il repository Nginx usando il comando add-apt.
sudo add-apt-repository -y ppa:nginx/stable
Ora aggiorna tutti i repository di Ubuntu e installa Nginx usando il comando apt di seguito.
sudo apt update
sudo apt install nginx -y
Quindi, vai alla directory '/etc/nginx/sites-available' e crea un nuovo file host virtuale 'gogs'.
cd /etc/nginx/sites-available
vim gogs
Incolla lì la seguente configurazione.
server {
listen 80;
server_name git.hakase-labs.co;
location / {
proxy_pass http://localhost:3000;
}
}
Salva ed esci.
Nota:
Modifica la riga 'server_name' con il tuo nome di dominio.
Ora attiva un nuovo host virtuale e testa la configurazione di nginx.
ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -t
Assicurati che non ci siano errori, quindi riavvia il servizio Nginx.
systemctl restart nginx
Fase 8 - Test
Apri il tuo browser web e digita l'URL di gogs, il mio è http://git.hakase-labs.co
Ora otterrai la pagina di installazione. Nella parte superiore della pagina, digita tutte le informazioni sul database PostgreSQL.
Ora scorri fino in fondo e fai clic sul menu a discesa "Impostazioni account amministratore".
Digita l'utente amministratore, la password e l'e-mail.
Quindi fai clic sul pulsante "Installa Gogs".
E verrai reindirizzato alla dashboard utente di Gogs come mostrato di seguito.
Di seguito è riportato il "Dashboard amministratore" di Gogs.
Gogs è ora installato con il database PostgreSQL e il server web Nginx sul server Ubuntu 16.04