Android

Hoe Gogs op ubuntu 18.04 te installeren en configureren

How to install Gogs on a Linux Server (DigitalOcean)

How to install Gogs on a Linux Server (DigitalOcean)

Inhoudsopgave:

Anonim

Gogs is een zelf-gehoste open source git-server geschreven in Go. Het bevat een repository-bestandseditor, het bijhouden van projectproblemen en een ingebouwde wiki.

Gogs is een lichtgewicht applicatie en kan worden geïnstalleerd op systemen met een laag vermogen. Als je op zoek bent naar een alternatief voor Gitlab met een veel kleinere geheugenafdruk en je hebt niet alle toeters en bellen nodig die Gitlab biedt, dan moet je zeker Gogs proberen.

Deze tutorial behandelt de stappen voor het installeren en configureren van Gogs op Ubuntu 18.04. Dezelfde instructies zijn van toepassing op Ubuntu 16.04 en elke andere op Ubuntu gebaseerde distributie.

Voordat je begint

Gogs kan de SQLite-, PostgreSQL- of MySQL / MariaDB-database gebruiken om al zijn gegevens op te slaan.

In deze zelfstudie gebruiken we SQLite als de gewenste database. Als SQLite niet op uw systeem is geïnstalleerd, kunt u het installeren door te typen:

sudo apt install sqlite3

Voor een extra beveiligingslaag wordt aanbevolen om een ​​standaard firewall in te stellen. U kunt de stappen volgen in onze handleiding Een firewall instellen met UFW op Ubuntu 18.04.

Gogs installeren

We zullen Gogs van binary installeren. De installatie is een vrij eenvoudig proces.

Git installeren

De eerste stap is om Git op uw server te installeren. Hiertoe vernieuwt u de lokale pakketindex en installeert u het git-pakket door de volgende opdrachten uit te voeren als sudo-gebruiker:

sudo apt update sudo apt install git

Controleer de installatie door de Git-versie weer te geven:

git --version

git version 2.17.1

Maak een Git-gebruiker

Maak een nieuwe systeemgebruiker om de Gogs-service uit te voeren door te typen:

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

Het commando zal de gebruiker aanmaken en de thuismap instellen op /home/git . De uitvoer ziet er ongeveer zo uit:

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'…

Gogs binair downloaden

Ga naar de Gogs-downloadpagina en download het nieuwste binaire bestand voor uw architectuur. Op het moment van schrijven is de nieuwste versie 0.11.86. Als er een nieuwe versie beschikbaar is, wijzigt u de variabele VERSION in de onderstaande opdracht.

Download het Gogs-archief in de map /tmp met de volgende wget-opdracht:

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

Zodra de download is voltooid, pak je het Gogs tar.gz-bestand uit en verplaats je het naar de map /home/git :

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

Voer de volgende opdracht uit om het eigendom van de Gogs-installatiemap te wijzigen in de gebruiker en groep git:

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

Maak een systemd Unit File

Gogs wordt geleverd met een Systemd-eenheidsbestand dat al is geconfigureerd om aan onze instellingen te voldoen.

Kopieer het bestand naar de /etc/systemd/system/ map door te typen:

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

Zodra u klaar bent, start en schakelt u de Gogs-service in:

sudo systemctl start gogs sudo systemctl enable gogs

Controleer of de service met succes is gestart:

* 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

Installeer Gogs met behulp van het webinstallatieprogramma

Nu Gogs is gedownload en actief is, is het tijd om de installatie via de webinterface af te ronden.

Open uw browser, typ http://YOUR_DOMAIN_IR_IP:3000 en een scherm zoals het volgende verschijnt:

De eerste geregistreerde gebruiker wordt automatisch toegevoegd aan de beheerdersgroep.

Dat is het. Gogs is geïnstalleerd op uw Ubuntu-machine.

Nginx configureren als SSL-beëindigingsproxy

Deze stap is optioneel, maar wordt ten zeerste aanbevolen. Als u Nginx als een omgekeerde proxy wilt gebruiken, moet u een domein of subdomein hebben dat naar het openbare IP-adres van uw server verwijst. In deze zelfstudie gebruiken we gogs.example.com .

Installeer eerst Nginx en genereer een gratis Let's Encrypt SSL-certificaat door de onderstaande handleidingen te volgen:

Zodra u klaar bent, opent u uw teksteditor en bewerkt u het blokbestand van de domeinserver:

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; } }

Vergeet niet om gogs.example.com te vervangen door uw Gogs-domein en het juiste pad naar de SSL-certificaatbestanden in te stellen. Alle HTTP-aanvragen worden doorgestuurd naar Start de Nginx-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart nginx

Vervolgens moeten we het Gogs-domein en de root-URL wijzigen. Open hiervoor het configuratiebestand en bewerk de volgende regels:

sudo nano /home/git/gogs/custom/conf/app.ini /home/git/gogs/custom/conf/app.ini

DOMAIN = gogs.example.com ROOT_URL =

Start de Gogs-service opnieuw door te typen:

sudo systemctl restart gogs

Op dit moment is Gogs geconfigureerd en kunt u het openen op: https://gogs.example.com

E-mailmeldingen configureren

Om Gogs in staat te stellen notificatie-e-mails te verzenden, kunt u Postfix installeren of een transactionele e-mailservice gebruiken, zoals SendGrid, MailChimp, MailGun of SES.

Om e-mailmeldingen in te schakelen, opent u het configuratiebestand en bewerkt u de volgende regels:

sudo nano /home/git/gogs/custom/conf/app.ini /home/git/gogs/custom/conf/app.ini

ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORD

Zorg ervoor dat u de juiste SMTP-serverinformatie invoert.

Start de Gogs-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart gogs

Met Gogs kunt u ook verbinding maken met Slack door een webhook te maken en meldingen naar uw Slack-kanalen te verzenden.

Gogs upgraden

Om Gogs te upgraden, zijn verschillende handmatige stappen vereist.

  1. Stop eerst de Gogs-service:

    sudo systemctl stop gogs

    Wijzig de naam van de Gogs-installatiemap.

    sudo mv /home/git/gogs{, _old}

    Download de nieuwste Gogs-versie en verplaats deze naar de map /home/git :

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

    Zorg ervoor dat u VERSION wijzigt met de daadwerkelijke Gogs-releaseversie.

    Kopieer custom , data , log naar de uitgepakte map met de volgende rsync-opdracht:

    sudo rsync -a /home/git/gogs_old/{custom, data, log} /home/git/gogs/

    Start ten slotte de Gogs-service:

    sudo systemctl restart gogs

Dat is het.

Conclusie

Deze tutorial leidde je door de installatie en configuratie van Gogs op Ubuntu 18.04. U kunt nu uw eerste project maken en uw nieuwe Gogs-server gaan gebruiken.

ubuntu gogs