GitServer: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 18: | Zeile 18: | ||
== Leeres Repository einrichten: == | == Leeres Repository einrichten: == | ||
< | * Einmal: | ||
<syntaxhighlight lang="bash"> | |||
mkdir /home/git/repo | mkdir /home/git/repo | ||
chown git.git /home/git/repo | chown git.git /home/git/repo | ||
</syntaxhighlight> | |||
* Immer: | |||
<syntaxhighlight lang="bash"> | |||
PROJ=example | PROJ=example | ||
DIR=/home/git/repo/$PROJ.git | DIR=/home/git/repo/$PROJ.git | ||
Zeile 28: | Zeile 31: | ||
chown git:git $DIR | chown git:git $DIR | ||
sudo -u git git --bare init | sudo -u git git --bare init | ||
</ | </syntaxhighlight> | ||
== Zugriff == | == Zugriff == | ||
< | <syntaxhighlight lang="bash"> | ||
git clone ssh://git@git.hamatoma.de:/home/git/repo/ | PROJ=example | ||
</ | git clone ssh://git@git.hamatoma.de:/home/git/repo/$PROJ.git | ||
</syntaxhighlight> | |||
== Einrichten == | |||
<syntaxhighlight lang="bash"> | |||
PROJ=example | |||
sudo chown -R wk .git | |||
git remote add origin ssh://git@git.hamatoma.de:/home/git/repo/$PROJ.git | |||
git config user.email author@hamatoma.de | |||
git config user.name "Hamatoma" | |||
DESC="That is an example of a git repository" | |||
echo "# Project $PROJ" >README.md | |||
echo "## Description" >>README.md | |||
echo "$DESC" >>README.md | |||
echo "# Change log of $PROJ" >CHANGELOG.md | |||
git add README.md CHANGELOG.md | |||
git commit -m "Initial commit" | |||
git push --set-upstream origin main | |||
</syntaxhighlight> | |||
= GitWeb = | = GitWeb = |
Aktuelle Version vom 6. März 2025, 14:23 Uhr
Initialisierung[Bearbeiten]
adduser --shell /usr/bin/git-shell git
cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys
chown -R git.git /home/git
- /home/git/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/Z4t...0blnUDBCr8AEZIj hm@ant ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH6ej...hrCjPpDy+U1L0W3 hm@mint18.fn.local
Leeres Repository einrichten:[Bearbeiten]
- Einmal:
mkdir /home/git/repo
chown git.git /home/git/repo
- Immer:
PROJ=example
DIR=/home/git/repo/$PROJ.git
mkdir $DIR
cd $DIR
chown git:git $DIR
sudo -u git git --bare init
Zugriff[Bearbeiten]
PROJ=example
git clone ssh://git@git.hamatoma.de:/home/git/repo/$PROJ.git
Einrichten[Bearbeiten]
PROJ=example
sudo chown -R wk .git
git remote add origin ssh://git@git.hamatoma.de:/home/git/repo/$PROJ.git
git config user.email author@hamatoma.de
git config user.name "Hamatoma"
DESC="That is an example of a git repository"
echo "# Project $PROJ" >README.md
echo "## Description" >>README.md
echo "$DESC" >>README.md
echo "# Change log of $PROJ" >CHANGELOG.md
git add README.md CHANGELOG.md
git commit -m "Initial commit"
git push --set-upstream origin main
GitWeb[Bearbeiten]
apt install gitweb fcgiwrap
DOMAIN=gitweb.hamatoma.de
FN=/etc/nginx/sites-available/$DOMAIN
test -e $FN || cat <<EOS >$FN
server {
listen 80;
include snippets/letsencrypt.conf;
server_name $DOMAIN;
root /usr/share/gitweb;
location / {
return 301 https://$server_name$request_uri; # enforce https
}
}
server {
listen 443 ssl http2;
server_name $DOMAIN;
ssl_certificate /etc/letsencrypt/live/latest/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/latest/privkey.pem;
#ssl_certificate /etc/ssl/certs/$DOMAIN.pem;
#ssl_certificate_key /etc/ssl/private/$DOMAIN.key;
access_log /var/log/nginx/a_gitweb.log;
error_log /var/log/nginx/e_gitweb.log;
location /index.cgi {
root /usr/share/gitweb/;
include fastcgi_params;
gzip off;
fastcgi_param SCRIPT_NAME \$uri;
fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location / {
root /usr/share/gitweb/;
index index.cgi;
}
}
EOS
ln -s ../sites-available/$DOMAIN /etc/nginx/sites-enabled/$DOMAIN
MkCert.sh $DOMAIN
- /etc/gitweb.conf
$projectroot = "/home/git/repo"; our @git_base_url_list = qw(git://gitweb.hamatoma.de https://git@gitweb.hamatoma.de);