GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Gogs Go Git Service su Ubuntu 16.04

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

  1. Aggiorna e aggiorna il sistema
  2. Installa e configura PostgreSQL
  3. Installa Go e Git
  4. Installa Gogs
  5. Configura Gog
  6. Running Gogs come servizio
  7. Installa e configura Nginx come proxy inverso
  8. 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


Ubuntu
  1. Come installare Git su Ubuntu 18.04 / 20.04

  2. Come installare PostgreSQL su Ubuntu 18.04

  3. Come installare Nginx su Ubuntu 18.04

  4. Come installare PostgreSQL 9.6 su Ubuntu 20.04

  5. Come installare Git su Ubuntu 16.04

Come installare TimescaleDB su Ubuntu 20.04

Come installare PostgreSQL 14 in Ubuntu 20.04

Come installare TimescaleDB su Ubuntu 20.04

Come installare Git su Ubuntu 15.04

Come installare Git su Ubuntu 16.04

Come installare e configurare il servizio Gogs Git su Ubuntu Linux