--- /dev/null
+- name: create quadlet
+ ansible.builtin.copy:
+ dest: /etc/containers/systemd/vaultwarden.container
+ content: |
+ [Unit]
+ After=network-online.target
+
+ [Container]
+ AutoUpdate=registry
+ Image=ghcr.io/dani-garcia/vaultwarden:latest
+ Exec=/start.sh
+ EnvironmentFile=vaultwarden.environment
+ Volume=/var/lib/vaultwarden/:/data/
+ PublishPort=127.0.0.1:8080:80
+
+ [Install]
+ WantedBy=default.target
+ notify:
+ - systemd daemon reload
+ - restart quadlet
+- name: create environment
+ ansible.builtin.copy:
+ dest: /etc/containers/systemd/vaultwarden.environment
+ content: |
+ DOMAIN=https://{{ public_hostname }}/vaultwarden
+ notify:
+ - restart quadlet
+- name: create storage
+ ansible.builtin.file:
+ name: /var/lib/vaultwarden
+ state: directory
+- meta: flush_handlers
+- name: enable quadlet
+ ansible.builtin.systemd_service:
+ name: vaultwarden.service
+ enabled: true
+ state: started
cmd: a2enmod userdir
creates: /etc/apache2/mods-enabled/userdir.load
notify: restart web
+- name: enable mod_proxy_http
+ ansible.builtin.command:
+ cmd: a2enmod proxy_http
+ creates: /etc/apache2/mods-enabled/proxy_http.load
+ notify: restart web
+- name: enable mod_headers
+ ansible.builtin.command:
+ cmd: a2enmod headers
+ creates: /etc/apache2/mods-enabled/headers.load
+ notify: restart web
- name: ssl site
ansible.builtin.copy:
dest: /etc/apache2/sites-enabled/ssl.conf
ServerName {{ public_hostname_punycode }}
SSLEngine on
ServerAdmin {{ admin_email }}
+
+ <Location /vaultwarden/>
+ ProxyPass http://127.0.0.1:8080/vaultwarden/
+ ProxyPreserveHost On
+ RequestHeader set X-Real-IP %{REMOTE_ADDR}s
+ </Location>
</VirtualHost>
notify: restart web