summaryrefslogtreecommitdiff
path: root/roles/vaultwarden
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-13 16:35:47 +0100
committerJoe Carstairs <me@joeac.net>2026-08-13 16:35:47 +0100
commit9f2ebc2cce3af0e685677c23f2098c115e034adf (patch)
treebc6609cf851ee3f0a4f572d762b4ea35a34610f6 /roles/vaultwarden
parentf31e65c51681823ade14abad87c742101a1b823d (diff)
move ansible/ dir to root
Diffstat (limited to 'roles/vaultwarden')
-rw-r--r--roles/vaultwarden/tasks/main.yml26
-rwxr-xr-xroles/vaultwarden/templates/openrc/vaultwarden46
2 files changed, 72 insertions, 0 deletions
diff --git a/roles/vaultwarden/tasks/main.yml b/roles/vaultwarden/tasks/main.yml
new file mode 100644
index 0000000..6533642
--- /dev/null
+++ b/roles/vaultwarden/tasks/main.yml
@@ -0,0 +1,26 @@
+- name: Install podman and jq
+ community.general.apk:
+ name:
+ - podman
+ - jq
+
+- name: Install vaultwarden service
+ register: vaultwarden_service
+ ansible.builtin.template:
+ src: openrc/vaultwarden
+ dest: /etc/init.d/vaultwarden
+ mode: "755"
+
+- name: Restart vaultwarden service and configure to start on boot
+ when: vaultwarden_service is changed
+ ansible.builtin.service:
+ name: vaultwarden
+ enabled: true
+ state: restarted
+
+- name: Start vaultwarden service and configure to start on boot
+ when: not ( vaultwarden_service is changed )
+ ansible.builtin.service:
+ name: vaultwarden
+ enabled: true
+ state: started
diff --git a/roles/vaultwarden/templates/openrc/vaultwarden b/roles/vaultwarden/templates/openrc/vaultwarden
new file mode 100755
index 0000000..cf718a5
--- /dev/null
+++ b/roles/vaultwarden/templates/openrc/vaultwarden
@@ -0,0 +1,46 @@
+#!/sbin/openrc-run
+
+description="Run vaultwarden container image"
+
+start() {
+ ebegin "Starting vaultwarden"
+ podman create \
+ --name=joeac.net-vaultwarden \
+ --env DOMAIN=https://pwd.joeac.net \
+ --volume /var/vaultwarden/data:/data/ \
+ --publish 9000:80 \
+ --restart unless-stopped \
+ docker.io/vaultwarden/server:latest
+ podman start joeac.net-vaultwarden
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping vaultwarden"
+ podman rm --force joeac.net-vaultwarden
+ eend $?
+}
+
+status() {
+ if ! $(podman container exists joeac.net-vaultwarden); then
+ einfo "status: no container found called joeac.net-vaultwarden"
+ exit 3
+ fi
+ state="$(podman inspect joeac.net-vaultwarden | jq .[0].State)"
+ if [ "$(echo "$state" | jq .Paused)" == "true" ]; then
+ einfo "status: paused"
+ exit 0
+ elif [ "$(echo "$state" | jq .Restarting)" == "true" ]; then
+ einfo "status: restarting"
+ exit 0
+ elif [ "$(echo "$state" | jq .Running)" == "true" ]; then
+ einfo "status: running"
+ exit 0
+ elif [ "$(echo "$state" | jq .Error)" == "0" ]; then
+ einfo "status: stopped"
+ exit 3
+ else
+ einfo "status: crashed"
+ exit 3
+ fi
+}