From 6ed68a36be17818a4ceb3d512303db66ff599c9d Mon Sep 17 00:00:00 2001 From: Lino Silva Date: Fri, 29 May 2026 12:20:55 +0100 Subject: [PATCH] feat: Forgejo --- .../inventories/group_vars/all/app_disks.yml | 9 ++++ ansible/playbooks/configure_vms.yml | 1 + ansible/roles/forgejo/tasks/main.yml | 53 +++++++++++++++++++ docker-compose/apps-1/forgejo/compose.yaml | 14 +++++ 4 files changed, 77 insertions(+) create mode 100644 ansible/roles/forgejo/tasks/main.yml create mode 100644 docker-compose/apps-1/forgejo/compose.yaml diff --git a/ansible/inventories/group_vars/all/app_disks.yml b/ansible/inventories/group_vars/all/app_disks.yml index e0bb971..6236d61 100644 --- a/ansible/inventories/group_vars/all/app_disks.yml +++ b/ansible/inventories/group_vars/all/app_disks.yml @@ -20,3 +20,12 @@ app_data_disks: disk_id: scsi1 mount_point: /data/trek device: /dev/sdb + forgejo: + vm: apps-1 + vmid: 430 + node: yunobo + size: "50" + storage: nvme-2tb + disk_id: scsi2 + mount_point: /data/forgejo + device: /dev/sdc diff --git a/ansible/playbooks/configure_vms.yml b/ansible/playbooks/configure_vms.yml index e9580c8..1edd1bc 100644 --- a/ansible/playbooks/configure_vms.yml +++ b/ansible/playbooks/configure_vms.yml @@ -36,6 +36,7 @@ - docker - komodo-periphery - trek + - forgejo - hosts: apps-2 become: yes diff --git a/ansible/roles/forgejo/tasks/main.yml b/ansible/roles/forgejo/tasks/main.yml new file mode 100644 index 0000000..1bdbf5c --- /dev/null +++ b/ansible/roles/forgejo/tasks/main.yml @@ -0,0 +1,53 @@ +--- +- name: Add data disk to VM for forgejo + community.proxmox.proxmox_disk: + api_host: "{{ proxmox_api_host }}" + api_user: "{{ proxmox_api_user }}" + api_token_id: "{{ proxmox_api_token_id }}" + api_token_secret: "{{ proxmox_api_token_secret }}" + vmid: "{{ app_data_disks.forgejo.vmid }}" + disk: "{{ app_data_disks.forgejo.disk_id }}" + storage: "{{ app_data_disks.forgejo.storage }}" + size: "{{ app_data_disks.forgejo.size }}" + state: present + delegate_to: localhost + become: no + run_once: true + ignore_errors: yes + register: disk_result + +- name: Display disk creation result + debug: + var: disk_result + +- name: Wait for data disk to be available + wait_for: + path: "{{ app_data_disks.forgejo.device }}" + state: present + timeout: 30 + +- name: Check if data disk is formatted + command: "blkid {{ app_data_disks.forgejo.device }}" + register: disk_formatted + failed_when: false + changed_when: false + +- name: Format data disk with ext4 + filesystem: + fstype: ext4 + dev: "{{ app_data_disks.forgejo.device }}" + when: disk_formatted.rc != 0 + +- name: Create forgejo data mount point + file: + path: "{{ app_data_disks.forgejo.mount_point }}" + state: directory + mode: "0755" + +- name: Mount data disk + mount: + path: "{{ app_data_disks.forgejo.mount_point }}" + src: "{{ app_data_disks.forgejo.device }}" + fstype: ext4 + state: mounted + opts: defaults diff --git a/docker-compose/apps-1/forgejo/compose.yaml b/docker-compose/apps-1/forgejo/compose.yaml new file mode 100644 index 0000000..552d940 --- /dev/null +++ b/docker-compose/apps-1/forgejo/compose.yaml @@ -0,0 +1,14 @@ +services: + server: + image: codeberg.org/forgejo/forgejo:16 + container_name: forgejo + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + volumes: + - /data/forgejo:/data + - /etc/localtime:/etc/localtime:ro + ports: + - "8086:3000" + - "222:22"