summaryrefslogtreecommitdiffstats
path: root/roles/caddy
diff options
context:
space:
mode:
Diffstat (limited to 'roles/caddy')
-rw-r--r--roles/caddy/defaults/main.yml2
-rw-r--r--roles/caddy/handlers/main.yml6
-rw-r--r--roles/caddy/meta/argument_specs.yml8
-rw-r--r--roles/caddy/meta/main.yml17
-rw-r--r--roles/caddy/tasks/main.yml32
-rw-r--r--roles/caddy/templates/Caddyfile.j25
6 files changed, 70 insertions, 0 deletions
diff --git a/roles/caddy/defaults/main.yml b/roles/caddy/defaults/main.yml
new file mode 100644
index 00000000..9eed9960
--- /dev/null
+++ b/roles/caddy/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+caddy_server_name: "{{ ansible_facts['hostname'] }}.local"
diff --git a/roles/caddy/handlers/main.yml b/roles/caddy/handlers/main.yml
new file mode 100644
index 00000000..acfe3947
--- /dev/null
+++ b/roles/caddy/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: "Restart caddy"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "caddy"
+ state: "restarted"
diff --git a/roles/caddy/meta/argument_specs.yml b/roles/caddy/meta/argument_specs.yml
new file mode 100644
index 00000000..7a55e9a2
--- /dev/null
+++ b/roles/caddy/meta/argument_specs.yml
@@ -0,0 +1,8 @@
+---
+argument_specs:
+ main:
+ options:
+ caddy_server_name:
+ type: "str"
+ description: "The server name for caddy configuration"
+ default: "{{ ansible_facts['hostname'] }}.local"
diff --git a/roles/caddy/meta/main.yml b/roles/caddy/meta/main.yml
new file mode 100644
index 00000000..a22dcce9
--- /dev/null
+++ b/roles/caddy/meta/main.yml
@@ -0,0 +1,17 @@
+---
+dependencies: []
+galaxy_info:
+ author: "a14m"
+ description: "Configure Caddy reverse proxy"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/caddy/tasks/main.yml b/roles/caddy/tasks/main.yml
new file mode 100644
index 00000000..78d484fc
--- /dev/null
+++ b/roles/caddy/tasks/main.yml
@@ -0,0 +1,32 @@
+---
+- name: "Install caddy"
+ become: true
+ ansible.builtin.package:
+ name: "caddy"
+ state: "present"
+
+- name: "Ensure caddy sites directory exists"
+ become: true
+ ansible.builtin.file:
+ path: "/etc/caddy/sites"
+ state: "directory"
+ owner: "root"
+ group: "caddy"
+ mode: "0750"
+
+- name: "Create Caddyfile"
+ become: true
+ ansible.builtin.template:
+ src: "Caddyfile.j2"
+ dest: "/etc/caddy/Caddyfile"
+ owner: "root"
+ group: "caddy"
+ mode: "0640"
+ notify: "Restart caddy"
+
+- name: "Start and enable caddy"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "caddy"
+ state: "started"
+ enabled: true
diff --git a/roles/caddy/templates/Caddyfile.j2 b/roles/caddy/templates/Caddyfile.j2
new file mode 100644
index 00000000..f7b32a0c
--- /dev/null
+++ b/roles/caddy/templates/Caddyfile.j2
@@ -0,0 +1,5 @@
+{
+ local_certs
+}
+
+import /etc/caddy/sites/*.caddy