diff --git a/project/roles/gitea/handlers/main.yml b/project/roles/gitea/handlers/main.yml new file mode 100644 index 0000000..705e1a6 --- /dev/null +++ b/project/roles/gitea/handlers/main.yml @@ -0,0 +1,9 @@ +--- +- name: Reload systemd + ansible.builtin.systemd: + daemon_reload: yes + +- name: Restart gitea + ansible.builtin.systemd: + name: gitea + state: restarted diff --git a/project/roles/gitea/tasks/main.yml b/project/roles/gitea/tasks/main.yml new file mode 100644 index 0000000..9d6898a --- /dev/null +++ b/project/roles/gitea/tasks/main.yml @@ -0,0 +1,21 @@ +--- +- name: Create gitea.service + ansible.builtin.template: + src: gitea.service.j2 + dest: /etc/systemd/system/gitea.service + notify: + - reload systemd + - restart gitea + +- name: Flush handlers + meta: flush_handlers + +- name: Ensure service is started + ansible.builtin.systemd: + state: started + name: gitea + +- name: Ensure service is enabled + ansible.builtin.systemd: + enabled: yes + name: gitea diff --git a/project/roles/gitea/templates/gitea.service.j2 b/project/roles/gitea/templates/gitea.service.j2 new file mode 100644 index 0000000..1e412c7 --- /dev/null +++ b/project/roles/gitea/templates/gitea.service.j2 @@ -0,0 +1,28 @@ +[Unit] +Description=Gitea Container +After=docker.service +After=dockerdata.mount +Requires=docker.service +Requires=dockerdata.mount + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker stop gitea +ExecStartPre=-/usr/bin/docker rm gitea +ExecStartPre=-/usr/bin/docker pull gitea/gitea:latest +ExecStart=/usr/bin/docker run \ + -p 222:22 \ + -l "traefik.enable=true" \ + -l "traefik.http.routers.gitea.rule=Host(`git.t-juice.club`)" \ + -l "traefik.http.routers.gitea.tls=true" \ + -l "traefik.http.routers.gitea.tls.certresolver=le" \ + -l "traefik.http.services.gitea.loadbalancer.server.port=3000" \ + -v /dockerdata/gitea:/data \ + -v /etc/localtime:/etc/localtime:ro \ + -v /etc/timezone:/etc/timezone:ro \ + --network proxy \ + --name gitea gitea/gitea:latest + +[Install] +WantedBy=multi-user.target