--- - name: install dependencies become: true ansible.builtin.apt: update_cache: yes force_apt_get: true state: present cache_valid_time: 3600 pkg: - git - git-lfs - name: gather facts ansible.builtin.include_tasks: gather_facts.yml - name: create service group become: true ansible.builtin.group: name: '{{ forgejo_group }}' system: true state: present - name: create service user become: true ansible.builtin.user: name: '{{ forgejo_user }}' group: '{{ forgejo_group }}' shell: '/usr/sbin/nologin' create_home: true home: '{{ forgejo_home_dir }}' system: true state: present - name: fetch Forgejo binary become: true ansible.builtin.get_url: url: '{{ forgejo_assets_url }}/v{{ forgejo_target_version }}/{{ forgejo_asset_name }}' checksum: 'sha256:{{ forgejo_assets_url }}/v{{ forgejo_target_version }}/{{ forgejo_asset_name }}.sha256' mode: 'u=rwx,g=rx,o=rx' owner: '{{ forgejo_user }}' group: '{{ forgejo_group }}' dest: '{{ forgejo_binary_filepath }}' register: forgejo_install_cmd - name: create directories become: true ansible.builtin.file: path: '{{ item.path }}' owner: '{{ item.owner }}' group: '{{ forgejo_group }}' mode: '{{ item.mode }}' state: directory loop: - path: '{{ forgejo_config_dir }}' mode: 'u=rwX,g=rwX,o=' owner: root - path: '{{ forgejo_install_dir }}' mode: 'u=rwX,g=rX,o=' owner: '{{ forgejo_user }}' - name: install systemd unit files become: true ansible.builtin.template: src: ../templates/systemd/forgejo.service.j2 dest: '{{ systemd_unit_directory }}/forgejo.service' owner: root group: root mode: 'u=rwX,g=rX,o=' notify: - 'forgejo : restart forgejo service' - name: create app configuration from template when: forgejo_custom_config is falsy and (forgejo_config_file_present is falsy or forgejo_overwrite_config_file is truthy) become: true ansible.builtin.template: src: '../templates/app.ini.j2' dest: '{{ forgejo_config_dir }}/app.ini' owner: '{{ forgejo_user }}' group: '{{ forgejo_group }}' mode: 'u=rw,g=r,o=' notify: - 'forgejo : restart forgejo service' - name: create app configuration from custom content when: forgejo_custom_config is truthy and (forgejo_config_file_present is falsy or forgejo_overwrite_config_file is truthy) become: true ansible.builtin.copy: content: '{{ forgejo_custom_config }}' dest: '{{ forgejo_config_dir }}/app.ini' owner: '{{ forgejo_user }}' group: '{{ forgejo_group }}' mode: 'u=rw,g=r,o=' notify: - 'forgejo : restart forgejo service' - name: enable git-related configuration to sshd_config.d become: true ansible.builtin.template: src: '../templates/sshd_config.d/git_env.conf.j2' dest: '{{ forgejo_sshd_conf_dir }}/git_env.conf' owner: root group: root mode: 'u=rw,g=r,o=' - name: start services become: true ansible.builtin.systemd: name: forgejo.service enabled: true state: started daemon_reload: true