diff options
author | Stonewall Jackson <stonewall@sacredheartsc.com> | 2023-02-04 01:23:43 -0500 |
---|---|---|
committer | Stonewall Jackson <stonewall@sacredheartsc.com> | 2023-02-04 01:52:13 -0500 |
commit | 0261e875679f1bf63c8d689da7fc7e014597885d (patch) | |
tree | 3f19cd74a0c1070944f75437f30b098d6ef2ffcb /roles/cgit | |
download | selfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.tar.gz selfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.zip |
initial commit
Diffstat (limited to 'roles/cgit')
-rw-r--r-- | roles/cgit/defaults/main.yml | 27 | ||||
-rw-r--r-- | roles/cgit/meta/main.yml | 4 | ||||
-rw-r--r-- | roles/cgit/tasks/main.yml | 51 | ||||
-rw-r--r-- | roles/cgit/templates/etc/cgitrc.j2 | 68 | ||||
-rw-r--r-- | roles/cgit/vars/main.yml | 9 |
5 files changed, 159 insertions, 0 deletions
diff --git a/roles/cgit/defaults/main.yml b/roles/cgit/defaults/main.yml new file mode 100644 index 0000000..72b8b8a --- /dev/null +++ b/roles/cgit/defaults/main.yml @@ -0,0 +1,27 @@ +cgit_clone_prefixes: + - https://{{ ansible_fqdn }} + - ssh://{{ ansible_fqdn }} + +cgit_title: '{{ organization }} Git Repository' +cgit_description: Source code of various {{ organization }} projects. + +cgit_cache_size: 1000 +cgit_user: git +cgit_project_list: /var/www/git/projects.list +cgit_scan_path: /var/www/git/repositories + +cgit_enable_http_clone: no + +cgit_repository_sort: name +cgit_branch_sort: name + +# cgit_favicon: /path/to/favicon.ico +# cgit_logo: /path/to/logo.png +# cgit_css: /path/to/style.css +# cgit_head_include: /path/to/head/include.html +# cgit_header: /path/to/header.html + +cgit_about_html: > + This is a git repository for various projects hosted by {{ organization }}. + To request commit access or report technical issues, + <a href="mailto:root@{{ email_domain }}">contact the administrator</a>. diff --git a/roles/cgit/meta/main.yml b/roles/cgit/meta/main.yml new file mode 100644 index 0000000..29230f9 --- /dev/null +++ b/roles/cgit/meta/main.yml @@ -0,0 +1,4 @@ +dependencies: + - role: yum + yum_repositories: epel + tags: yum diff --git a/roles/cgit/tasks/main.yml b/roles/cgit/tasks/main.yml new file mode 100644 index 0000000..67f77f6 --- /dev/null +++ b/roles/cgit/tasks/main.yml @@ -0,0 +1,51 @@ +- name: install cgit + dnf: + name: '{{ cgit_packages }}' + state: present + +- name: generate cgit configuration + template: + src: etc/cgitrc.j2 + dest: /etc/cgitrc + +- name: allow selinux mmap files + seboolean: + name: domain_can_mmap_files + state: yes + persistent: yes + tags: selinux + +- name: create cgit about file + copy: + content: '{{ cgit_about_html }}' + dest: '{{ cgit_static_dir }}/about.html' + +- name: copy custom css + copy: + src: '{{ cgit_css }}' + dest: '{{ cgit_static_dir }}/{{ cgit_css | basename }}' + when: cgit_css is defined + +- name: copy custom logo + copy: + src: '{{ cgit_logo }}' + dest: '{{ cgit_static_dir }}/{{ cgit_logo | basename }}' + when: cgit_logo is defined + +- name: copy custom favicon + copy: + src: '{{ cgit_favicon }}' + dest: '{{ cgit_static_dir }}/{{ cgit_favicon | basename }}' + when: cgit_favicon is defined + +- name: copy custom html head include + copy: + src: '{{ cgit_head_include }}' + dest: '{{ cgit_static_dir }}/{{ cgit_head_include | basename }}' + when: cgit_head_include is defined + +- name: copy custom html header + copy: + src: '{{ cgit_header }}' + dest: '{{ cgit_static_dir }}/{{ cgit_header | basename }}' + when: cgit_header is defined diff --git a/roles/cgit/templates/etc/cgitrc.j2 b/roles/cgit/templates/etc/cgitrc.j2 new file mode 100644 index 0000000..f504896 --- /dev/null +++ b/roles/cgit/templates/etc/cgitrc.j2 @@ -0,0 +1,68 @@ +cache-size={{ cgit_cache_size }} +clone-prefix={{ cgit_clone_prefixes | join(' ') }} +enable-http-clone={{ cgit_enable_http_clone | int }} +enable-blame=1 +enable-commit-graph=1 +enable-log-filecount=1 +enable-log-linecount=1 +branch-sort={{ cgit_branch_sort }} + +# static assets +favicon=/static/{{ cgit_favicon | default('favicon.ico') | basename }} +logo=/static/{{ cgit_logo | default('cgit.png') | basename }} +css=/static/{{ cgit_css | default('cgit.css') | basename }} +{% if cgit_head_include is defined %} +head-include={{ cgit_static_dir }}/{{ cgit_head_include | basename }} +{% endif %} +{% if cgit_header is defined %} +header={{ cgit_static_dir }}/{{ cgit_header | basename }} +{% endif %} + +max-stats=year +root-title={{ cgit_title }} +root-desc={{ cgit_description }} +remove-suffix=1 +root-readme={{ cgit_static_dir }}/about.html +repository-sort={{ cgit_repository_sort }} +snapshots=tar.gz zip +local-time=1 + +mimetype.gif=image/gif +mimetype.html=text/html +mimetype.jpg=image/jpeg +mimetype.jpeg=image/jpeg +mimetype.pdf=application/pdf +mimetype.png=image/png +mimetype.svg=image/svg+xml + +source-filter=/usr/libexec/cgit/filters/syntax-highlighting.sh +about-filter=/usr/libexec/cgit/filters/about-formatting.sh + +readme=:README.md +readme=:readme.md +readme=:README.mkd +readme=:readme.mkd +readme=:README.html +readme=:readme.html +readme=:README.htm +readme=:readme.htm +readme=:README.txt +readme=:readme.txt +readme=:README +readme=:readme +readme=:INSTALL.md +readme=:install.md +readme=:INSTALL.mkd +readme=:install.mkd +readme=:INSTALL.html +readme=:install.html +readme=:INSTALL.htm +readme=:install.htm +readme=:INSTALL.txt +readme=:install.txt +readme=:INSTALL +readme=:install + +enable-git-config=1 +project-list={{ cgit_project_list }} +scan-path={{ cgit_scan_path }} diff --git a/roles/cgit/vars/main.yml b/roles/cgit/vars/main.yml new file mode 100644 index 0000000..53e341d --- /dev/null +++ b/roles/cgit/vars/main.yml @@ -0,0 +1,9 @@ +cgit_packages: + - cgit + - highlight + - python3-markdown + - python3-pygments + +cgit_static_dir: /usr/share/cgit +cgit_cgi_script: /var/www/cgi-bin/cgit +cgit_cache_dir: /var/cache/cgit |