initial version of git server role
This commit is contained in:
parent
87744518c7
commit
3a6ceec53c
4 changed files with 112 additions and 0 deletions
46
roles/git/server/files/git.conf
Normal file
46
roles/git/server/files/git.conf
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
error_page 418 = @query_auth;
|
||||||
|
|
||||||
|
# Git over HTTP
|
||||||
|
location ~ ^/.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
|
||||||
|
root /srv/git;
|
||||||
|
}
|
||||||
|
# Git operations that require authentication should go here
|
||||||
|
location @query_auth {
|
||||||
|
auth_basic "Authentication Required";
|
||||||
|
auth_basic_user_file /etc/nginx/htpasswd;
|
||||||
|
rewrite ^(/.*)$ $1 break;
|
||||||
|
fastcgi_pass unix:/run/fcgiwrap/fcgiwrap-nginx.sock;
|
||||||
|
fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend;
|
||||||
|
fastcgi_param PATH_INFO $uri;
|
||||||
|
fastcgi_param GIT_PROJECT_ROOT /srv/git;
|
||||||
|
fastcgi_param GIT_HTTP_EXPORT_ALL "";
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param REMOTE_USER $remote_user;
|
||||||
|
}
|
||||||
|
location ~ ^(.*\.git/git-receive-pack)$ {
|
||||||
|
return 418;
|
||||||
|
}
|
||||||
|
location ~ ^/(.*\.git/(HEAD|info/refs|objects/(info/[^/]+)|git-upload-pack))$ {
|
||||||
|
if ( $query_string = "service=git-receive-pack" ) { return 418; }
|
||||||
|
rewrite ^(/.*)$ $1 break;
|
||||||
|
fastcgi_pass unix:/run/fcgiwrap/fcgiwrap-nginx.sock;
|
||||||
|
fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend;
|
||||||
|
fastcgi_param PATH_INFO $uri;
|
||||||
|
fastcgi_param GIT_PROJECT_ROOT /srv/git;
|
||||||
|
fastcgi_param GIT_HTTP_EXPORT_ALL "";
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Gitweb
|
||||||
|
location /gitweb.cgi {
|
||||||
|
root /var/www/git/;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_NAME $uri;
|
||||||
|
fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
|
||||||
|
fastcgi_pass unix:/run/fcgiwrap/fcgiwrap-nginx.sock;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
root /var/www/git;
|
||||||
|
index gitweb.cgi;
|
||||||
|
}
|
26
roles/git/server/files/gitweb.conf
Normal file
26
roles/git/server/files/gitweb.conf
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
# location of git repos
|
||||||
|
our $projectroot = "/srv/git";
|
||||||
|
|
||||||
|
# site name
|
||||||
|
our $site_name = "foo.sh - Public GIT repositories";
|
||||||
|
|
||||||
|
# add custom css
|
||||||
|
push @stylesheets, "/static/gitweb-local.css";
|
||||||
|
our $logo = "/static/logo.png";
|
||||||
|
our $logo_label = "https://www.foo.sh/";
|
||||||
|
|
||||||
|
# base urls
|
||||||
|
our $logo_url = "https://www.foo.sh/";
|
||||||
|
our $home_link = "https://git.foo.sh";
|
||||||
|
our $home_link_str = "https://git.foo.sh";
|
||||||
|
|
||||||
|
# avatar support
|
||||||
|
$feature{"avatar"}{"default"} = ["gravatar"];
|
||||||
|
|
||||||
|
# add support for bz2 and zip snapshots
|
||||||
|
$feature{"snapshot"}{"default"} = ["tgz", "tbz2", "zip"];
|
||||||
|
|
||||||
|
# syntax highlight (rhel8 supports detection without known extension)
|
||||||
|
$highlight_bin = "highlight";
|
||||||
|
$feature{"highlight"}{"defaut"} = [1];
|
5
roles/git/server/meta/main.yml
Normal file
5
roles/git/server/meta/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- {role: git/client}
|
||||||
|
- {role: nginx/fcgi}
|
35
roles/git/server/tasks/main.yml
Normal file
35
roles/git/server/tasks/main.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: install git server packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: installed
|
||||||
|
with_items:
|
||||||
|
- gitweb
|
||||||
|
- highlight
|
||||||
|
- perl-Digest-MD5
|
||||||
|
|
||||||
|
- name: create git directory
|
||||||
|
file:
|
||||||
|
path: /srv/git
|
||||||
|
src: /export/git
|
||||||
|
state: link
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: create gitweb config
|
||||||
|
copy:
|
||||||
|
dest: /etc/gitweb.conf
|
||||||
|
src: gitweb.conf
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: create nginx git config
|
||||||
|
copy:
|
||||||
|
dest: /etc/nginx/conf.d/{{ inventory_hostname }}/git.conf
|
||||||
|
src: git.conf
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
notify: restart nginx
|
Loading…
Add table
Add a link
Reference in a new issue