[ { "name": "packages", "become": true, "ansible.builtin.apt": { "update_cache": true, "pkg": [ "git" ] } }, { "name": "user", "become": true, "ansible.builtin.user": { "name": "{{var_forgejo_user}}", "create_home": true, "home": "{{var_forgejo_directory_main}}" } }, { "name": "directories | external", "become": true, "loop": [ "{{var_forgejo_database_data_sqlite_path | dirname}}", "{{var_forgejo_directory_repositories}}" ], "ansible.builtin.file": { "path": "{{item}}", "state": "directory", "owner": "{{var_forgejo_user}}" } }, { "name": "directories | internal", "become": true, "become_user": "{{var_forgejo_user}}", "loop": [ "{{var_forgejo_directory_main}}/custom/conf" ], "ansible.builtin.file": { "path": "{{item}}", "state": "directory" } }, { "name": "download", "become": true, "become_user": "{{var_forgejo_user}}", "ansible.builtin.get_url": { "url": "https://codeberg.org/forgejo/forgejo/releases/download/v{{var_forgejo_version}}/forgejo-{{var_forgejo_version}}-{{var_forgejo_platform}}", "dest": "{{var_forgejo_directory_main}}/forgejo", "mode": "u+rx" } }, { "name": "config | base", "become": true, "become_user": "{{var_forgejo_user}}", "ansible.builtin.template": { "src": "config.ini.j2", "dest": "{{var_forgejo_directory_main}}/custom/conf/app.ini" } }, { "name": "config | database", "become": true, "become_user": "{{var_forgejo_user}}", "ansible.builtin.command": { "chdir": "{{var_forgejo_directory_main}}", "cmd": "./forgejo migrate" } }, { "name": "config | authelia", "when": "var_forgejo_authentication_kind == 'authelia'", "become": true, "become_user": "{{var_forgejo_user}}", "ansible.builtin.shell": { "chdir": "{{var_forgejo_directory_main}}", "cmd": "(./forgejo admin auth list | grep authelia) || ./forgejo admin auth add-oauth --provider='openidConnect' --name='authelia' --key={{var_forgejo_authentication_data_authelia_client_id}} --secret={{var_forgejo_authentication_data_authelia_client_secret}} --auto-discover-url='{{var_forgejo_authentication_data_authelia_url_base}}/.well-known/openid-configuration' --scopes='openid email profile'" } }, { "name": "systemd unit", "become": true, "ansible.builtin.template": { "src": "systemd-unit.j2", "dest": "/etc/systemd/system/forgejo.service" } }, { "name": "start", "become": true, "ansible.builtin.systemd_service": { "enabled": true, "state": "restarted", "name": "forgejo" } } ]