From 76a74270c16d916c1bf274ee53d42694874bbf78 Mon Sep 17 00:00:00 2001 From: Tharre Date: Fri, 15 Jun 2018 17:19:24 +0200 Subject: Add cgit configuration for arch linux --- roles/cgit/handlers/main.yml | 4 +++ roles/cgit/meta/main.yml | 4 +++ roles/cgit/tasks/main.yml | 46 +++++++++++++++++++++++++++ roles/cgit/templates/cgit_nginx.conf.j2 | 36 +++++++++++++++++++++ roles/cgit/templates/cgitrc.j2 | 56 +++++++++++++++++++++++++++++++++ 5 files changed, 146 insertions(+) create mode 100644 roles/cgit/handlers/main.yml create mode 100644 roles/cgit/meta/main.yml create mode 100644 roles/cgit/tasks/main.yml create mode 100644 roles/cgit/templates/cgit_nginx.conf.j2 create mode 100644 roles/cgit/templates/cgitrc.j2 (limited to 'roles/cgit') diff --git a/roles/cgit/handlers/main.yml b/roles/cgit/handlers/main.yml new file mode 100644 index 0000000..c167f7b --- /dev/null +++ b/roles/cgit/handlers/main.yml @@ -0,0 +1,4 @@ +--- + +- name: restart fcgiwrap + service: name=fcgiwrap state=restarted diff --git a/roles/cgit/meta/main.yml b/roles/cgit/meta/main.yml new file mode 100644 index 0000000..5938332 --- /dev/null +++ b/roles/cgit/meta/main.yml @@ -0,0 +1,4 @@ +--- + +dependencies: + - { role: nginx } diff --git a/roles/cgit/tasks/main.yml b/roles/cgit/tasks/main.yml new file mode 100644 index 0000000..9e1d47e --- /dev/null +++ b/roles/cgit/tasks/main.yml @@ -0,0 +1,46 @@ +--- + +- name: Install cgit and dependencies + package: + name: "{{ item }}" + state: present + with_items: + - cgit + - fcgiwrap + - python-pygments + - python-markdown + - python-docutils + +- name: Append git group to http user + user: + name: "http" + groups: "git" + append: yes + notify: + - restart fcgiwrap + +- name: Enable fcgiwrap + service: + name: fcgiwrap.socket + state: started + enabled: yes + notify: + - restart fcgiwrap + +- name: Copy configuration from template + template: + src: cgitrc.j2 + dest: /etc/cgitrc + mode: 0644 + owner: "root" + group: "root" + +- name: Copy nginx conf file + template: + src: cgit_nginx.conf.j2 + dest: /etc/nginx/nginx.d/cgit.conf + mode: 0644 + owner: "root" + group: "root" + notify: + - reload nginx diff --git a/roles/cgit/templates/cgit_nginx.conf.j2 b/roles/cgit/templates/cgit_nginx.conf.j2 new file mode 100644 index 0000000..365daaf --- /dev/null +++ b/roles/cgit/templates/cgit_nginx.conf.j2 @@ -0,0 +1,36 @@ +# {{ ansible_managed }} + +server { + listen 80; + listen [::]:80; + server_name {{ cgit_subdomain }}; + + include snippets/letsencrypt.conf; + + location / { + return 301 https://$host$request_uri; + } +} + +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name {{ cgit_subdomain }}; + + root /usr/share/webapps/cgit; + index index.html index.htm; + + ssl_certificate /etc/letsencrypt/live/{{ cgit_subdomain }}/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/{{ cgit_subdomain }}/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/{{ cgit_subdomain }}/chain.pem; + + try_files $uri @cgit; + location @cgit { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; + fastcgi_param PATH_INFO $uri; + fastcgi_param QUERY_STRING $args; + fastcgi_param HTTP_HOST $server_name; + fastcgi_pass unix:/run/fcgiwrap.sock; + } +} diff --git a/roles/cgit/templates/cgitrc.j2 b/roles/cgit/templates/cgitrc.j2 new file mode 100644 index 0000000..562a002 --- /dev/null +++ b/roles/cgit/templates/cgitrc.j2 @@ -0,0 +1,56 @@ +# +# cgit config +# see cgitrc(5) for details + +css=/cgit.css +logo=/cgit.png + +# source highlighting +source-filter=/usr/lib/cgit/filters/syntax-highlighting.py + +# Display README.md files (located with your repos) in HTML (like github) +readme=:README.md +readme=:README +about-filter=/usr/lib/cgit/filters/about-formatting.sh + +# Specify some default clone urls using macro expansion +clone-url=https://$HTTP_HOST/$CGIT_REPO_URL git://{{ gitolite_clone }}:$CGIT_REPO_URL ssh://{{ gitolite_clone }}/$CGIT_REPO_URL + +# enable git blame +# not implemented yet in v1.1 +#enable-blame=1 + +# use information from gitolite +enable-git-config=1 + +# Show extra links for each repository on the index page +enable-index-links=1 + +# Enable ASCII art commit history graph on the log pages +enable-commit-graph=1 + +# Show number of affected files per commit on the log pages +enable-log-filecount=1 + +# Show number of added/removed lines per commit on the log pages +enable-log-linecount=1 + +# enable mimetypes +enable-html-serving=1 + +# enable stats page +max-stats=year + +# no .git suffix please +remove-suffix=1 + +# common mimetypes +mimetype-file=/etc/mime.types + +# download repo as tar.* +snapshots=tar.gz tar.xz zip + +project-list=/srv/git/projects.list +scan-path=/srv/git/repositories + +virtual-root=/ -- cgit v1.2.3-70-g09d2