downloads = { '/usr/local/bin/gitea': { 'url': 'https://dl.gitea.io/gitea/{version}/gitea-{version}-linux-amd64'.format(version=node.metadata['gitea']['version']), 'sha256': node.metadata['gitea']['sha256'], 'triggers': { 'svc_systemd:gitea:restart', }, 'preceded_by': { 'svc_systemd:gitea:stop', }, }, } users = { 'git': {}, } directories = { '/home/git': { 'mode': '0755', 'owner': 'git', 'group': 'git', }, '/var/lib/gitea': { 'owner': 'git', 'mode': '0700', 'triggers': { 'svc_systemd:gitea:restart', }, }, } actions = { 'chmod_gitea': { 'command': 'chmod a+x /usr/local/bin/gitea', 'unless': 'test -x /usr/local/bin/gitea', 'needs': { 'download:/usr/local/bin/gitea', }, }, } files = { '/etc/systemd/system/gitea.service': { 'content_type': 'mako', 'context': node.metadata['gitea'], 'triggers': { 'action:systemd-reload', 'svc_systemd:gitea:restart', }, }, '/etc/gitea/app.ini': { 'content_type': 'mako', 'context': node.metadata['gitea'], 'triggers': { 'svc_systemd:gitea:restart', }, }, } if node.metadata['gitea'].get('install_ssh_key', False): files['/home/git/.ssh/id_ed25519'] = { 'content': repo.vault.decrypt_file(f'gitea/files/ssh-keys/{node.name}.key.vault'), 'mode': '0600', 'owner': 'git', 'group': 'git', } svc_systemd = { 'gitea': { 'needs': { 'action:chmod_gitea', 'download:/usr/local/bin/gitea', 'file:/etc/systemd/system/gitea.service', 'file:/etc/gitea/app.ini', }, }, }