cgit on Uberspace ################# Also zuerst muss ich sagen die Installation von cgit ist nicht ganz einfach, weil es das Kompilieren von Code und arbeiten auf der Shell verlangt. Daher sind minimale Kenntnisse schon nötig und jeder der sich das nicht zutraut sollte ehr Abstand von der Installation nehmen. Der erste Schritt ist wir beschaffen uns den Quellcode von cgit und legen ein Verzeichnis an in dem wir dann weiterverarbeiten können. .. code-block:: bash mkdir -p ~/tmp && cd ~/tmp/ curl --silent http://git.zx2c4.com/cgit/snapshot/cgit-0.10.2.tar.xz | tar -xJf - cd cgit-0.10.2/ Im nächsten Schritt brauchen wir einmal den Editor nano oder vim, je nach dem wo die Vorlieben sind. Wir müssen nämlich die Makefile anpassen da cgit drauf ausgelegt ist unter root-Rechten Konfiguriert und Installiert zu werden. Da wir die bei uberspace nicht haben müssen wir die Makefile ändern mit `nano Makefile` z.B. rufen wir die auf und ändern die ab das sie so aussieht, wobei `%ubernaut` gegen deinen Username bei uberspace getauscht werden muss. .. code-block:: bash CGIT_VERSION = v0.10.2 CGIT_SCRIPT_NAME = cgit.cgi CGIT_SCRIPT_PATH = /home/%ubernaut/cgi-bin CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH) CGIT_CONFIG = /home/%ubernaut/etc/cgitrc CACHE_ROOT = /home/%ubernaut/cache/cgit prefix = /usr libdir = $(prefix)/lib ... Denk daran `%ubernaut` gegen deinen Username auf dem uberspace zu tauschen, wenn du da immer noch `%ubernaut` drin stehen hast machst du was falsch! Danach die Makefile speichern und schließen. Danach muss nur noch eine passende Version von git installiert werden, cgit kompiliert werden und an die richtigen Stellen kopiert werden, in diesem Fall `~/html/git/` .. code-block:: bash make get-git make Dadurch werden die benötigten Dateien erstellt, wir müssen sie nur noch an dir richtigen Orte Kopieren. Da Cgit leider etwas, naja sagen wir mal "kaputt" ist verlangt er für die css und die png immer den root Pfad, und ich habe noch keine Möglichkeit gefunden das zu unterbinden. Daher kopieren wir die css und die png ins root Verzeichnis wo sie hoffentlich nicht stören. Wenn jemand eine andere Lösung kennt, her damit. Dies ist bei einer eignen Subdomain nicht nötig, dazu später mehr. .. code-block:: bash cp cgit /home/$USER/cgi-bin/cgit.cgi chmod 755 /home/$USER/cgi-bin/cgit.cgi cp cgit.css /home/$USER/html/ cp cgit.png /home/$USER/html/ Jetzt fehlt nur noch die Grundconfig und die htaccess. Wir legen also eine mit z.B. `nano /home/%ubernaut/html/git/.htaccess` eine an und zwar mit diesem Inhalt. .. code-block:: bash RewriteEngine on Options +ExecCGI RewriteRule (.*) /cgi-bin/cgit.cgi/$1 [PT] Dann brauchen wir noch eine einfach cgitrc zur Steuerung von cgit. Also wieder z.B. `nano /home/%ubernaut/etc/cgitrc` und dort mit diesem Inhalt .. code-block:: bash virtual-root=/git enable-index-links=1 enable-log-filecount=1 enable-log-linecount=1 enable-commit-graph=1 snapshots=tar.gz tar.bz zip So jetzt sollte unter eurer uberspace Adresse (z.B. http://%ubernaut.%server.uberspace.de/git) euer leeres cgit ohne jede Repos zu sehen sein. Wie ihr eigne Repos hinzufügt könnt ihr nun in der `manpage zu cgitrc `_ nachlesen. cgit als subdomain ================== Wer seine eigne Domain auf uberspace aufgeschaltet hat und nun gerne ein git.domain.tld haben will muss eigentlich nur Folgendes anders machen. .. code-block:: bash cp cgit /home/$USER/cgi-bin/cgit.cgi chmod 755 /home/$USER/cgi-bin/cgit.cgi mkdir /var/www/virtual/$USER/git.domain.tld cp cgit.css /var/www/virtual/$USER/git.domain.tld cp cgit.png /var/www/virtual/$USER/git.domain.tld Dann nur noch eine htaccess mit folgendem Inhalt in dem git.domain.tld anlegen .. code-block:: bash RewriteEngine on Options +ExecCGI RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) /cgi-bin/cgit.cgi/$1 [PT] Dann noch in der cgitrc das `virtual-root=/git` mit `virtual-root=/` und fertig ist git.domain.tld. Viel Spass mit dem eignem Cgit!