diff options
Diffstat (limited to 'roles/cgit')
| -rw-r--r-- | roles/cgit/tasks/main.yml | 69 | ||||
| -rw-r--r-- | roles/cgit/templates/cgitrc | 9 | ||||
| -rw-r--r-- | roles/cgit/templates/nginx/git.joeac.net.conf | 22 |
3 files changed, 100 insertions, 0 deletions
diff --git a/roles/cgit/tasks/main.yml b/roles/cgit/tasks/main.yml new file mode 100644 index 0000000..d9f96bc --- /dev/null +++ b/roles/cgit/tasks/main.yml @@ -0,0 +1,69 @@ +- name: Install cgit + community.general.apk: + name: cgit + +- name: Add git readonly group + ansible.builtin.group: + name: "{{ git_readonly_group }}" + +- name: Configure read-write git user + ansible.builtin.user: + name: "{{ git_readwrite_user }}" + group: "{{ git_readwrite_group }}" + groups: + - "{{ git_readonly_group }}" + append: true + +- name: Create git directory in attached storage + ansible.builtin.file: + path: /media/seagate/git + state: directory + owner: "{{ git_readwrite_user }}" + group: "{{ git_readonly_group }}" + mode: "750" + +- name: Set owners recursively in git directory in attached storage + ansible.builtin.file: + path: /media/seagate/git + state: directory + owner: "{{ git_readwrite_user }}" + group: "{{ git_readonly_group }}" + recurse: true + +- name: Symlink git directory to storage medium + ansible.builtin.file: + src: /media/seagate/git + dest: "{{ git_directory }}" + owner: "{{ git_readwrite_user }}" + group: "{{ git_readonly_group }}" + state: link + mode: "750" + +- name: Install git.joeac.net nginx site config + register: cgit_nginx_site + vars: + fcgiwrap_socket: /run/fcgiwrap.sock + ansible.builtin.template: + src: nginx/git.joeac.net.conf + dest: /etc/nginx/http.d/git.joeac.net.conf + owner: "{{ git_readwrite_user }}" + group: "{{ git_readwrite_group }}" + mode: "660" + +- name: Create git.joeac.net nginx log directory + ansible.builtin.file: + path: /var/log/nginx/git.joeac.net + state: directory + +- name: Restart nginx daemon and configure to start on boot + when: cgit_nginx_site is changed + ansible.builtin.service: + name: nginx + enabled: true + state: restarted + +- name: Install cgit config + ansible.builtin.template: + src: cgitrc + dest: /etc/cgitrc + mode: "+r" diff --git a/roles/cgit/templates/cgitrc b/roles/cgit/templates/cgitrc new file mode 100644 index 0000000..64ba6d4 --- /dev/null +++ b/roles/cgit/templates/cgitrc @@ -0,0 +1,9 @@ +root-title=joeac's git repositories +root-desc= +strict-export={{ git_export_ok_file }} +scan-path={{ git_directory }} +virtual-root=/ +about-filter=/usr/lib/cgit/filters/about-formatting.sh +readme=:README.md +snapshots=tar.gz zip +clone-prefix=git://git.joeac.net https://git.joeac.net diff --git a/roles/cgit/templates/nginx/git.joeac.net.conf b/roles/cgit/templates/nginx/git.joeac.net.conf new file mode 100644 index 0000000..704665e --- /dev/null +++ b/roles/cgit/templates/nginx/git.joeac.net.conf @@ -0,0 +1,22 @@ +server { + listen {{ services.git.port }}; + listen [::]:{{ services.git.port }}; + server_name {{ ( subdomains | selectattr('service', 'eq', 'git') | first ).full_domain }}; + + root /usr/share/webapps/cgit; + try_files $uri @cgit; + + access_log /var/log/nginx/git.joeac.net/access.log; + error_log /var/log/nginx/git.joeac.net/error.log; + + location @cgit { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/share/webapps/cgit/cgit.cgi; + fastcgi_param PATH_INFO $uri; + fastcgi_param QUERY_STRING $args; + fastcgi_param HTTP_HOST $server_name; + fastcgi_pass unix:{{ fcgiwrap_socket }}; + } + + include {{ git_nginx_include_directory }}/*.conf; +} |
