- name: Install Forgejo on Debian 12 with Caddy reverse proxy hosts: vipy become: yes vars_files: - ../../infra_vars.yml - ./forgejo_vars.yml vars: forgejo_domain: "{{ forgejo_subdomain }}.{{ root_domain }}" tasks: - name: Ensure required packages are installed apt: name: - git - git-lfs - wget state: present update_cache: true - name: Download Forgejo binary get_url: url: "{{ forgejo_url }}" dest: "/tmp/forgejo" mode: '0755' - name: Move Forgejo binary to /usr/local/bin copy: src: "/tmp/forgejo" dest: "{{ forgejo_bin_path }}" remote_src: yes mode: '0755' - name: Create git system user user: name: "{{ forgejo_user }}" system: yes shell: /bin/bash home: "/home/{{ forgejo_user }}" create_home: yes comment: 'Git Version Control' - name: Create Forgejo data directory file: path: "{{ forgejo_data_dir }}" state: directory owner: "{{ forgejo_user }}" group: "{{ forgejo_user }}" mode: '0750' - name: Create Forgejo config directory file: path: "{{ forgejo_config_dir }}" state: directory owner: "{{ forgejo_user }}" group: "{{ forgejo_user }}" mode: '0770' - name: Create Forgejo config file ansible.builtin.copy: dest: "{{ forgejo_config_dir }}/app.ini" content: | APP_NAME = ; Countergit [server] HTTP_PORT = {{ forgejo_port }} owner: "{{ forgejo_user }}" group: "{{ forgejo_user }}" mode: '0644' - name: Download Forgejo systemd service file get_url: url: "{{ forgejo_service_url }}" dest: "/etc/systemd/system/forgejo.service" mode: '0644' - name: Reload systemd systemd: daemon_reload: yes - name: Enable and start Forgejo service systemd: name: forgejo enabled: yes state: started - name: Create Caddy reverse proxy configuration for forgejo copy: dest: "{{ caddy_sites_dir }}/forgejo.conf" content: | {{ forgejo_domain }} { reverse_proxy localhost:{{ forgejo_port }} } owner: root group: root mode: '0644' - name: Reload Caddy to apply new config service: name: caddy state: reloaded