Gitea: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Hinweis 32 Bit)
 
(31 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 10: Zeile 10:
Um Gitea auf der Managed Operation Platform von Hostsharing zu installieren, ist folgende Vorbereitung erforderlich.
Um Gitea auf der Managed Operation Platform von Hostsharing zu installieren, ist folgende Vorbereitung erforderlich.


1. Anlegen eines Domain-Benutzers. In unserem Beispiel xyz00-gitea.
# Anlegen eines Domain-Benutzers. In unserem Beispiel <code>xyz00-gitea</code>.
 
# Anlegen einer Domain. In unserem Beispiel <code>gitea.hs-example.de</code>.
2. Anlegen einer Domain. In unserem Beispiel gitea.hs-example.de
# Anlegen eines Datenbank-Benutzers. Hier <code>xyz00_giteadbuser</code>.
 
# Anlegen einer Datenbank. Hier <code>xyz00_giteadb</code>.
3. Anlegen eines Datenbank-Benutzers. Hier xyz00_giteadbuser.
 
4. Anlegen einer Datenbank. Hier xyz00_giteadb


Auf der Kommandozeile kann man dies folgendermaßen erledigen.
Auf der Kommandozeile kann man dies folgendermaßen erledigen.


Man loggt sich als Paketbenutzer ein und startet die Kommandozeilenversion von HSAdmin mit dem Befehl ''hsscript'':
Man loggt sich als Paketbenutzer ein und startet die Kommandozeilenversion von HSAdmin mit dem Befehl <code>hsscript</code>:


  hsscript -u xyz00 -i
<syntaxhighlight lang=shell>
  Password: ********
hsscript -u xyz00 -i
Password: ********
</syntaxhighlight>


Anschließend kann man die Vorbereitungsschritte 1 bis 4 erledigen:
Anschließend kann man die Vorbereitungsschritte 1 bis 4 erledigen:


  xyz00@hsadmin> user.add({set:{name:'xyz00-gitea',password:'geheim',comment:'Domain-User'}})
<syntaxhighlight lang=shell>
  xyz00@hsadmin> domain.add({set:{name:'gitea.hs-example.de',user:'xyz00-gitea'}})
xyz00@hsadmin> user.add({set:{name:'xyz00-gitea',password:'geheim',shell:'/bin/bash'}})
  xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_giteadbuser',password:'geheim'}})
xyz00@hsadmin> domain.add({set:{name:'gitea.hs-example.de',user:'xyz00-gitea'}})
  xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_giteadb',owner:'xyz00_giteadbuser'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_giteadbuser',password:'geheim'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_giteadb',owner:'xyz00_giteadbuser'}})
</syntaxhighlight>


=== Installation von Gitea ===
=== Installation von Gitea ===
Zeile 38: Zeile 39:
Wenn wir als Paketbenutzer eingeloggt sind, können wir den Benutzer folgendermaßen wechseln:
Wenn wir als Paketbenutzer eingeloggt sind, können wir den Benutzer folgendermaßen wechseln:


  sudo -u xyz00-gitea -i
<syntaxhighlight lang=shell>
 
sudo -u xyz00-gitea -i
</syntaxhighlight>
Nun laden wir das passende Binary herunter.
Nun laden wir das passende Binary herunter.
Auf der Website https://dl.gitea.io/gitea/ finden Sie das jeweils aktuelle Binary (hier die 64-Bit-Version,  
Auf der Website https://dl.gitea.io/gitea/ finden Sie das jeweils aktuelle Binary (hier die 64-Bit-Version,  
für die shared Server h01 bis h08 bitte die 32-Bit-Version gitea-1.7.0-linux-i386 gerunterladen).
für die shared Server h01 bis h08 bitte die 32-Bit-Version gitea-1.7.0-linux-i386 herunterladen).


  wget -O gitea https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64
<syntaxhighlight lang=shell>
  chmod +x gitea
wget -O gitea https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64
chmod +x gitea
</syntaxhighlight>


Wir laden die GPG-Signatur herunter und überprüfen sie:
Wir laden die GPG-Signatur herunter und überprüfen sie:


  wget https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64.asc
<syntaxhighlight lang=shell>
  gpg --keyserver pgp.mit.edu --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
wget https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64.asc
  gpg --verify gitea-1.7.0-linux-amd64.asc gitea-1.7.0-linux-amd64
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.7.0-linux-amd64.asc gitea
</syntaxhighlight>


Nun können wir Gitea testweise starten:
Nun können wir Gitea testweise starten:


  ./gitea web
<syntaxhighlight lang=shell>
 
./gitea web
</syntaxhighlight>


Der Webserver von Gitea startet auf dem Port 3000. Das werden wir später ändern.
Der Webserver von Gitea startet auf dem Port 3000. Das werden wir später ändern.
Zeile 64: Zeile 72:
=== Konfiguration der Domain ===
=== Konfiguration der Domain ===


Zunächst wechseln wir in das Verzeichnis 'doms/gitea.hs-example.de' und löschen den Ordner für die Subdomain 'www':
Zunächst wechseln wir in das Verzeichnis <code>doms/gitea.hs-example.de</code> und löschen den Ordner für die Subdomain 'www':
 
<syntaxhighlight lang=shell>
rm -rf subs/www
rm -rf subs-ssl/www
</syntaxhighlight>


  rm -rf subs/www
  rm -rf subs-ssl/www
 
Anschließend tragen wir die Umleitung auf HTTPS ein, falls dies nicht schon geschehen ist.
Anschließend tragen wir die Umleitung auf HTTPS ein, falls dies nicht schon geschehen ist.


  vi htdocs/.htaccess
<syntaxhighlight lang=shell>
vi htdocs/.htaccess
</syntaxhighlight>
    
    
Der Eintrag muss lauten:
Der Eintrag muss lauten:


  Redirect permanent / https://gitea.hs-example.com/
<syntaxhighlight lang=apache>
Redirect permanent / https://gitea.hs-example.com/
</syntaxhighlight>
    
    
Dann legen wir die Datei htdocs-ssl/.htaccess mit folgendem Inhalt an:
Dann legen wir die Datei <code>htdocs-ssl/.htaccess</code> mit folgendem Inhalt an:


  RewriteEngine on
<syntaxhighlight lang=apache>
  RewriteBase /
DirectoryIndex disabled
  RewriteRule ^(.*) http://localhost:31580/$1 [proxy,last]
RewriteEngine on
 
RewriteBase /
RewriteRule ^(.*) http://localhost:31580/$1 [proxy,last]
</syntaxhighlight>
Merken Sie sich die Portnummer 31580.
Merken Sie sich die Portnummer 31580.
Sie wird später bei der Konfiguration von Gitea gebraucht.
Sie wird später bei der Konfiguration von Gitea gebraucht.
Zeile 92: Zeile 109:
=== Konfiguration von Gitea ===
=== Konfiguration von Gitea ===


Wir editieren nun die Konfigurationsdatei von Gitea 'app.ini'.
Wir editieren nun die Konfigurationsdatei von Gitea <code>app.ini</code>.
Sie befindet sich in dem Verzeichnis '~/custom/conf'.
Sie befindet sich in dem Verzeichnis <code>~/custom/conf</code>.


'''ACHTUNG''': Sie können die Konfiguration teilweise auch über das Webinterface durchführen. Starten Sie dazu Gitea, wie oben beschrieben, und versuchen Sie einen Benutzer zu registrieren. Daraufhin öffnet sich der Konfigurationsdialog. Sie müssen den Gitea-Benutzer, den Namen der Datenbank, den Datenbank-Benutzer und sein Passwort parat haben.
'''ACHTUNG''': Sie können die Konfiguration teilweise auch über das Webinterface durchführen. Starten Sie dazu Gitea, wie oben beschrieben, und versuchen Sie einen Benutzer zu registrieren. Daraufhin öffnet sich der Konfigurationsdialog. Sie müssen den Gitea-Benutzer, den Namen der Datenbank, den Datenbank-Benutzer und sein Passwort parat haben.
Zeile 99: Zeile 116:
Die Konfigurationsdatei beginnt mit allgemeinen Einträgen:
Die Konfigurationsdatei beginnt mit allgemeinen Einträgen:


  APP_NAME = Gitea: Git with a cup of tea
<syntaxhighlight lang=shell>
  RUN_USER = xyz00-gitea
APP_NAME = Gitea: Git with a cup of tea
  RUN_MODE = prod
RUN_USER = xyz00-gitea
 
RUN_MODE = prod
</syntaxhighlight>
 
Im Abschnitt [database] folgen die Angaben zur Datenbank:
Im Abschnitt [database] folgen die Angaben zur Datenbank:


  [database]
<syntaxhighlight lang=ini>
  DB_TYPE  = postgres
[database]
  HOST    = 127.0.0.1:5432
DB_TYPE  = postgres
  NAME    = xyz00_giteadb
HOST    = 127.0.0.1:5432
  USER    = xyz00_giteadbuser
NAME    = xyz00_giteadb
  PASSWD  = geheim
USER    = xyz00_giteadbuser
  SSL_MODE = disable
PASSWD  = geheim
  PATH    = data/gitea.db
SSL_MODE = disable
PATH    = data/gitea.db
</syntaxhighlight>


Es folgt der Pfad zu den Git-Repositorys und die Server-Konfiguration:
Es folgt der Pfad zu den Git-Repositorys und die Server-Konfiguration:


  [repository]
<syntaxhighlight lang=ini>
  ROOT = /home/pacs/xyz00/users/gitea/gitea-repositories
[repository]
 
ROOT = /home/pacs/xyz00/users/gitea/gitea-repositories
  [server]
   
  PROTOCOL        = http
[server]
  SSH_DOMAIN      = gitea.hs-example.de  
PROTOCOL        = http
  DOMAIN          = gitea.hs-example.de
SSH_DOMAIN      = gitea.hs-example.de  
  HTTP_ADDR        = localhost
DOMAIN          = gitea.hs-example.de
  HTTP_PORT        = 31580
HTTP_ADDR        = localhost
  ROOT_URL        = https://gitea.hs-example.de/
HTTP_PORT        = 31580
  DISABLE_SSH      = false
ROOT_URL        = https://gitea.hs-example.de/
  SSH_PORT        = 22
DISABLE_SSH      = false
  LFS_START_SERVER = true
SSH_PORT        = 22
 
LFS_START_SERVER = true
</syntaxhighlight>
 
Für das Schreiben der Log Datei können Sie folgendes konfigurieren:
 
<syntaxhighlight lang=ini>
[log]
MODE      = file
LEVEL      = info
ROOT_PATH  = /home/pacs/xyz00/users/gitea/custom/logs/
ROUTER    = file
LOG_ROTATE = false
</syntaxhighlight>
 
'''ACHTUNG''': Bitte prüfen Sie, ob der Ordner zum Speichern der Log-Dateien von Gitea vorhanden ist. Bei Bedarf erstellen Sie die Ordnerstruktur entsprechend.
 
<syntaxhighlight lang=shell>
mkdir -p /home/pacs/xyz00/users/gitea/custom/logs
</syntaxhighlight>
 
Sie können nun Gitea starten:
Sie können nun Gitea starten:


  ./gitea web
<syntaxhighlight lang=shell>
./gitea web
</syntaxhighlight>
    
    
Der Git-Service ist dann im Browser unter der Adresse gitea.hs-example.de erreichbar.
Der Git-Service ist dann im Browser unter der Adresse gitea.hs-example.de erreichbar.


=== Start- und Stopp-Skripte einrichten ===
=== Service einrichten ===


Zum Schluss müssen Sie noch Start- und Stoppskripte einrichten und Monit konfigurieren.
Zum Schluss müssen Sie noch den Service zum Starten von Gitea einrichten.


Das Startskript speichern Sie unter dem Pfad ~/bin/gitea-start.sh ab.
Das Service Skript speichern Sie unter dem Pfad <code>~/.config/systemd/user/gitea.service</code> ab.
Es hat folgenden Inhalt:
Es hat folgenden Inhalt:


  #!/bin/bash
<syntaxhighlight lang=ini>
  export HOME=/home/pacs/xyz00/users/gitea
Description=Gitea
  export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
   
  export PID=$HOME/.gitea.pid
[Service]
  cd $HOME
Type=simple
  exec $HOME/gitea web >$HOME/custom/logs/gitea.log 2>&1 &
Restart=on-abort
  echo $! > $PID
WorkingDirectory=%h
ExecStart=%h/gitea web
   
[Install]
WantedBy=default.target
</syntaxhighlight>
 
Nun können Sie noch die Rotation der Logfiles konfigurieren.
Dies geschieht in der Datei <code>~/.logrotate</code>:


Das Stoppskript speichern Sie unter dem Pfad ~/bin/gitea-stopp.sh an.
<syntaxhighlight lang=ini>
Es hat folgenden Inhalt:
/home/pacs/xyz00/users/gitea/custom/logs/gitea.log {
  copytruncate
  daily
  rotate 7
  compress
  missingok
}
</syntaxhighlight>
 
Damit logrotate regelmäßig ausgeführt wird, müssen Sie folgenden systemd Timer für denv Domain-Benutzers einrichten:


  #!/bin/bash
<code>~/.config/systemd/user/gitea_logrotate.service</code>
  export HOME=/home/pacs/xyz00/users/gitea
<syntaxhighlight lang=ini>
  export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
[Unit]
  export PID=$HOME/.gitea.pid
Description=rotate gittea logs
  cd $HOME
 
  if [ -f $PID ] ; then
      kill $( cat $PID );
      sleep 20 ;
      kill -9 $( cat $PID ) >/dev/null 2>&1 ;
      rm $PID ;
  fi


Monit ist ein Programm zur Überwachung eines Servers oder eines Dienstes.
[Service]
Das Programm erwartet im Verzeichnis des Domain-Benutzers die Datei '~/.monitrc' mit der entsprechenden Konfiguration.
Type=oneshot
Legen Sie die Datei mit folgendem Inhalt an:
ExecStart=/usr/sbin/logrotate -s /home/pacs/xyz00/users/gitea/.logrotate.state /home/pacs/xyz00/users/gitea/.logrotate
</syntaxhighlight>


  set daemon 600
<code>~/.config/systemd/user/gitea_logrotate.timer</code>
  set logfile /home/pacs/xyz00/users/gitea/custom/logs/monit.log
<syntaxhighlight lang=ini>
  set mailserver localhost
[Unit]
  set alert webmaster@gitea.hs-example.de
Description=rotate gittea logs


  check process gitead with pidfile /home/pacs/xyz00/users/gitea/.gitea.pid
[Timer]
      start program "/home/pacs/xyz00/users/gitea/bin/gitea-start.sh"
OnCalendar=1:51
      stop program "/home/pacs/xyz00/users/gitea/bin/gitea-stop.sh"
Persistent=True
     
Nun können Sie noch die Rotation der Logfiles konfigurieren.
Dies geschieht in der Datei '~/.logrotate':


  /home/pacs/xyz00/users/gitea/custom/logs/gitea.log {
[Install]
    copytruncate
WantedBy=timers.target
    daily
</syntaxhighlight>
    rotate 7
    compress
    missingok
  }
  /home/pacs/xyz00/users/gitea/custom/logs/monit.log {
    copytruncate
    monthly
    rotate 2
    compress
    missingok
  }


Damit die Konfiguration für logrotate und monit auch nach einem Server-Neustart eingelesen werden, müssen Sie folgenden Eintrag in der crontab der Domain-Benutzers machen:
Timer aktivieren und starten:
<syntaxhighlight lang=bash>
$ systemctl --user enable gitea_logrotate.timer
$ systemctl --user start gitea_logrotate.timer
</syntaxhighlight>


  # m h  dom mon dow  command
  HOME=/home/pacs/xyz00/users/gitea
  PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
  PID=$HOME/.gitea.pid
  @reboot /usr/bin/monit -c $HOME/.monitrc > /dev/null
  51 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate
Wichtig ist der @reboot-Eintrag, der automatisch nach einem Neustart des Hosts ausgeführt wird.
Die Uhrzeit für die Logrotation können Sie beliebig einstellen.
Die Uhrzeit für die Logrotation können Sie beliebig einstellen.


Abschließend können Sie Ihre Gitea-Instanz starten:
Abschließend können Sie Ihre Gitea-Instanz starten:


  ~/bin/gitea-start.sh
<syntaxhighlight lang=bash>
export XDG_RUNTIME_DIR=/run/user/$UID
systemctl --user start gitea
</syntaxhighlight>
 
'''ACHTUNG''': Bitte beachten Sie, dass für die Ausführung von Benutzerskripten mit systemctl für den aktuellen Benutzer im hsadmin die Shell "/bin/bash" konfiguriert sein muss.
 
=== Anmeldung über LDAP einrichten ===
 
Ohne weitere Konfiguration, können nun lokale Benutzer angelegt werden.
 
Falls Sie die Benutzerverwaltung noch an ein LDAP Verzeichnis anschließen wollen, können Sie diese Schritte ausführen:
 
Sie finden hier die Informationen zum Einrichten eines OpenLDAP Dienstes: [[OpenLDAP]]
 
Gehen Sie in der Weboberfläche von Git in die Administration, und dort in den Reiter "Authentifizierungsquellen", oder direkt auf dem Link https://git.hs-example.de/admin/auths
 
Dort sollten dann folgende Werte eingetragen werden:
* Authentifizierungstyp: LDAP (via BindDN)
* Host: <code>localhost</code> (bzw. der Name des Servers, auf dem OpenLDAP erreichbar ist)
* Port: <code>30389</code> (bzw. der Port auf dem OpenLDAP erreichbar ist)
* DN binden: <code>cn=admin,dc=hs-example,dc=de</code> (Der Benutzer der Zugriff auf alle Benutzer hat)
* Passwort binden: Das Passwort von dem DN Benutzer
* Basis für Benutzersuche: <code>ou=users,dc=hs-example,dc=de</code>
* Benutzerfilter: <code>(&(objectClass=inetOrgPerson)(uid=%s))</code>
* Admin-Filter: <code>(memberof=cn=admins,ou=groups,dc=hs-example,dc=de)</code> (diese Benutzer haben Admin Rechte in Gitea)
* Benutzernamens-Attribute: <code>DN</code>
* Vornamensattribut: <code>givenName</code>
* Nachnamensattribut: <code>sn</code>
* E-Mail-Attribut: <code>mail</code>
 
Hier noch ein Screenshot:
 
[[Datei:Gitea_LDAP_Einrichtung.png|500px]]
 
== weiterführende Links ==
 
* [https://gitea.io/ Gitea Webseite]
* [https://docs.gitea.io/ Dokumentation von Gitea]
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/gitea Ansible Playbook für Hostsharing]
 
[[Kategorie:HSDoku]]
[[Kategorie:Installationsanleitungen]]
[[Kategorie:Ansible Playbook]]
[[Kategorie:Software]]
[[Kategorie:Projektmanagement]]
[[Kategorie:Projektverwaltung]]

Aktuelle Version vom 3. Dezember 2024, 14:06 Uhr

Gitea installieren

Gitea ist ein einfacher, selbst gehosteter Git-Service wie GitHub oder GitLab. Die Software ist ein Fork von Gogs und ebenfalls in der Programmiersprache Go geschrieben. Gitea benötigt wenig Ressourcen. Um Gitea auf der Hostsharing Plattform nutzen zu können, benötigt man entweder einen Managed Server oder man muss für seinen Managed Webspace einen Daemon hinzubuchen.

Gitea unterstützt verschiedene Datenbanken. Wir gehen in dieser Anleitung davon aus, dass PostgreSQL benutzt wird.

Vorbereitung der Installation

Um Gitea auf der Managed Operation Platform von Hostsharing zu installieren, ist folgende Vorbereitung erforderlich.

  1. Anlegen eines Domain-Benutzers. In unserem Beispiel xyz00-gitea.
  2. Anlegen einer Domain. In unserem Beispiel gitea.hs-example.de.
  3. Anlegen eines Datenbank-Benutzers. Hier xyz00_giteadbuser.
  4. Anlegen einer Datenbank. Hier xyz00_giteadb.

Auf der Kommandozeile kann man dies folgendermaßen erledigen.

Man loggt sich als Paketbenutzer ein und startet die Kommandozeilenversion von HSAdmin mit dem Befehl hsscript:

hsscript -u xyz00 -i
Password: ********

Anschließend kann man die Vorbereitungsschritte 1 bis 4 erledigen:

xyz00@hsadmin> user.add({set:{name:'xyz00-gitea',password:'geheim',shell:'/bin/bash'}})
xyz00@hsadmin> domain.add({set:{name:'gitea.hs-example.de',user:'xyz00-gitea'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_giteadbuser',password:'geheim'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_giteadb',owner:'xyz00_giteadbuser'}})

Installation von Gitea

Gitea wird als Binary zur Verfügung gestellt. Wir installieren das Binary im Verzeichnis des Domain-Benutzers. Wenn wir als Paketbenutzer eingeloggt sind, können wir den Benutzer folgendermaßen wechseln:

sudo -u xyz00-gitea -i

Nun laden wir das passende Binary herunter. Auf der Website https://dl.gitea.io/gitea/ finden Sie das jeweils aktuelle Binary (hier die 64-Bit-Version, für die shared Server h01 bis h08 bitte die 32-Bit-Version gitea-1.7.0-linux-i386 herunterladen).

wget -O gitea https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64
chmod +x gitea

Wir laden die GPG-Signatur herunter und überprüfen sie:

wget https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64.asc
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.7.0-linux-amd64.asc gitea

Nun können wir Gitea testweise starten:

./gitea web

Der Webserver von Gitea startet auf dem Port 3000. Das werden wir später ändern.

Der Server kann mit Ctrl-C beendet werden.

Konfiguration der Domain

Zunächst wechseln wir in das Verzeichnis doms/gitea.hs-example.de und löschen den Ordner für die Subdomain 'www':

rm -rf subs/www
rm -rf subs-ssl/www

Anschließend tragen wir die Umleitung auf HTTPS ein, falls dies nicht schon geschehen ist.

vi htdocs/.htaccess

Der Eintrag muss lauten:

Redirect permanent / https://gitea.hs-example.com/

Dann legen wir die Datei htdocs-ssl/.htaccess mit folgendem Inhalt an:

DirectoryIndex disabled
RewriteEngine on
RewriteBase /
RewriteRule ^(.*) http://localhost:31580/$1 [proxy,last]

Merken Sie sich die Portnummer 31580. Sie wird später bei der Konfiguration von Gitea gebraucht. Die Portnummer bekommen Sie vom Hostmaster, wenn Sie für Ihren Webspace einen Serverdienst (Daemon) buchen. Wenn Sie einen Managed Server haben, können Sie selbst die Portnummer auswählen.

Damit ist die Konfiguration von Apache abgeschlossen.

Konfiguration von Gitea

Wir editieren nun die Konfigurationsdatei von Gitea app.ini. Sie befindet sich in dem Verzeichnis ~/custom/conf.

ACHTUNG: Sie können die Konfiguration teilweise auch über das Webinterface durchführen. Starten Sie dazu Gitea, wie oben beschrieben, und versuchen Sie einen Benutzer zu registrieren. Daraufhin öffnet sich der Konfigurationsdialog. Sie müssen den Gitea-Benutzer, den Namen der Datenbank, den Datenbank-Benutzer und sein Passwort parat haben.

Die Konfigurationsdatei beginnt mit allgemeinen Einträgen:

APP_NAME = Gitea: Git with a cup of tea
RUN_USER = xyz00-gitea
RUN_MODE = prod

Im Abschnitt [database] folgen die Angaben zur Datenbank:

[database]
DB_TYPE  = postgres
HOST     = 127.0.0.1:5432
NAME     = xyz00_giteadb
USER     = xyz00_giteadbuser
PASSWD   = geheim
SSL_MODE = disable
PATH     = data/gitea.db

Es folgt der Pfad zu den Git-Repositorys und die Server-Konfiguration:

[repository]
ROOT = /home/pacs/xyz00/users/gitea/gitea-repositories
    
[server]
PROTOCOL         = http
SSH_DOMAIN       = gitea.hs-example.de 
DOMAIN           = gitea.hs-example.de
HTTP_ADDR        = localhost
HTTP_PORT        = 31580
ROOT_URL         = https://gitea.hs-example.de/
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true

Für das Schreiben der Log Datei können Sie folgendes konfigurieren:

[log]
MODE       = file
LEVEL      = info
ROOT_PATH  = /home/pacs/xyz00/users/gitea/custom/logs/
ROUTER     = file
LOG_ROTATE = false

ACHTUNG: Bitte prüfen Sie, ob der Ordner zum Speichern der Log-Dateien von Gitea vorhanden ist. Bei Bedarf erstellen Sie die Ordnerstruktur entsprechend.

mkdir -p /home/pacs/xyz00/users/gitea/custom/logs

Sie können nun Gitea starten:

./gitea web

Der Git-Service ist dann im Browser unter der Adresse gitea.hs-example.de erreichbar.

Service einrichten

Zum Schluss müssen Sie noch den Service zum Starten von Gitea einrichten.

Das Service Skript speichern Sie unter dem Pfad ~/.config/systemd/user/gitea.service ab. Es hat folgenden Inhalt:

Description=Gitea
    
[Service]
Type=simple
Restart=on-abort
WorkingDirectory=%h
ExecStart=%h/gitea web
    
[Install]
WantedBy=default.target

Nun können Sie noch die Rotation der Logfiles konfigurieren. Dies geschieht in der Datei ~/.logrotate:

/home/pacs/xyz00/users/gitea/custom/logs/gitea.log {
  copytruncate
  daily
  rotate 7
  compress
  missingok
}

Damit logrotate regelmäßig ausgeführt wird, müssen Sie folgenden systemd Timer für denv Domain-Benutzers einrichten:

~/.config/systemd/user/gitea_logrotate.service

[Unit]
Description=rotate gittea logs

[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate -s /home/pacs/xyz00/users/gitea/.logrotate.state /home/pacs/xyz00/users/gitea/.logrotate

~/.config/systemd/user/gitea_logrotate.timer

[Unit]
Description=rotate gittea logs

[Timer]
OnCalendar=1:51
Persistent=True

[Install]
WantedBy=timers.target

Timer aktivieren und starten:

$ systemctl --user enable gitea_logrotate.timer
$ systemctl --user start gitea_logrotate.timer

Die Uhrzeit für die Logrotation können Sie beliebig einstellen.

Abschließend können Sie Ihre Gitea-Instanz starten:

export XDG_RUNTIME_DIR=/run/user/$UID
systemctl --user start gitea

ACHTUNG: Bitte beachten Sie, dass für die Ausführung von Benutzerskripten mit systemctl für den aktuellen Benutzer im hsadmin die Shell "/bin/bash" konfiguriert sein muss.

Anmeldung über LDAP einrichten

Ohne weitere Konfiguration, können nun lokale Benutzer angelegt werden.

Falls Sie die Benutzerverwaltung noch an ein LDAP Verzeichnis anschließen wollen, können Sie diese Schritte ausführen:

Sie finden hier die Informationen zum Einrichten eines OpenLDAP Dienstes: OpenLDAP

Gehen Sie in der Weboberfläche von Git in die Administration, und dort in den Reiter "Authentifizierungsquellen", oder direkt auf dem Link https://git.hs-example.de/admin/auths

Dort sollten dann folgende Werte eingetragen werden:

  • Authentifizierungstyp: LDAP (via BindDN)
  • Host: localhost (bzw. der Name des Servers, auf dem OpenLDAP erreichbar ist)
  • Port: 30389 (bzw. der Port auf dem OpenLDAP erreichbar ist)
  • DN binden: cn=admin,dc=hs-example,dc=de (Der Benutzer der Zugriff auf alle Benutzer hat)
  • Passwort binden: Das Passwort von dem DN Benutzer
  • Basis für Benutzersuche: ou=users,dc=hs-example,dc=de
  • Benutzerfilter: (&(objectClass=inetOrgPerson)(uid=%s))
  • Admin-Filter: (memberof=cn=admins,ou=groups,dc=hs-example,dc=de) (diese Benutzer haben Admin Rechte in Gitea)
  • Benutzernamens-Attribute: DN
  • Vornamensattribut: givenName
  • Nachnamensattribut: sn
  • E-Mail-Attribut: mail

Hier noch ein Screenshot:

Gitea LDAP Einrichtung.png

weiterführende Links