woodpecker
change
commit 223020f5cded23b8f9d2681761b9be67330e1cc0
author Alpha Chen <alpha@kejadlen.dev>
date
parent cc537087
diff --git a/lotus-land-story/main.yml b/lotus-land-story/main.yml
index c3aad08..5fda767 100644
--- a/lotus-land-story/main.yml
+++ b/lotus-land-story/main.yml
@@ -97,7 +97,9 @@
 - import_playbook: grafana.yml    # noqa: name[play]
 - import_playbook: loki.yml       # noqa: name[play]
 - import_playbook: miniflux.yml   # noqa: name[play]
-- import_playbook: caddy.yml      # noqa: name[play]
 - import_playbook: golink.yml     # noqa: name[play]
+- import_playbook: woodpecker.yml # noqa: name[play]
+
+- import_playbook: caddy.yml      # noqa: name[play]
 
 # vim: ft=yaml.ansible
diff --git a/lotus-land-story/templates/Caddyfile b/lotus-land-story/templates/Caddyfile
index bd26f53..0e518cf 100644
--- a/lotus-land-story/templates/Caddyfile
+++ b/lotus-land-story/templates/Caddyfile
@@ -17,3 +17,11 @@ prometheus.{{ domain }} {
 grafana.{{ domain }} {
 	reverse_proxy grafana:3000
 }
+
+ci.{{ domain }} {
+	reverse_proxy woodpecker-server:8000
+}
+
+woodpecker.{{ domain }} {
+	reverse_proxy woodpecker-server:8000
+}
diff --git a/lotus-land-story/templates/prometheus.yml b/lotus-land-story/templates/prometheus.yml
index d45ddff..b7fb768 100644
--- a/lotus-land-story/templates/prometheus.yml
+++ b/lotus-land-story/templates/prometheus.yml
@@ -37,6 +37,11 @@ scrape_configs:
     static_configs:
       - targets: ['miniflux:8080']
 
+  - job_name: woodpecker
+    bearer_token: {{ woodpecker.api_token }}
+    static_configs:
+      - targets: ['woodpecker-server:8000']
+
   - job_name: linode
     linode_sd_configs:
       - authorization:
diff --git a/lotus-land-story/woodpecker.yml b/lotus-land-story/woodpecker.yml
new file mode 100644
index 0000000..ec5732e
--- /dev/null
+++ b/lotus-land-story/woodpecker.yml
@@ -0,0 +1,53 @@
+- name: Set up Woodpecker
+  hosts: lotus-land-story
+  vars_files:
+    - vars.yml
+  tasks:
+
+    - name: Make /mnt/lotus-land-story/woodpecker
+      ansible.builtin.file:
+        path: /mnt/lotus-land-story/woodpecker
+        state: directory
+        mode: "0755"
+        # owner: 65532
+        # group: 65532
+
+    - name: Run Woodpecker server
+      community.docker.docker_container:
+        name: woodpecker-server
+        image: woodpeckerci/woodpecker-server:v0.15.11
+        restart: true
+        env:
+          # WOODPECKER_OPEN: "true"
+          WOODPECKER_HOST: "{{ woodpecker.host }}"
+          WOODPECKER_AGENT_SECRET: "{{ woodpecker.secret }}"
+          WOODPECKER_GITEA: "true"
+          WOODPECKER_GITEA_URL: "{{ woodpecker.gitea.url }}"
+          WOODPECKER_GITEA_CLIENT: "{{ woodpecker.gitea.client }}"
+          WOODPECKER_GITEA_SECRET: "{{ woodpecker.gitea.secret }}"
+          WOODPECKER_ADMIN: "alpha"
+        volumes:
+          - /mnt/lotus-land-story/woodpecker:/var/lib/woodpecker
+        restart_policy: unless-stopped
+        networks:
+          - name: lotus_land_story
+
+    - name: Run Woodpecker agent
+      community.docker.docker_container:
+        name: woodpecker-agent
+        image: woodpeckerci/woodpecker-agent:v0.15.11
+        restart: true
+        env:
+          WOODPECKER_SERVER: woodpecker-server:9000
+          WOODPECKER_AGENT_SECRET: "{{ woodpecker.secret }}"
+        volumes:
+          - /var/run/docker.sock:/var/run/docker.sock
+        restart_policy: unless-stopped
+        networks:
+          - name: lotus_land_story
+
+  handlers:
+    - name: Import restarts
+      ansible.builtin.import_tasks: restarts.yml
+
+# vim: ft=yaml.ansible