aboutsummaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-07-12 20:58:57 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-07-12 20:58:57 +0300
commite9f180939070e36a3472def2f582ac40c628af86 (patch)
tree2775b203826a996de5ddfb833ac3bb066d9fa7d5 /roles
parent56f6dcf6d4443e6b22eede461ea5c5d07f3a30a4 (diff)
Set up leolalla_fi jail, improve volume migration handling
Diffstat (limited to 'roles')
-rw-r--r--roles/jail/tasks/jail_setup.yml2
-rw-r--r--roles/jails/19_leolalla_fi/defaults/main.yml13
-rw-r--r--roles/jails/19_leolalla_fi/tasks/main.yml28
-rw-r--r--roles/jails/19_leolalla_fi/templates/gdrive_photo_gallery.env.j25
-rw-r--r--roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery6
5 files changed, 53 insertions, 1 deletions
diff --git a/roles/jail/tasks/jail_setup.yml b/roles/jail/tasks/jail_setup.yml
index 0b1abad..86e28c2 100644
--- a/roles/jail/tasks/jail_setup.yml
+++ b/roles/jail/tasks/jail_setup.yml
@@ -26,7 +26,7 @@
This will:
1. Stop the jail
- 2. Move existing data to {{ result.item.mountpoint }}.migrate
+ 2. Move existing data to .migrate
3. Create ZFS volumes
4. Copy data into the volumes
════════════════════════════════════════════════════════════════
diff --git a/roles/jails/19_leolalla_fi/defaults/main.yml b/roles/jails/19_leolalla_fi/defaults/main.yml
index 5416267..463fde8 100644
--- a/roles/jails/19_leolalla_fi/defaults/main.yml
+++ b/roles/jails/19_leolalla_fi/defaults/main.yml
@@ -1 +1,14 @@
userland: "15.0-RELEASE"
+
+zfs:
+ - name: zroot/jails/volumes/leolalla_fi_data
+ mountpoint: /var/db/gdrive-photo-gallery
+
+pkg:
+ - py312-sqlite3
+ - py312-uv
+ - py312-pillow
+ - python
+
+services:
+ - gdrive_photo_gallery
diff --git a/roles/jails/19_leolalla_fi/tasks/main.yml b/roles/jails/19_leolalla_fi/tasks/main.yml
index 2abdaff..413f930 100644
--- a/roles/jails/19_leolalla_fi/tasks/main.yml
+++ b/roles/jails/19_leolalla_fi/tasks/main.yml
@@ -1,2 +1,30 @@
- import_role:
name: jail
+ tasks_from: jail_setup
+
+- name: Install gdrive-photo-gallery from port
+ shell: cd /usr/ports/www/gdrive-photo-gallery && make install BATCH=yes WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles
+ register: _gallery_install
+ failed_when: "_gallery_install.rc != 0 and 'already installed' not in _gallery_install.stdout"
+ changed_when: "'already installed' not in _gallery_install.stdout"
+
+- name: Deploy environment file
+ template:
+ src: "{{ jail_role_dir }}/templates/gdrive_photo_gallery.env.j2"
+ dest: /usr/local/etc/gdrive-photo-gallery.env
+ owner: root
+ group: wheel
+ mode: "0600"
+ no_log: true
+
+- name: Deploy wrapper script
+ template:
+ src: "{{ jail_role_dir }}/templates/usr_local_bin_gdrive_photo_gallery"
+ dest: /usr/local/bin/gdrive-photo-gallery
+ owner: root
+ group: wheel
+ mode: "0755"
+
+- import_role:
+ name: jail
+ tasks_from: jail_launch
diff --git a/roles/jails/19_leolalla_fi/templates/gdrive_photo_gallery.env.j2 b/roles/jails/19_leolalla_fi/templates/gdrive_photo_gallery.env.j2
new file mode 100644
index 0000000..c579e77
--- /dev/null
+++ b/roles/jails/19_leolalla_fi/templates/gdrive_photo_gallery.env.j2
@@ -0,0 +1,5 @@
+GDRIVE_FOLDER="{{ leolalla_fi.gdrive_folder }}"
+GAPI_KEY="{{ leolalla_fi.gapi_key }}"
+AUTHOR="{{ leolalla_fi.author }}"
+IG_LINK="{{ leolalla_fi.ig_link }}"
+BASE_URL="{{ leolalla_fi.base_url }}"
diff --git a/roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery b/roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery
new file mode 100644
index 0000000..92b911c
--- /dev/null
+++ b/roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+. /usr/local/etc/gdrive-photo-gallery.env
+export GDRIVE_FOLDER GAPI_KEY AUTHOR IG_LINK BASE_URL
+cd /usr/local/gdrive-photo-gallery
+exec /usr/local/bin/uv run gunicorn --bind 0.0.0.0:80 app:app -w 1