Nächste: Spieldienste, Vorige: Virtualisierungsdienste, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services version-control)
stellt einen Dienst zur
Verfügung, der einen Fernzugriff auf lokale Git-Repositorys
ermöglicht. Dafür gibt es drei Möglichkeiten: den
git-daemon-service-type
, der Zugang zu Repositorys über das
ungesicherte, TCP-basierte git://
-Protokoll gewährt, das Erweitern
des nginx
-Webservers, um ihn als Proxy für Anfragen an das
git-http-backend
einzusetzen, oder mit dem cgit-service-type
eine Weboberfläche zur Verfügung zu stellen.
Diensttyp für einen Dienst, der git daemon
ausführt. Der Befehl
startet den Git-Daemon, einen einfachen TCP-Server, um Repositorys über das
Git-Protokoll für anonymen Zugriff zugänglich zu machen.
Der Wert des Dienstes muss ein
<git-daemon-configuration>
-Verbundsobjekt sein. Nach Vorgabe wird
Lese-Zugriff auf exportierte36 Repositorys
in /srv/git gewährt.
Datentyp, der die Konfiguration für git-daemon-service-type
repräsentiert.
package
(Vorgabe: git
)Paketobjekt des verteilten Versionskontrollsystems Git.
export-all?
(Vorgabe: #f
)Ob Zugriff auf alle Git-Repositorys gewährt werden soll, selbst wenn keine git-daemon-export-ok-Datei in ihrem Verzeichnis gefunden wird.
base-path
(Vorgabe: /srv/git)Ob alle Pfadanfragen behandelt werden sollen, als wären sie relativ zum
angegebenen Pfad. Wenn Sie git daemon
mit (base-path
"/srv/git")
auf ‘example.com’ ausführen und später versuchen,
‘git://example.com/hello.git
’ zu pullen, wird der Git-Daemon den
Pfad als /srv/git/hello.git interpretieren.
user-path
(Vorgabe: #f
)Ob die ~benutzerkonto
-Notation in Anfragen verwendet werden
darf. Wird hier die leere Zeichenkette angegeben, werden Anfragen an
‘git://host/~alice/foo
’ als Anfragen verstanden, auf das
foo
-Repository im Persönlichen Verzeichnis des
alice
-Benutzerkontos verstanden. Wird (user-path "pfad")
angegeben, wird dieselbe Anfrage als eine Anfrage verstanden, auf das
pfad/foo-Repository im Persönlichen Verzeichnis des
alice
-Benutzerkontos zuzugreifen.
listen
(Vorgabe: '()
)Ob auf bestimmte IP-Adressen oder Rechnernamen („Hostnames“) gelauscht werden soll. Vorgegeben ist auf allen.
port
(Vorgabe: #f
)Ob auf einer alternativen Portnummer gelauscht werden soll. Vorgegeben ist 9418.
whitelist
(Vorgabe: '()
)Wenn dies nicht leer gelassen wird, wird nur der Zugriff auf die aufgelisteten Verzeichnisse gewährt.
extra-options
(Vorgabe: '()
)Zusätzliche Befehlszeilenoptionen, die dem git daemon
mitgegeben
werden sollen37.
Zugriffe über das git://
-Protokoll werden nicht authentifiziert. Wenn
Sie von einem Repository pullen, dass Sie über git://
geholt haben,
wissen Sie nicht, ob die empfangenen Daten modifiziert wurden oder auch nur
vom angegebenen Rechner kommen, und Ihre Verbindung kann abgehört werden. Es
ist besser, eine authentifizierte und verschlüsselte Übertragungsart zu
verwenden, zum Beispiel https
. Obwohl Git es Ihnen ermöglicht,
Repositorys über schlichte dateibasierte Webserver anzubieten, gibt es ein
schnelleres Protokoll, das vom git-http-backend
-Programm
implementiert wird. Dieses Programm dient als Hintergrundsystem für einen
ordentlichen Git-Webdienst. Es wurde so konstruiert, dass es über einen
FastCGI-Proxy abrufbar ist. Siehe Web-Dienste für weitere
Informationen, wie Sie den benötigten fcgiwrap
-Daemon ausführen.
Guix hat einen separaten Konfigurationsdatentyp, um Git-Repositorys über HTTP anzubieten.
Datentyp, der in Zukunft die Konfiguration eines
git-http-service-type
repräsentieren soll; zurzeit kann damit Nginx
über git-http-nginx-location-configuration
eingerichtet werden.
package
(Vorgabe: git)Paketobjekt des verteilten Versionskontrollsystems Git.
git-root
(Vorgabe: /srv/git)Das Verzeichnis, das die Git-Repositorys enthält, die der Allgemeinheit zugänglich gemacht werden sollen.
export-all?
(Vorgabe: #f
)Ob alle Git-Repositorys in git-root zugänglich gemacht werden sollen, selbst wenn keine git-daemon-export-ok-Datei in ihrem Verzeichnis gefunden wird.
uri-path
(Vorgabe: ‘/git/’)Präfix für Pfade beim Git-Zugriff. Beim vorgegebenen Präfix ‘/git/’
wird ‘http://server/git/repo.git
’ auf
/srv/git/repo.git abgebildet. Anfragen, deren URI-Pfade nicht
mit dem Präfix beginnen, werden nicht an die Git-Instanz weitergereicht.
fcgiwrap-socket
(Vorgabe: 127.0.0.1:9000
)Der Socket, auf dem der fcgiwrap
-Daemon lauscht. Siehe Web-Dienste.
Es gibt zurzeit keinen git-http-service-type
, stattdessen können Sie
eine nginx-location-configuration
aus einer
git-http-configuration
heraus erstellen und als Location zu einem
Webserver hinzufügen.
nginx-location-configuration
berechnen, die der angegebenen Git-HTTP-Konfiguration entspricht. Ein Beispiel für eine nginx-Dienstdefinition, um das vorgegebene /srv/git-Verzeichnis über HTTPS anzubieten, könnte so aussehen:
(service nginx-service-type
(nginx-configuration
(server-blocks
(list
(nginx-server-configuration
(listen '("443 ssl"))
(server-name "git.mein-rechner.org")
(ssl-certificate
"/etc/certs/git.mein-rechner.org/fullchain.pem")
(ssl-certificate-key
"/etc/certs/git.mein-rechner.org/privkey.pem")
(locations
(list
(git-http-nginx-location-configuration
(git-http-configuration (uri-path "/"))))))))))
Für dieses Beispiel nehmen wir an, dass Sie Ihr TLS-Zertifikat über Let’s
Encrypt beziehen. Siehe Zertifikatsdienste. Der vorgegebene
certbot
-Dienst leitet alle HTTP-Anfragen nach
git.mein-rechner.org
auf HTTPS um. Zu Ihren Systemdiensten werden Sie
auch einen fcgiwrap
-Proxy hinzufügen müssen. Siehe Web-Dienste.
Cgit ist eine in C geschriebene Weboberfläche als Vordergrundsystem für Git-Repositorys.
Im folgenden Beispiel wird der Dienst mit den vorgegebenen Werten
eingerichtet. Nach Vorgabe kann auf Cgit auf Port 80 unter
http://localhost:80
zugegriffen werden.
(service cgit-service-type)
Der Typ Dateiobjekt
bezeichnet entweder ein dateiartiges Objekt
(siehe dateiartige Objekte) oder eine Zeichenkette.
Verfügbare cgit-configuration
-Felder sind:
cgit-configuration
-Parameter: „package“ package ¶Das CGIT-Paket.
cgit-configuration
-Parameter: „nginx-server-configuration-list“ nginx ¶NGINX-Konfiguration.
cgit-configuration
-Parameter: Dateiobjekt about-filter ¶Gibt einen Befehl an, der zur Formatierung des Inhalts der Übersichtsseiten aufgerufen wird (sowohl auf oberster Ebene und für jedes Repository).
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette agefile ¶Gibt einen Pfad relativ zu jedem Repository-Pfad an, unter dem eine Datei gespeichert sein kann, die Datum und Uhrzeit des jüngsten Commits im Repository angibt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Dateiobjekt auth-filter ¶Gibt einen Befehl an, der aufgerufen wird, um Benutzer zu authentifizieren.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette branch-sort ¶Wenn diese Option auf ‘age’ gesetzt wurde, wird die Liste der Branch-Referenzen nach Datum sortiert, und wenn sie auf ‘name’ gesetzt wurde, wird nach dem Branch-Namen sortiert.
Die Vorgabe ist ‘"name"’.
cgit-configuration
-Parameter: Zeichenkette cache-root ¶Pfad, unter dem Cgit-Zwischenspeichereinträge abgelegt werden.
Die Vorgabe ist ‘"/var/cache/cgit"’.
cgit-configuration
-Parameter: Ganze-Zahl cache-static-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für Repository-Seiten mit fester SHA1-Summe gültig bleiben, auf die zugegriffen wird („Time-to-live“).
Die Vorgabe ist ‘-1’.
cgit-configuration
-Parameter: Ganze-Zahl cache-dynamic-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für Repository-Seiten mit veränderlicher SHA1-Summe gültig bleiben, auf die zugegriffen wird.<
Die Vorgabe ist ‘5’.
cgit-configuration
-Parameter: Ganze-Zahl cache-repo-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Übersichtsseiten („summary“) von Repositorys gültig bleiben.
Die Vorgabe ist ‘5’.
cgit-configuration
-Parameter: Ganze-Zahl cache-root-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherung der Seite mit dem Repository-Index gültig bleibt.
Die Vorgabe ist ‘5’.
cgit-configuration
-Parameter: Ganze-Zahl cache-scanrc-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherung des Ergebnisses einer Suche in einem Pfad nach Git-Repositorys gültig bleibt.
Die Vorgabe ist ‘15’.
cgit-configuration
-Parameter: Ganze-Zahl cache-about-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Beschreibungsseiten („about“) von Repositorys gültig bleiben.
Die Vorgabe ist ‘15’.
cgit-configuration
-Parameter: Ganze-Zahl cache-snapshot-ttl ¶Zahl, die angibt, wie viele Minuten die Zwischenspeicherungen für die Snapshots von Repositorys gültig bleiben.
Die Vorgabe ist ‘5’.
cgit-configuration
-Parameter: Ganze-Zahl cache-size ¶Wie viele Einträge der Cgit-Zwischenspeicher höchstens haben kann. Wird ‘0’ festgelegt, wird nicht zwischengespeichert.
Die Vorgabe ist ‘0’.
cgit-configuration
-Parameter: Boolescher-Ausdruck case-sensitive-sort? ¶Ob beim Sortieren von Objekten in der Repository-Liste die Groß-/Kleinschreibung beachtet werden soll.
Die Vorgabe ist ‘#t’.
cgit-configuration
-Parameter: Liste clone-prefix ¶Liste gemeinsamer Präfixe, von denen ein Repository geklont werden kann. D.h. dass, wenn eines mit einer Repository-URL kombiniert wird, eine gültige URL zum Klonen des Repositorys entsteht.
Die Vorgabe ist ‘'()’.
cgit-configuration
-Parameter: Liste clone-url ¶Liste von Schablonen, aus denen eine clone-url
entsteht.
Die Vorgabe ist ‘'()’.
cgit-configuration
-Parameter: Dateiobjekt commit-filter ¶Befehl, mit dem Commit-Nachrichten formatiert werden.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette commit-sort ¶Wenn diese Option als ‘date’ festgelegt wird, wird das Commit-Log streng nach Datum geordnet. Wenn sie auf ‘topo’ gesetzt ist, wird es streng topologisch geordnet.
Die Vorgabe ist ‘"git log"’.
cgit-configuration
-Parameter: Dateiobjekt css ¶URL, die angibt, welches CSS-Dokument von jeder Cgit-Seite eingebunden werden soll.
Die Vorgabe ist ‘"/share/cgit/cgit.css"’.
cgit-configuration
-Parameter: Dateiobjekt email-filter ¶Gibt einen Befehl an, um die Namen und E-Mail-Adressen der Committer, Autoren und Tagger zu formatieren, die an verschiedenen Stellen in der Oberfläche von Cgit vorkommen.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Boolescher-Ausdruck embedded? ¶Wenn diese Option auf ‘#t’ gesetzt ist, wird Cgit ein HTML-Fragment erzeugen, das für die Einbettung in andere HTML-Seiten geeignet ist.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-commit-graph? ¶Wenn diese Option auf ‘#t’ gesetzt ist, wird Cgit den Graphen der Commit-Historie links von den Commit-Nachrichten auf den Commit-Log-Seiten mit ASCII-Zeichen darstellen.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-filter-overrides? ¶Wenn diese Option auf ‘#t’ gesetzt ist, können alle Filtereinstellungen durch die cgitrc-Dateien für das jeweilige Repository geändert werden.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-follow-links? ¶Wenn diese Option auf ‘#t’ gesetzt ist, können Benutzer in der Log-Ansicht einer Datei folgen („–follow“).
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-http-clone? ¶Wenn es auf ‘#t’ gesetzt ist, kann Cgit als Endpunkt für eine Dumb-HTTP-Übertragung mit „git clone“ benutzt werden.
Die Vorgabe ist ‘#t’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-index-links? ¶Wenn diese Option auf ‘#t’ gesetzt ist, legt Cgit für jedes Repository zusätzlich Hyperlinks „summary“, „commit“, „tree“ im Repository-Index an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-index-owner? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit den Besitzer für jedes Repository im Repository-Index an.
Die Vorgabe ist ‘#t’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-log-filecount? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit für jeden Commit auf den Repository-Log-Seiten die geänderten Dateien an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-log-linecount? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit für jeden Commit auf den Repository-Log-Seiten die Anzahl der hinzugefügten und entfernten Zeilen an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-remote-branches? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit unter den „summary“- und „ref“-Seiten entfernte Branches an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-subject-links? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit für Links auf Eltern-Commits die Betreffzeile des Eltern-Commits als Linktext in der Commit-Ansicht an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-html-serving? ¶Flag which, when set to ‘#t’, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-tree-linenumbers? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit für jeden Blob aus reinem Text Links auf dessen Zeilennummern in der Baumansicht („tree“) an.
Die Vorgabe ist ‘#t’.
cgit-configuration
-Parameter: Boolescher-Ausdruck enable-git-config? ¶Flag which, when set to ‘#f’, will allow cgit to use Git config to set any repo specific settings.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Dateiobjekt favicon ¶URL, auf der ein Cgit-Symbol für die Anzeige in einem Webbrowser zu finden ist.
Die Vorgabe ist ‘"/favicon.ico"’.
Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich am Ende jeder Seite eingefügt (d.h. er ersetzt die vorgegebene Mitteilung „generated by …“).
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette head-include ¶Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich im HTML-HEAD-Bereich jeder Seite eingefügt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette header ¶Der Inhalt der für diese Option angegebenen Datei wird wortwörtlich am Anfang jeder Seite eingefügt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Dateiobjekt include ¶Der Name einer Konfigurationsdatei, deren Inhalt eingefügt werden soll, bevor die übrige hier angegebene Konfiguration eingelesen wird.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette index-header ¶Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich oberhalb des Repository-Index eingefügt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette index-info ¶Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich unterhalb der Überschrift auf jeder Repository-Index-Seite eingefügt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Boolescher-Ausdruck local-time? ¶Wenn diese Option auf ‘#t’ gesetzt ist, gibt Cgit die Zeitstempel von Commits und Tags in der Zeitzone des Servers an.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Dateiobjekt logo ¶URL, unter der ein Bild zu finden ist, das auf allen Cgit-Seiten als Logo zu sehen sein wird.
Die Vorgabe ist ‘"/share/cgit/cgit.png"’.
cgit-configuration
-Parameter: Zeichenkette logo-link ¶URL, die geladen wird, wenn jemand auf das Logo-Bild klickt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Dateiobjekt owner-filter ¶Befehl, der aufgerufen wird, um die Besitzerspalte auf der Hauptseite zu formatieren.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Ganze-Zahl max-atom-items ¶Anzahl der Objekte, die in der Atom-Feed-Ansicht angezeigt werden sollen.
Die Vorgabe ist ‘10’.
cgit-configuration
-Parameter: Ganze-Zahl max-commit-count ¶Anzahl der Einträge, die in der Log-Ansicht pro Seite angezeigt werden sollen.
Die Vorgabe ist ‘50’.
cgit-configuration
-Parameter: Ganze-Zahl max-message-length ¶Anzahl der Zeichen, die in der Log-Ansicht von jeder Commit-Nachricht angezeigt werden sollen.
Die Vorgabe ist ‘80’.
cgit-configuration
-Parameter: Ganze-Zahl max-repo-count ¶Gibt an, wie viele Einträge auf jeder Seite der Repository-Index-Seiten stehen.
Die Vorgabe ist ‘50’.
cgit-configuration
-Parameter: Ganze-Zahl max-repodesc-length ¶Gibt die maximale Anzahl der Zeichen an, die von jeder Repository-Beschreibung auf den Repository-Index-Seiten angezeigt werden sollen.
Die Vorgabe ist ‘80’.
cgit-configuration
-Parameter: Ganze-Zahl max-blob-size ¶Gibt die maximale Größe eines Blobs in Kilobytes an, für den HTML angezeigt werden soll.
Die Vorgabe ist ‘0’.
cgit-configuration
-Parameter: Zeichenkette max-stats ¶Maximaler Zeitraum für Statistiken. Gültige Werte sind ‘week’ (Woche), ‘month’ (Monat), ‘quarter’ (Quartal) und ‘year’ (Jahr).
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Mimetype-Assoziative-Liste mimetype ¶Mimetype je für die angegebene Dateinamenserweiterung.
Die Vorgabe ist ‘'((gif "image/gif") (html "text/html") (jpg "image/jpeg") (jpeg "image/jpeg") (pdf "application/pdf") (png "image/png") (svg "image/svg+xml"))’.
cgit-configuration
-Parameter: Dateiobjekt mimetype-file ¶Gibt an, welche Datei zur automatischen Auflösung des Mimetypes benutzt werden soll.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette module-link ¶Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul ausgegeben wird.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Boolescher-Ausdruck nocache? ¶Wenn dies auf ‘#t’ gesetzt ist, wird nicht zwischengespeichert.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck noplainemail? ¶Wenn dies auf ‘#t’ gesetzt ist, werden keine vollen E-Mail-Adressen angezeigt.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Boolescher-Ausdruck noheader? ¶Wenn diese Option auf ‘#t’ gesetzt ist, wird Cgit die Standardseitenkopf auf allen Seiten weglassen.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Projektliste project-list ¶Eine Liste der Unterverzeichnisse innerhalb des mit
repository-directory
festgelegten Verzeichnisses, relativ dazu
angegeben, die als Git-Repositorys geladen werden sollen. Eine leere Liste
bedeutet, dass alle Unterverzeichnisse geladen werden.
Die Vorgabe ist ‘'()’.
cgit-configuration
-Parameter: Dateiobjekt readme ¶Text, der als voreingestellter Wert für readme
in
repository-cgit-configuration
benutzt wird.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Boolescher-Ausdruck remove-suffix? ¶Wenn es auf #t
gesetzt ist und repository-directory
aktiviert
ist, wird, wenn Repositorys mit einem Suffix von .git
gefunden
werden, dieses Suffix von der URL und dem Namen weggelassen.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Ganze-Zahl renamelimit ¶Maximale Anzahl der Dateien, die bei der Erkennung von Umbenennungen berücksichtigt werden.
Die Vorgabe ist ‘-1’.
cgit-configuration
-Parameter: Zeichenkette repository-sort ¶Auf welche Art Repositorys in jedem Abschnitt sortiert werden.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Robots-Liste robots ¶Text, der als Inhalt des robots
-Meta-Tags dienen soll.
Die Vorgabe ist ‘'("noindex" "nofollow")’.
cgit-configuration
-Parameter: Zeichenkette root-desc ¶Welcher Text unterhalb der Überschrift auf Repository-Index-Seiten ausgegeben wird.
Die Vorgabe ist ‘"a fast webinterface for the git dscm"’.
cgit-configuration
-Parameter: Zeichenkette root-readme ¶Der Inhalt der mit dieser Option angegebenen Datei wird wortwörtlich unter dem „about“-Link auf der Repository-Index-Seite angezeigt.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette root-title ¶Welcher Text als Überschrift auf Repository-Index-Seiten ausgegeben werden soll.
Die Vorgabe ist ‘""’.
Wenn es auf ‘#t’ gesetzt ist und repository-directory aktiviert ist, wird repository-directory in Verzeichnissen rekursiv schauen, deren Name mit einem Punkt beginnt. Ansonsten werden solche Verzeichnisse unter repository-directory als „versteckt“ betrachtet und ignoriert. Beachten Sie, dass dies keine Wirkung auf das .git-Verzeichnis in nicht auf „bare“ gestellten Repositorys hat.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Liste snapshots ¶Dieser Text gibt an, für welche Snapshot-Formate Cgit Links erzeugt.
Die Vorgabe ist ‘'()’.
cgit-configuration
-Parameter: Repository-Verzeichnis repository-directory ¶Der Name des Verzeichnisses, in dem nach Repositorys gesucht wird (wird als
scan-path
in die Einstellungen übernommen).
Die Vorgabe ist ‘"/srv/git"’.
cgit-configuration
-Parameter: Zeichenkette section ¶Der Name des aktuellen Abschnitts („section“) für Repositorys – alle später definierten Repositorys werden den aktuellen Abschnittsnamen erben.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette section-sort ¶Wenn diese Option auf ‘#t’ gesetzt wird, werden die Abschnitte in Repository-Auflistungen nach Namen sortiert.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Ganze-Zahl section-from-path ¶Wenn diese Zahl vor „repository-directory“ definiert wurde, gibt sie an, wie viele Pfadelemente jedes Repository-Pfads für den Abschnittsnamen voreingestellt verwendet werden.
Die Vorgabe ist ‘0’.
cgit-configuration
-Parameter: Boolescher-Ausdruck side-by-side-diffs? ¶Wenn es auf ‘#t’ gesetzt ist, werden Diffs nach Voreinstellung in Nebeneinanderdarstellung („side by side“) statt als zusammengeführte „Unidiffs“ angezeigt.
Vorgegeben ist ‘#f’.
cgit-configuration
-Parameter: Dateiobjekt source-filter ¶Gibt einen Befehl an, der aufgerufen wird, um Klartext-Blobs in der Baumansicht („tree“) zu formatieren.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Ganze-Zahl summary-branches ¶Gibt die Anzahl der Branches an, die in der „summary“-Ansicht eines Repositorys zu sehen sein sollen.
Die Vorgabe ist ‘10’.
cgit-configuration
-Parameter: Ganze-Zahl summary-log ¶Gibt die Anzahl der Log-Einträge an, die in der „summary“-Ansicht eines Repositorys zu sehen sein sollen.
Die Vorgabe ist ‘10’.
Gibt die Anzahl in der „summary“-Ansicht eines Repositorys anzuzeigender Tags an.
Die Vorgabe ist ‘10’.
cgit-configuration
-Parameter: Zeichenkette strict-export ¶Wenn dieser Dateiname angegeben wird, muss eine Datei diesen Namens in einem Repository enthalten sein, damit es angezeigt wird.
Die Vorgabe ist ‘""’.
cgit-configuration
-Parameter: Zeichenkette virtual-root ¶Wird diese URL angegeben, wird sie als Wurzel für alle Cgit-Links verwendet.
Die Vorgabe ist ‘"/"’.
cgit-configuration
-Parameter: „repository-cgit-configuration“-Liste repositories ¶Eine Liste von repository-cgit-configuration-Verbundsobjekten.
Die Vorgabe ist ‘'()’.
Verfügbare repository-cgit-configuration
-Felder sind:
repository-cgit-configuration
-Parameter: Repo-Liste snapshots ¶Eine Maske, die für dieses Repository auf die Snapshots gelegt wird, für die
Cgit Links erzeugt. Dadurch kann die globale Einstellung snapshots
eingeschränkt werden.
Die Vorgabe ist ‘'()’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt source-filter ¶Die Voreinstellung für source-filter
ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette url ¶Die relative URL, mit der auf das Repository zugegriffen wird.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt about-filter ¶Die Voreinstellung für about-filter
ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette branch-sort ¶Wenn diese Option auf ‘age’ gesetzt wurde, wird die Liste der Branch-Referenzen nach Datum sortiert, und wenn sie auf ‘name’ gesetzt wurde, wird nach dem Branch-Namen sortiert.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Liste clone-url ¶Eine Liste von URLs, von denen das Repository geklont werden kann.
Die Vorgabe ist ‘'()’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt commit-filter ¶Die Voreinstellung für commit-filter
ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt commit-sort ¶Wenn diese Option als ‘date’ festgelegt wird, wird das Commit-Log streng nach Datum geordnet. Wenn sie auf ‘topo’ gesetzt ist, wird es streng topologisch geordnet.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette defbranch ¶Der Name des voreingestellten Branches dieses Repositorys. Wenn kein solcher Branch im Repository existiert, wird der erste Branchname in sortierter Reihenfolge voreingestellt. Nach Vorgabe wird der Branch voreingestellt, auf den HEAD zeigt, oder „master“, wenn es keinen passenden HEAD gibt.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette desc ¶Der Wert, der als Repository-Beschreibung angezeigt werden soll.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette homepage ¶Der Wert, der als Repository-Homepage angezeigt werden soll.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt email-filter ¶Die Voreinstellung für email-filter
ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-commit-graph? ¶Eine Option, mit der die globale Einstellung für enable-commit-graph?
deaktiviert werden kann.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-log-filecount? ¶Eine Option, mit der die globale Einstellung für
enable-log-filecount?
deaktiviert werden kann.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-log-linecount? ¶Eine Option, mit der die globale Einstellung für
enable-log-linecount?
deaktiviert werden kann.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-remote-branches? ¶Wenn diese Option auf ‘#t’ gesetzt ist, zeigt Cgit unter den „summary“- und „ref“-Seiten entfernte Branches an.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-subject-links? ¶Eine Option, mit der die globale Einstellung für
enable-subject-links?
deaktiviert werden kann.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Vielleicht-Repo-Boolescher-Ausdruck enable-html-serving? ¶Eine Option, mit der die globale Einstellung für enable-html-serving?
deaktiviert werden kann.
Der Vorgabewert ist ‘disabled’ (d.h. deaktiviert).
repository-cgit-configuration
-Parameter: Repo-Boolescher-Ausdruck hide? ¶Wenn diese Option auf #t
gesetzt ist, wird das Repository im
Repository-Index verborgen.
Vorgegeben ist ‘#f’.
repository-cgit-configuration
-Parameter: Repo-Boolescher-Ausdruck ignore? ¶Wenn diese Option auf #t
gesetzt ist, wird das Repository ignoriert.
Vorgegeben ist ‘#f’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt logo ¶URL, unter der ein Bild zu finden ist, das auf allen Seiten dieses Repositorys als Logo zu sehen sein wird.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette logo-link ¶URL, die geladen wird, wenn jemand auf das Logo-Bild klickt.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Dateiobjekt owner-filter ¶Die Voreinstellung für owner-filter
ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette module-link ¶Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul ausgegeben wird. Die Argumente für diese Formatzeichenkette sind Pfad und SHA1 des Submodul-Commits.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: module-link-Pfad module-link-path ¶Text, der als Formatzeichenkette für einen Hyperlink benutzt wird, wenn in einer Verzeichnisauflistung ein Submodul mit dem angegebenen Unterverzeichnispfad ausgegeben wird.
Die Vorgabe ist ‘'()’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette max-stats ¶Die Voreinstellung für den maximalen Zeitraum für Statistiken ersetzen.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette name ¶Welcher Wert als Repository-Name angezeigt werden soll.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette owner ¶Ein Wert, um den Besitzer des Repositorys zu identifizieren.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette path ¶Ein absoluter Pfad zum Repository-Verzeichnis.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette readme ¶Ein Pfad (relativ zum Repository), der eine Datei angibt, deren Inhalt wortwörtlich auf der „About“-Seite dieses Repositorys eingefügt werden soll.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Zeichenkette section ¶Der Name des aktuellen Abschnitts („section“) für Repositorys – alle später definierten Repositorys werden den aktuellen Abschnittsnamen erben.
Die Vorgabe ist ‘""’.
repository-cgit-configuration
-Parameter: Repo-Liste extra-options ¶Zusätzliche Optionen werden an die cgitrc-Datei angehängt.
Die Vorgabe ist ‘'()’.
cgit-configuration
-Parameter: Liste extra-options ¶Zusätzliche Optionen werden an die cgitrc-Datei angehängt.
Die Vorgabe ist ‘'()’.
Aber es könnte auch sein, dass Sie schon eine cgitrc
haben und zum
Laufen bringen wollen. In diesem Fall können Sie eine
opaque-cgit-configuration
als Verbundsobjekt an
cgit-service-type
übergeben. Wie der Name schon sagt, bietet eine
opake Konfiguration keinerlei Unterstützung für Reflexion.
Verfügbare opaque-cgit-configuration
-Felder sind:
opaque-cgit-configuration
-Parameter: „package“ cgit ¶Das cgit-Paket.
opaque-cgit-configuration
-Parameter: Zeichenkette string ¶Der Inhalt für cgitrc
als eine Zeichenkette.
Wenn zum Beispiel Ihre cgitrc
nur aus der leeren Zeichenkette
bestehen soll, könnten Sie einen Cgit-Dienst auf diese Weise instanziieren:
(service cgit-service-type
(opaque-cgit-configuration
(cgitrc "")))
Gitolite ist ein Werkzeug, um Git-Repositorys anderen auf einem zentralen Server anzubieten.
Gitolite kann mehrere Nutzer mit mehreren Repositorys bedienen und unterstützt flexible Konfigurationsmöglichkeiten der Berechtigungen der Repository-Nutzer.
Das folgende Beispiel richtet Gitolite für den voreingestellten
git
-Benutzer und den angegebenen öffentlichen SSH-Schlüssel ein.
(service gitolite-service-type
(gitolite-configuration
(admin-pubkey (plain-file
"ihrname.pub"
"ssh-rsa AAAA… guix@example.com"))))
Sie konfigurieren Gitolite, indem Sie ein besonderes Admin-Repository
anpassen. Sie können es zum Beispiel klonen, indem Sie, wenn Sie Gitolite
auf example.com
eingerichtet haben, den folgenden Befehl zum Klonen
des Admin-Repositorys ausführen:
git clone git@example.com:gitolite-admin
Wenn der Gitolite-Dienst aktiviert wird, wird der mitgegebene
admin-pubkey
ins keydir-Verzeichnis vom
„gitolite-admin“-Repository eingefügt. Wenn sich dadurch das Repository
ändert, wird die Änderung mit der Commit-Nachricht „gitolite setup by GNU
Guix“ commitet.
Repräsentiert die Konfiguration vom gitolite-service-type
.
package
(Vorgabe: gitolite)Welches Gitolite-Paket benutzt werden soll. Sie können hiermit auch
optionale Abhängigkeiten von Gitolite, die nicht im
Standard-Gitolite-Paket enthalten sind, hinzufügen, wie Redis und
git-annex. Diese Funktionalitäten können Sie mit der Prozedur
make-gitolite
aus dem Modul (gnu packages version-control)
verfügbar machen, welche eine Variante von Gitolite erzeugt, bei der die
gewünschten Abhängigkeiten vorhanden sind.
Folgender Code liefert ein Paket zurück, wo die Programme Redis und git-annex durch die Skripte von Gitolite aufrufbar sind:
(use-modules (gnu packages databases) (gnu packages haskell-apps) (gnu packages version-control)) (make-gitolite (list redis git-annex))
user
(Vorgabe: git)Welches Benutzerkonto für Gitolite benutzt werden soll. Mit diesem Benutzer werden Sie über SSH auf Gitolite zugreifen.
group
(Vorgabe: git)Gruppe für Gitolite.
home-directory
(Vorgabe: "/var/lib/gitolite")Das Verzeichnis, in dem die Gitolite-Konfiguration und Repositorys gespeichert werden sollen.
rc-file
(Vorgabe: (gitolite-rc-file))Ein dateiartiges Objekt (siehe dateiartige Objekte), das die Konfiguration für Gitolite repräsentiert.
admin-pubkey
(Vorgabe: #f)Ein dateiartiges Objekt (siehe dateiartige Objekte), mit dem Gitolite eingerichtet werden kann. Er wird in das keydir-Verzeichnis im „gitolite-admin“-Repository eingefügt.
Um einen SSH-Schlüssel als Zeichenkette anzugeben, benutzen Sie die
plain-file
-Funktion.
(plain-file "ihrname.pub" "ssh-rsa AAAA… guix@example.com")
Repräsentiert die Gitolie-RC-Datei.
umask
(Vorgabe: #o0077
)Dies legt fest, welche Berechtigungen Gitolite an die Repositorys und deren Inhalt vergibt.
Für einen Wert wie #o0027
wird die Gruppe, die Gitolite benutzt (nach
Vorgabe: git
) Lesezugriff erhalten. Das ist nötig, wenn Sie Gitolite
mit Software wie Cgit oder Gitweb kombinieren.
local-code
(Vorgabe: "$rc{GL_ADMIN_BASE}/local"
)Hiermit können Sie eigene Programme zu den als „non-core“ eingestuften hinzufügen oder sogar die mitgelieferten Programme durch Ihre eigenen ersetzen.
Bitte geben Sie für diese Variable den vollständigen Pfad an. Vorgegeben ist, dass das Verzeichnis namens "local" in Ihrem Klon des Gitolite-Repositorys benutzt wird. Dadurch haben Sie den Vorteil, dass alles versioniert wird, und können Änderungen vornehmen, ohne sich auf dem Server anmelden zu müssen.
unsafe-pattern
(Vorgabe: #f
)Optional ein Perl-kompatibler regulärer Ausdruck, um unsichere Konfigurationen in der Konfigurationsdatei zu unterbinden. Siehe die Dokumentation von Gitolite für weitere Informationen.
Wenn als Wert nicht #f
angegeben wird, muss es eine
Zeichenkette mit einem Perl-kompatiblen regulären Ausdruck sein wie
‘"[`~#\$\&()|;<>]"’, was der Voreinstellung von Gitolite
entspricht. Damit wird unterbunden, jegliche Sonderzeichen in die
Konfiguration zu schreiben, die von einer Shell interpretiert werden
könnten, damit die Administration auch auf andere Leute übertragen werden
kann, die sonst keinen Shell-Zugriff auf dem Server haben.
git-config-keys
(Vorgabe: ""
)Mit Gitolite können Sie Werte für Git-Konfigurationen über das ‘config’-Schlüsselwort festlegen. Mit dieser Einstellung können Sie steuern, welche Konfigurationsschlüssel akzeptiert werden.
roles
(Vorgabe: '(("READERS" . 1) ("WRITERS" . ))
)Legt fest, welche Rollennamen für Nutzer möglich sind, wenn Sie den Befehl perms ausführen.
enable
(Vorgabe: '("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb")
)Diese Einstellung legt die innerhalb von Gitolite zur Verfügung gestellten Befehle fest.
Mit Gitile kann eine eigene Git-„Forge“ aufgesetzt werden, wo sich jeder über einen Web-Browser den Inhalt von Git-Repositorys ansehen kann.
Am besten kombiniert man Gitile mit Gitolite, und Gitile bietet nach Voreinstellung die für die Öffentlichkeit bestimmten Repositorys von Gitolite an. Der Dienst sollte auf einem lokalen Port lauschen, und ein Webserver sollte eingerichtet werden, um Gitiles statische Ressourcen anzubieten. Für den Gitile-Dienst kann der Nginx-Dienst einfach zu diesem Zweck erweitert werden (siehe NGINX).
Im Folgenden sehen Sie ein Beispiel, wie Gitile konfiguriert wird, um Repositorys von einem selbst ausgewählten Ort anzubieten, zusammen mit etwas Text für die Hauptseite und Fußzeilen.
(service gitile-service-type
(gitile-configuration
(repositories "/srv/git")
(base-git-url "https://meineweb.site/git")
(index-title "Meine Git-Repositorys")
(intro '((p "Hier sind all meine öffentlichen Werke!")))
(footer '((p "Nun ist Schluss")))
(nginx
(nginx-server-configuration
(ssl-certificate
"/etc/certs/meineweb.site/fullchain.pem")
(ssl-certificate-key
"/etc/certs/meineweb.site/privkey.pem")
(listen '("443 ssl http2" "[::]:443 ssl http2"))
(locations
(list
;; Anonymen Abruf über HTTPS von „/git/“-URLs zulassen.
(git-http-nginx-location-configuration
(git-http-configuration
(uri-path "/git/")
(git-root "/var/lib/gitolite/repositories")))))))))
Neben dem Konfigurations-Verbundsobjekt sollten Sie auch bei Ihren Git-Repositorys ein paar optionale Informationen darüber eintragen. Zunächst werden Repositorys nur für die Allgemeinheit zugänglich, wenn sie die magische Datei git-daemon-export-ok enthalten. Gitile erkennt daran, welche Repositorys öffentlich sind und zugänglich gemacht werden sollen. Bei Gitolite heißt das zum Beispiel, Sie ändern Ihre conf/gitolite.conf, dass dort für die öffentlich zu machenden Repositorys Folgendes steht:
repo foo R = daemon
Zusätzlich kann Gitile aus der Repository-Konfiguration weitere Informationen über das Repository auslesen und anzeigen. Gitile verwendet für seine Konfiguration den gitweb-Namensraum. Zum Beispiel kann Ihre conf/gitolite.conf Folgendes enthalten:
repo foo R = daemon desc = Eine lange Beschreibung, gerne auch mit <i>HTML</i>-Tags, für die Seite mit dem Repository-Index config gitweb.name = Das Projekt Foo config gitweb.synopsis = Eine kurze Beschreibung für die Hauptseite des Projekts
Denken Sie daran, die Änderungen auch zu commiten und zu pushen, sobald Sie zufrieden sind. Vielleicht müssen Sie Ihre gitolite-Konfiguration anpassen, damit die genannten Konfigurationsoptionen zulässig sind. Eine Möglichkeit ist folgende Dienstdefinition:
(service gitolite-service-type
(gitolite-configuration
(admin-pubkey (local-file "key.pub"))
(rc-file
(gitolite-rc-file
(umask #o0027)
;; Man soll jeden Konfigurationsschlüssel setzen dürfen
(git-config-keys ".*")
;; Jeder Text soll ein gültiger Konfigurationswert sein
(unsafe-patt "^$")))))
Repräsentiert die Konfiguration vom gitile-service-type
.
package
(Vorgabe: gitile)Welches Gitile-Paket benutzt werden soll.
host
(Vorgabe: "localhost"
)Der Rechnername, auf den Gitile lauscht.
port
(Vorgabe: 8080
)Der Port, auf dem Gitile lauscht.
database
(Vorgabe: "/var/lib/gitile/gitile-db.sql"
)Wo die Datenbank liegt.
repositories
(Vorgabe: "/var/lib/gitolite/repositories"
)Wo die Repositorys zu finden sind. Beachten Sie: Gitile zeigt nur öffentliche Repositorys an. Um ein Repository öffentlich zu machen, fügen Sie eine leere Datei git-daemon-export-ok in das Wurzelverzeichnis des Repositorys ein.
base-git-url
Die Basis-Git-URL, von der angezeigt wird, dass man Befehle zum Klonen darauf ausführen kann.
index-title
(Vorgabe: "Index"
)Der Seitentitel der Index-Seite mit der Liste aller verfügbaren Repositorys.
intro
(Vorgabe: '()
)Der Inhalt der Einführung als Liste von SXML-Ausdrücken. Sie wird über der Liste der Repositorys auf der Index-Seite angezeigt.
footer
(Vorgabe: '()
)Der Inhalt der Fußzeile als Liste von SXML-Ausdrücken. Sie wird unter jeder von Gitile angebotenen Seite angezeigt.
nginx
Ein Server-Block für NGinx. NGinx wird durch Gitile erweitert und als inverser Proxy („Reverse Proxy“) verwendet, um dessen Seiten anzubieten, und es wird als einfacher Web-Server verwendet, um statische Dateien und Grafiken anzubieten.
Über diesen Block können Sie weitere eigene URLs auf Ihrer Domain anbieten
lassen wie z.B. eine /git/
-URL zum „anonymen“ Klonen ohne Anmeldung
oder sonstige Dateien, die Sie anbieten möchten.
Das geschieht, indem die magische Datei git-daemon-export-ok im Repository erzeugt wird.
Führen Sie man git-daemon
aus, um weitere
Informationen zu erhalten.
Nächste: Spieldienste, Vorige: Virtualisierungsdienste, Nach oben: Dienste [Inhalt][Index]