This commit is contained in:
Tiara Rodney 2026-03-14 05:38:45 +01:00
commit 883f31932e
No known key found for this signature in database
GPG key ID: 5CD8EC1D46106723
169 changed files with 5676 additions and 0 deletions

View file

@ -0,0 +1,5 @@
---
install_dir: /opt/kellnr
port: 8000
ssl_cert: /etc/letsencrypt/live/tiararodney.com/fullchain.pem
ssl_key: /etc/letsencrypt/live/tiararodney.com/privkey.pem

View file

@ -0,0 +1,6 @@
---
dependencies:
-
role: docker
-
role: apache

View file

@ -0,0 +1,44 @@
---
-
name: Ensure install directory exists
file:
path: "{{ install_dir }}"
state: directory
mode: "0755"
-
name: Deploy docker-compose file
template:
src: docker-compose.yml.j2
dest: "{{ install_dir }}/docker-compose.yml"
-
name: Start kellnr stack
include_role:
name: docker
tasks_from: start-compose
vars:
compose_project_dir: "{{ install_dir }}"
-
name: Deploy kellnr vhost
include_role:
name: apache
tasks_from: deploy-reverse-proxy
vars:
vhost_name: kellnr
server_name: "{{ hostname }}"
backend_port: "{{ port }}"
-
name: Deploy kellnr backup script
include_role:
name: docker
tasks_from: deploy-backup
vars:
backup_name: kellnr
backup_hook_dir: /etc/restic/pre-backup.d
backup_volumes:
- kellnr_kellnr_data
backup_files:
- "{{ install_dir }}/docker-compose.yml"

View file

@ -0,0 +1,4 @@
---
-
name: Deploy kellnr
ansible.builtin.include_tasks: deploy-kellnr.yml

View file

@ -0,0 +1,33 @@
---
-
name: Set backup staging directory
set_fact:
_kellnr_backup_dir: "{{ backup_staging_dir | default('/var/backups') }}/kellnr"
-
name: Stop kellnr stack
community.docker.docker_compose_v2:
project_src: "{{ install_dir }}"
state: absent
-
name: Restore docker-compose file
copy:
src: "{{ _kellnr_backup_dir }}/docker-compose.yml"
dest: "{{ install_dir }}/docker-compose.yml"
remote_src: yes
mode: "0600"
-
name: Restore kellnr data volume
command: >
docker run --rm
-v kellnr_kellnr_data:/data
-v {{ _kellnr_backup_dir }}:/backup
alpine sh -c "rm -rf /data/* && tar xzf /backup/kellnr_data.tar.gz -C /data"
-
name: Start kellnr stack
community.docker.docker_compose_v2:
project_src: "{{ install_dir }}"
state: present

View file

@ -0,0 +1,16 @@
services:
kellnr:
image: ghcr.io/kellnr/kellnr:{{ version }}
ports:
- "127.0.0.1:{{ port }}:8000"
environment:
KELLNR_ORIGIN__HOSTNAME: "{{ hostname }}"
KELLNR_ORIGIN__PORT: "443"
KELLNR_ORIGIN__PROTOCOL: "https"
KELLNR_AUTH__ADMIN_PWD: "{{ admin_pwd }}"
volumes:
- kellnr_data:/var/lib/kellnr
restart: unless-stopped
volumes:
kellnr_data: