182 lines
4.3 KiB
YAML
182 lines
4.3 KiB
YAML
---
|
|
|
|
- name: Create git group
|
|
group:
|
|
name: git
|
|
state: present
|
|
|
|
- name: Create git-static group
|
|
group:
|
|
name: git-static
|
|
state: present
|
|
|
|
- name: Gitea user
|
|
user:
|
|
system: true
|
|
password: '!'
|
|
home: /home/git
|
|
shell: /bin/bash
|
|
comment: "Git Version Control"
|
|
group: git
|
|
name: git
|
|
|
|
- name: Gitea static user # To compile and own static content
|
|
user:
|
|
system: true
|
|
password: '!'
|
|
comment: "To compile and own static gitea content."
|
|
group: git-static
|
|
name: git-static
|
|
|
|
- name: Download gitea
|
|
get_url:
|
|
dest: /usr/local/bin/gitea
|
|
url: "https://dl.gitea.io/gitea/{{ gitea_version }}/gitea-{{ gitea_version }}-linux-amd64"
|
|
mode: 0755
|
|
owner: root
|
|
group: root
|
|
|
|
- name: Download gitea upgrade script
|
|
get_url:
|
|
dest: /usr/local/bin/gitea-upgrade.sh
|
|
url: "https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/upgrade.sh"
|
|
mode: 0755
|
|
force: true
|
|
owner: root
|
|
group: root
|
|
|
|
- name: Install dependencies
|
|
package:
|
|
name:
|
|
- git
|
|
- postgresql
|
|
- python3-psycopg2 # For Ansible
|
|
# - rsync # for static file generation
|
|
# - nodejs # for static file generation
|
|
# - npm # for static file generation
|
|
# - make # for static file generation
|
|
- nginx
|
|
- jq # For upgrade.sh
|
|
- pandoc # For reStructuredText rendering
|
|
state: present
|
|
|
|
- name: Ensure locale en_US.UTF-8 exists
|
|
locale_gen:
|
|
name: en_US.UTF-8
|
|
state: present
|
|
register: locale_gen_result
|
|
|
|
- name: Force-restart PostgreSQL after new locales are generated
|
|
service:
|
|
name: postgresql
|
|
state: restarted
|
|
when: locale_gen_result.changed
|
|
|
|
- name: Create psql git user
|
|
become: true
|
|
become_user: postgres
|
|
postgresql_user:
|
|
user: git
|
|
|
|
- name: Create psql gitea DB
|
|
become: true
|
|
become_user: postgres
|
|
postgresql_db:
|
|
name: gitea
|
|
owner: git
|
|
encoding: UTF-8
|
|
lc_collate: en_US.UTF-8
|
|
lc_ctype: en_US.UTF-8
|
|
template: template0
|
|
|
|
- name: Create gitea hierarchy
|
|
file:
|
|
state: directory
|
|
mode: 0750
|
|
owner: git
|
|
group: git
|
|
path: "{{ item }}"
|
|
loop:
|
|
- /var/lib/gitea/data
|
|
- /var/lib/gitea/log
|
|
- /var/lib/gitea/custom/templates/custom/
|
|
- /var/lib/gitea/custom/public/img/
|
|
|
|
- name: Create gitea config hierarchy
|
|
file:
|
|
state: directory
|
|
mode: 0750
|
|
owner: root
|
|
group: git
|
|
path: /etc/gitea
|
|
|
|
- name: Setup nginx
|
|
include_role: name=nginx
|
|
vars:
|
|
nginx_domain: git.afpy.org
|
|
nginx_certificates: ['git.afpy.org']
|
|
nginx_conf: |
|
|
server
|
|
{
|
|
listen [::]:80; listen 80;
|
|
server_name git.afpy.org;
|
|
return 301 https://git.afpy.org$request_uri;
|
|
}
|
|
|
|
server
|
|
{
|
|
listen [::]:443 ssl http2; listen 443 ssl http2;
|
|
server_name git.afpy.org;
|
|
include snippets/letsencrypt-git.afpy.org.conf;
|
|
client_max_body_size 16M;
|
|
|
|
# location /_/static/assets/ {
|
|
# alias /var/lib/gitea-static/public/;
|
|
# }
|
|
|
|
location / {
|
|
proxy_pass http://localhost:3000;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Public asset generation (to allow nginx to serve them) needs nodejs>14.
|
|
|
|
# - name: Create gitea static hierarchy
|
|
# file:
|
|
# state: directory
|
|
# mode: 0755
|
|
# owner: git-static
|
|
# group: git-static
|
|
# path: "{{ item }}"
|
|
# loop:
|
|
# - /var/lib/gitea-static/source
|
|
# - /var/lib/gitea-static/public
|
|
#
|
|
# - name: Download gitea tarball # For the static content
|
|
# unarchive:
|
|
# src: "https://github.com/go-gitea/gitea/archive/refs/tags/v{{ gitea_version }}.tar.gz"
|
|
# dest: /var/lib/gitea-static/source/
|
|
# remote_src: true
|
|
# owner: git-static
|
|
# group: git-static
|
|
# register: download_gitea_tarball
|
|
#
|
|
# - name: Compile static assets
|
|
# command: make frontend
|
|
# args:
|
|
# chdir: "/var/lib/gitea-static/source/gitea-{{ gitea_version }}"
|
|
# become: true
|
|
# become_user: git-static
|
|
# when: download_gitea_tarball is changed
|
|
#
|
|
# - name: Copy public assets
|
|
# synchronize:
|
|
# src: "/var/lib/gitea-static/source/gitea-{{ gitea_version }}/public/"
|
|
# dest: "/var/lib/gitea-static/public/"
|