GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Gogs su Ubuntu 18.04

Gogs è un server git open source self-hosted scritto in Go. Include un editor di file di repository, il monitoraggio dei problemi del progetto e un wiki integrato.

Gog è un'applicazione leggera e può essere installata su sistemi a bassa potenza. Se stai cercando un'alternativa a Gitlab con un footprint di memoria molto più piccolo e non hai bisogno di tutti i campanelli e i fischietti offerti da Gitlab, dovresti assolutamente provare Gogs.

Questo tutorial illustra i passaggi per installare e configurare Gogs su Ubuntu 18.04. Le stesse istruzioni si applicano per Ubuntu 16.04 e qualsiasi altra distribuzione basata su Ubuntu.

Prima di iniziare #

I gogs possono utilizzare SQLite, PostgreSQL o MySQL/MariaDBdatabase per archiviare tutti i suoi dati.

In questo tutorial, useremo SQLite come database preferito. Se SQLite non è installato sul tuo sistema puoi installarlo digitando:

sudo apt install sqlite3

Per un ulteriore livello di sicurezza, si consiglia di configurare un firewall di base. Puoi seguire i passaggi nella nostra guida Come configurare un firewall con UFW su Ubuntu 18.04.

Installazione di Gogs #

Installeremo Gogs dal binario. L'installazione è un processo piuttosto semplice.

Installa Git #

Il primo passo è installare Giton sul tuo server. Per fare ciò, aggiorna l'indice del pacchetto locale e installa il pacchetto git eseguendo i seguenti comandi come utente sudo:

sudo apt updatesudo apt install git

Verifica l'installazione visualizzando la versione Git:

git --version
git version 2.17.1

Crea un utente Git #

Crea un nuovo utente di sistema per eseguire il servizio Gogs digitando:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

Il comando creerà l'utente e imposterà la directory home su /home/git . L'output sarà simile al seguente:

Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

Scarica Gogs binario #

Visita la pagina di download di Gogs e scarica l'ultimo binario per la tua architettura. Al momento in cui scrivo l'ultima versione è la 0.11.86, se è disponibile una nuova versione cambia la VERSION variabile nel comando seguente.

Scarica l'archivio Gogs nel /tmp directory utilizzando il seguente comando wget:

VERSION=0.11.86wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp

Una volta completato il download, estrai il file Gogs tar.gz e spostalo nel /home/git directory:

sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

Esegui il comando seguente per modificare la proprietà della directory di installazione di Gogs nell'utente e nel gruppo git:

sudo chown -R git: /home/git/gogs

Crea un file di unità systemd #

Gogs viene fornito con un file di unità Systemd che è già configurato per corrispondere alla nostra configurazione.

Copia il file in /etc/systemd/system/ directory digitando:

sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

Al termine, avvia e abilita il servizio Gogs:

sudo systemctl start gogssudo systemctl enable gogs

Verifica che il servizio sia stato avviato correttamente:

* gogs.service - Gogs
   Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago
 Main PID: 14376 (gogs)
    Tasks: 8 (limit: 2319)
   CGroup: /system.slice/gogs.service
           `-14376 /home/git/gogs/gogs web

Installa Gogs utilizzando il programma di installazione web #

Ora che Gogs è stato scaricato ed è in esecuzione, è il momento di finalizzare l'installazione tramite l'interfaccia web.

Apri il browser, digita http://YOUR_DOMAIN_IR_IP:3000 e apparirà una schermata simile alla seguente:

Impostazioni database:

  • Tipo di database:SQLite3
  • Percorso:utilizza un percorso assoluto, /home/git/gogs/gogs.db

Impostazioni generali dell'applicazione

  • Nome applicazione:inserisci il nome della tua organizzazione
  • Percorso radice del repository:lascia il /home/git/gogs-repositories predefinito
  • Esegui utente:git
  • Dominio:inserisci il tuo dominio o indirizzo IP del server.
  • Porta SSH:22, cambiala se SSH è in ascolto su un'altra porta
  • Porta HTTP:3000
  • URL dell'applicazione:utilizza http e l'indirizzo IP del tuo dominio o server.
  • Percorso registro:lascia il /home/git/gogs/log predefinito
Successivamente puoi modificare le impostazioni modificando il file di configurazione di Gogs.

Una volta terminato, premi il pulsante "Installa Gogs". L'installazione è istantanea e una volta completata verrai reindirizzato alla pagina di accesso.

Fai clic sul link "Registrati ora".

Il primo utente registrato viene automaticamente aggiunto al gruppo Admin.

Questo è tutto. Gogs è stato installato sulla tua macchina Ubuntu.

Configurazione di Nginx come proxy di terminazione SSL #

Questo passaggio è facoltativo ma è altamente raccomandato. Per utilizzare Nginx come proxy inverso, devi avere un dominio o un sottodominio che punta all'IP pubblico del tuo server. In questo tutorial utilizzeremo gogs.example.com .

Innanzitutto, installa Nginx e genera un certificato SSL Let's Encrypt gratuito seguendo le guide seguenti:

  • Come installare Nginx su Ubuntu 18.04
  • Proteggi Nginx con Let's Encrypt su Ubuntu 18.04

Una volta terminato, apri il tuo editor di testo e modifica il file di blocco del server di dominio:

sudo nano /etc/nginx/sites-enabled/gogs.example.com
/etc/nginx/sites-enabled/gogs.example.com
server {
    listen 80;
    server_name gogs.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://gogs.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name gogs.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/gogs.example.com.access.log;
    error_log /var/log/nginx/gogs.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}
Non dimenticare di sostituire gogs.example.com con il tuo dominio Gogs e impostare il percorso corretto per i file del certificato SSL. Tutte le richieste HTTP verranno reindirizzate a HTTPS

Riavvia il servizio Nginx per rendere effettive le modifiche:

sudo systemctl restart nginx

Successivamente, dobbiamo modificare il dominio Gogs e l'URL di root. Per farlo, apri il file di configurazione e modifica le seguenti righe:

sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
[server]
DOMAIN           = gogs.example.com
ROOT_URL         = https://gogs.example.com/

Riavvia il servizio Gogs digitando:

sudo systemctl restart gogs

A questo punto, Gogs è configurato e puoi accedervi da:https://gogs.example.com

Configurazione delle notifiche e-mail #

Affinché Gogs possa inviare e-mail di notifica, puoi installare Postfix o utilizzare alcuni servizi di posta transazionale come SendGrid, MailChimp, MailGun o SES.

Per abilitare le notifiche e-mail, apri il file di configurazione e modifica le seguenti righe:

sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

Assicurati di inserire le informazioni corrette sul server SMTP.

Riavvia il servizio Gogs per rendere effettive le modifiche:

sudo systemctl restart gogs

Gogs ti consente anche di connetterti a Slack creando webhook web e inviando notifiche ai tuoi canali Slack.

Aggiornamento Gogs #

Per aggiornare Gogs, sono necessari diversi passaggi manuali.

  1. Per prima cosa interrompi il servizio Gogs:

    sudo systemctl stop gogs
  2. Rinominare la directory di installazione di Gogs.

    sudo mv /home/git/gogs{,_old}
  3. Scarica l'ultima versione di Gogs e spostala in /home/git directory:

    VERSION=<THE_LATEST_GOGS_VERSION>wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmpsudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

    Assicurati di cambiare VERSION con l'attuale versione di rilascio di Gogs.

  4. Copia custom , data , log directory nella directory estratta utilizzando il seguente comando rsync:

    sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
  5. Infine, avvia il servizio Gogs:

    sudo systemctl restart gogs

Questo è tutto.


Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Come installare e configurare Redis su Ubuntu 20.04

  5. Come installare e configurare Jenkins su Ubuntu 20.04

Come installare e configurare Redis in Ubuntu 20.04

Come installare e configurare Neo4j su Ubuntu 20.04

Come installare e configurare Ubuntu SDK in Ubuntu 16.04 e 14.04

Come installare e configurare PostgreSQL su Ubuntu

Come installare e configurare Git su Ubuntu 20.04

Come installare e configurare il servizio Gogs Git su Ubuntu Linux