git
Dies ist eine alte Version des Dokuments!
Git hosten
Für das „normale“ Git benötigt man eigentlich gar nichts. Über SSH und die Kommandozeilenwerkzeuge kann man so ziemlich alles machen. Hier geht es allerdings um eine schöne Web-Oberfläche.
Einige Anmerkungen:
- Gitlab ist komplex und langsamn
- CGit und Gitweb sind zu minimalistisch
- Gitea (https://gitea.io/) scheint vielversprechend.
Gitea
Merker! Unvollständig!
apt-get install git mariadb-server adduser --system --shell /bin/bash --gecos 'Gitea Server' \ --group --disabled-password --home /srv/gitea \ gitea mysql CREATE DATABASE gitea; GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY '********'; cd wget https://github.com/go-gitea/gitea/releases/download/v1.15.8/gitea-1.15.8-linux-amd64.xz apt-get install xz-utils xz --decompress gitea-1.15.8-linux-amd64.xz mv gitea-1.15.8-linux-amd64 /usr/local/bin/gitea chmod +x /usr/local/bin/gitea
Test und Vorkonfiguration
gitea --version mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log} chown gitea:gitea /var/lib/gitea/{data,indexers,log} chmod 750 /var/lib/gitea/{data,indexers,log} chown root:gitea /etc/gitea chmod 770 /etc/gitea
Erster Start
GITEA_CUSTOM=/var/lib/gitea/custom /usr/local/bin/gitea web -c /etc/gitea/app.ini CTRL-C
Konfigurationsdatei
- /etc/gitea/app.ini
APP_NAME = Example Gitea RUN_USER = gitea RUN_MODE = prod [server] DOMAIN = gitea.example.com ROOT_URL = http://gitea.example.com/
Apache-Konfiguration für einen virtuellen Host erstellen. Dabei zuerst nur den Part für den Port 80 aktivieren. Dann ein Let's Encrypt-Zertifikat erstellen und anschließend den Port 443 einschalten.
- /etc/apache2/sites-available/gitea.conf
<VirtualHost *:80> ServerName gitea.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html Alias "/.well-known/acme-challenge" "/var/www/lets_encrypt/challenges" RedirectMatch Permanent ^(?!/\.well-known/).* https://gitea.example.com CustomLog ${APACHE_LOG_DIR}/gitea_access.log combined ErrorLog ${APACHE_LOG_DIR}/gitea_error.log LogLevel warn </VirtualHost> <VirtualHost *:443> ServerName gitea.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html ProxyPreserveHost On ProxyRequests off AllowEncodedSlashes NoDecode ProxyPass / http://localhost:3000/ nocanon CustomLog ${APACHE_LOG_DIR}/gitea_access.log combined ErrorLog ${APACHE_LOG_DIR}/gitea_error.log SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS" SSLCertificateFile /etc/ssl/certs/gitea.crt SSLCertificateKeyFile /etc/ssl/private/gitea.key </VirtualHost>
Site aktivieren
a2ensite gitea service apache2 reload
TODO
- Die Pfade und Verzeichnisse sind noch nicht zu 100% so wie es sein soll vermutlich
- Init-Skript fehlt
Achtung: Das folgende Script ist noch nicht vollständig entwickelt!
- /etc/init.d/gitea
! /bin/sh ### BEGIN INIT INFO # Provides: gitea # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Gitea server # Description: Start the Gitea server ### END INIT INFO NAME=gitea PIDFILE=/run/$NAME.pid DAEMON=/usr/local/bin/$NAME DAEMON_ARGS="web -q -c /etc/gitea/app.ini -w /var/lib/gitea -C /var/lib/gitea/custom" # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. . /lib/lsb/init-functions do_start() { start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --chuid gitea:gitea --start -m --pidfile $PIDFILE --background --exec $DAEMON -- $DAEMON_ARGS \ || return 2 } do_stop() { start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac exit 0
Starten von Gitea, anschließend die Webseite aufrufen.
Einstellungen
Repository-Verzeichnis /var/lib/gitea/data/repositories Git-LFS-Wurzelpfad /var/lib/gitea/data/lfs Logdateipfad /var/lib/gitea/log Optionale Einstellungen Email-Einstellungen SMTP-Server localhost E-Mail senden als gitea@example.com Administratoreinstellungen Administrator-Benutzername admin
git.1640718163.txt.gz · Zuletzt geändert: 28.12.2021 19:02 von thooge