Git-Leicht­ge­wicht Gogs

Inhalt

Herz­stück jeder Ent­wick­lungs­um­ge­bung ist ein Ver­si­ons-Ver­wal­tungs­sys­tem. Am wei­tes­ten ver­brei­tet in der Open-Source-Gemein­de ist Git - es ist aber auch berüch­tigt, wenn es um kom­pli­zier­te Instal­la­ti­on, umfang­rei­che Abhän­gig­kei­ten und auf­wen­di­ge Ver­wal­tung geht.

Eine wesent­lich ein­fa­che­re Lösung für einen selbst gehos­te­ten Git-Ser­vice, der nur einer klei­nen Ent­wick­ler­grup­pe die­nen soll, ist Gogs. Er soll wie immer natür­lich als Docker-Con­tai­ner unter open­me­diav­ault laufen.

Daten­bank vorbereiten

Zunächst berei­ten wir die Daten­bank vor. MariaDB wur­de ja schon für Next­cloud instal­liert und läuft auch für ande­re Diens­te. Es muss also nur eine zusätz­liche Daten­bank und ein Nut­zer mit den nöti­gen Rech­ten ange­legt werden:

host# docker exec -it mariadb bash
docker# mysql -u root -p <root-password>
MariaDB> create database gogs;
MariaDB> create user gogs@localhost identified by '<passwort>';
MariaDB> create user gogs@'%' identified by '<passwort>';
MariaDB> grant all privileges on gogs.* to gogs@localhost;
MariaDB> grant all privileges on gogs.* to gogs@'%';

Docker ein­rich­ten

In der omv-Docker-GUI laden wir das Gogs-Image mit Docker → Image bereit­stel­len und geben als Quel­le gogs/gogs an. Nack kli­cken auf Image star­ten erscheint der Kon­fi­guar­ti­ons­dia­log für den Container:

  • Con­tai­ner Name: gogs
  • Restart Poli­cy: always
  • Netz­werk­mo­dus: Bridge
  • Host­na­me: gogs.mydmain.tld
  • Portweiterleitung:
    • Host IP0.0.0.0
    • Host Port: 8500
    • Expo­sed Port: 3000
    • Pro­to­col: tcp
  • Port­wei­ter­lei­tung:
    • Host IP0.0.0.0
    • Host Port: 8522
    • Expo­sed Port: 22
    • Pro­to­col: tcp
  • Volu­mes and Bind mounts:
    • Host path: /container/gogs/data
    • Con­tai­ner path: /data

Gogs kon­fi­gu­rie­ren

Nach dem Star­ten kann man unter http://gogs.mydomain.tld:8500 den Gogs-Kon­fi­gu­ra­ti­ons­dia­log auf­ru­fen. Dort trägt man zunächst die Anga­ben zur Daten­bank ein. Als URL soll­te man die spä­ter von „außen” erreich­are Adres­se ein­tra­gen, also z.B. https://gogs.mydomain.tld.

Das Anle­gen des Admi­nis­tra­tor-Kon­tos ist zwar optio­nal, soll­te aber der Voll­stän­dig­keit hal­ber auch gleich hier erle­digt wer­den. Ansons­ten wird der ers­te ange­leg­te Nut­zer auto­ma­tisch zum Administrator.

Rever­se Pro­xy definieren

Schließ­lich sor­gen wir noch mit einem nginx-Rever­se-Pro­xy dafür, dass die Gogs-Instal­la­ti­on unter ver­schlüs­selt unter https://gogs.mydomain.tld erreich­bar wird. Der Name muss zuvor natür­lich so im DNS oder hosts-Datei ein­ge­tra­gen wer­den, dass er auf die omv-Ser­ver-Adres­se zeigt. 

Den Rever­se Pro­xy rich­ten wir über Diens­te → nginx → Ser­ver → Hin­zu­fü­gen mit fol­gen­den Anga­ben ein:

  • Akti­vie­ren
  • Ver­zeich­nis: kei­nes
  • Host­typ: Namens­ba­siert
  • Ser­ver­na­me: gogs.mydmain.tld
  • SSL akti­vie­ren
  • Zer­ti­fi­kat: <aus­wäh­len>
  • Only use SSL
  • Zusätz­liche Optionen:
location / {
proxy_pass http://127.0.0.1:8500;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// https://;
}

Fer­tig!

Haben wir alles rich­tig gemacht, soll­te nach dem Spei­chern und Akti­vie­ren der Kon­fi­gu­ra­ti­on unser gogs jetzt unter https://gogs.mydomain.tld erreich­bar sein.


Quel­len:

2 Kommentare

Schreibe einen Kommentar zu Eine Entwicklungsumgebung für wordpress - Müggelland EDV-Splitter Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

20 − zwölf =