humble-homelab/roles/forgejo/tasks/main.yml
2024-01-18 21:29:44 +01:00

105 lines
2.6 KiB
YAML

- name: ensure required packages for forgejo is present
ansible.builtin.apt:
pkg:
- git
- rsync
state: present
# using generous time because unattended upgrades will keep packages updated.
cache_valid_time: 604800
- name: check if Forgejo is installed
shell: /usr/local/bin/forgejo --version | awk '{print $3}' | sed 's/\+/-/g'
register: forgejo_found_version
changed_when: false
- name: download forgejo (arm)
get_url:
url: "https://codeberg.org/forgejo/forgejo/releases/download/v{{ forgejo_version }}/forgejo-{{ forgejo_version }}-linux-arm64"
dest: /usr/local/bin/forgejo
checksum: "{{ forgejo_checksum_arm64 }}"
when:
- ansible_architecture == 'aarch64'
- forgejo_version != forgejo_found_version.stdout
notify: restart forgejo
- name: download forgejo (x86_64)
get_url:
url: "https://codeberg.org/forgejo/forgejo/releases/download/v{{ forgejo_version }}/forgejo-{{ forgejo_version }}-linux-amd64"
dest: /usr/local/bin/forgejo
checksum: "{{ forgejo_checksum_amd64 }}"
when:
- ansible_architecture == 'x86_64'
- forgejo_version != forgejo_found_version.stdout
notify: restart forgejo
- name: set correct rights on forgejo executable
file:
path: /usr/local/bin/forgejo
mode: '0755'
- name: create a git user responsible for forgejo
user:
comment: "user responsible for forgejo"
system: yes
password: "!"
shell: /bin/bash
state: present
name: git
create_home: yes
- name: create data folders required by forgejo
file:
path: '{{ item }}'
state: directory
owner: git
group: git
mode: '0750'
loop:
- /var/lib/forgejo
- name: create configuration folder required by forgejo
file:
path: '{{ item }}'
state: directory
mode: '0770'
owner: root
group: git
loop:
- /etc/forgejo
- name: Load Forgejo backup
ansible.builtin.import_tasks: load-backups.yml
when: forgejo_load_backup is defined
- name: upload forgejo configuration
notify: restart forgejo
template:
src: app.ini.j2
dest: /etc/forgejo/app.ini
mode: '0400'
owner: git
group: git
- name: upload custom adjustments
notify: restart forgejo
ansible.posix.synchronize:
recursive: true
src: custom
dest: /var/lib/forgejo
rsync_opts:
- --chown=git:git
- --chmod=755
- name: upload systemd unit file
notify: restart forgejo
copy:
src: forgejo.service
dest: /etc/systemd/system/forgejo.service
- name: upload forgejo.sh helper script
ansible.builtin.copy:
src: forgejo.sh
dest: /usr/local/bin/forgejo.sh
mode: '0755'
owner: root
group: root