aboutsummaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/host/tasks/poudriere.yml8
-rw-r--r--roles/host/templates/poudriere_build_make.conf.j21
-rw-r--r--roles/host/templates/usr_local_bin_update_ports.sh.j27
-rw-r--r--roles/host/templates/usr_local_etc_poudriere_pkglist.j212
-rw-r--r--roles/jail/tasks/jail_setup.yml8
-rw-r--r--roles/jails/02_postgres/defaults/main.yml2
-rw-r--r--roles/jails/03_irc_thelounge/defaults/main.yml14
-rw-r--r--roles/jails/03_irc_thelounge/tasks/main.yml23
-rw-r--r--roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge45
-rw-r--r--roles/jails/04_taulubot/defaults/main.yml2
-rw-r--r--roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot44
-rw-r--r--roles/jails/05_homepage/defaults/main.yml9
-rw-r--r--roles/jails/06_hommabot/defaults/main.yml2
-rw-r--r--roles/jails/07_aggro/defaults/main.yml2
-rw-r--r--roles/jails/08_diddle/defaults/main.yml2
-rw-r--r--roles/jails/09_redis/defaults/main.yml2
-rw-r--r--roles/jails/10_samba/defaults/main.yml2
-rw-r--r--roles/jails/11_spliit/defaults/main.yml2
-rw-r--r--roles/jails/12_goaccess/defaults/main.yml2
-rw-r--r--roles/jails/13_plex/defaults/main.yml2
-rw-r--r--roles/jails/14_freshrss/defaults/main.yml30
-rw-r--r--roles/jails/14_freshrss/tasks/main.yml17
-rw-r--r--roles/jails/14_freshrss/templates/usr_local_etc_nginx_nginx.conf2
-rw-r--r--roles/jails/15_paste/defaults/main.yml2
-rw-r--r--roles/jails/16_dl/defaults/main.yml2
-rw-r--r--roles/jails/17_syncthing/defaults/main.yml2
-rw-r--r--roles/jails/17_syncthing/tasks/main.yml16
-rw-r--r--roles/jails/18_komga/defaults/main.yml8
-rw-r--r--roles/jails/18_komga/tasks/main.yml25
-rw-r--r--roles/jails/18_komga/templates/usr_local_bin_komga2
-rw-r--r--roles/jails/18_komga/templates/usr_local_etc_rc.d_komga47
-rw-r--r--roles/jails/19_leolalla_fi/defaults/main.yml2
-rw-r--r--roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery6
-rw-r--r--roles/jails/20_immich/defaults/main.yml7
34 files changed, 61 insertions, 298 deletions
diff --git a/roles/host/tasks/poudriere.yml b/roles/host/tasks/poudriere.yml
index 83098b7..1d0fd58 100644
--- a/roles/host/tasks/poudriere.yml
+++ b/roles/host/tasks/poudriere.yml
@@ -47,14 +47,6 @@
shell: poudriere ports -c -p custom -m null -M /usr/ports/custom
when: _poudriere_custom_exists.rc != 0
-- name: Deploy poudriere package list
- template:
- src: usr_local_etc_poudriere_pkglist.j2
- dest: /usr/local/etc/poudriere-pkglist
- owner: root
- group: wheel
- mode: "0644"
-
- name: Deploy poudriere-start-build script
template:
src: usr_local_bin_poudriere_start_build.sh.j2
diff --git a/roles/host/templates/poudriere_build_make.conf.j2 b/roles/host/templates/poudriere_build_make.conf.j2
index 6bc860f..4205292 100644
--- a/roles/host/templates/poudriere_build_make.conf.j2
+++ b/roles/host/templates/poudriere_build_make.conf.j2
@@ -1,2 +1,3 @@
DEFAULT_VERSIONS+=python=3.12 python3=3.12
+DEFAULT_VERSIONS+=php=8.4
DISABLE_LICENSES=yes
diff --git a/roles/host/templates/usr_local_bin_update_ports.sh.j2 b/roles/host/templates/usr_local_bin_update_ports.sh.j2
index ad4102d..7063652 100644
--- a/roles/host/templates/usr_local_bin_update_ports.sh.j2
+++ b/roles/host/templates/usr_local_bin_update_ports.sh.j2
@@ -53,6 +53,13 @@ custom)
rm -rf "${BASEDIR}/custom"
git clone "$REMOTE_CUSTOM" "${BASEDIR}/custom"
fi
+
+ # Regenerate poudriere pkglist from all ports in the overlay
+ echo "Regenerating poudriere pkglist..."
+ find "${BASEDIR}/custom" -name Makefile -mindepth 3 -maxdepth 3 | \
+ sed "s|${BASEDIR}/custom/||; s|/Makefile||" | \
+ sort > /usr/local/etc/poudriere-pkglist
+ echo "Pkglist updated: $(wc -l < /usr/local/etc/poudriere-pkglist) ports."
echo "Done. Custom ports overlay updated."
;;
*)
diff --git a/roles/host/templates/usr_local_etc_poudriere_pkglist.j2 b/roles/host/templates/usr_local_etc_poudriere_pkglist.j2
deleted file mode 100644
index debb842..0000000
--- a/roles/host/templates/usr_local_etc_poudriere_pkglist.j2
+++ /dev/null
@@ -1,12 +0,0 @@
-databases/py-tinydb
-www/py-ua-parser
-www/py-user-agents
-sysutils/pylogsentinel
-net-im/taulubot
-net-im/hommabot
-www/aggro
-www/diddle
-www/expense-tracker
-www/gdrive-photo-gallery
-www/pastebin
-multimedia/plexmediaserver
diff --git a/roles/jail/tasks/jail_setup.yml b/roles/jail/tasks/jail_setup.yml
index 931133f..f50562a 100644
--- a/roles/jail/tasks/jail_setup.yml
+++ b/roles/jail/tasks/jail_setup.yml
@@ -280,14 +280,6 @@
group: wheel
mode: "0644"
-- name: Set default Python version
- copy:
- content: "DEFAULT_VERSIONS+=python=3.12 python3=3.12\n"
- dest: /etc/make.conf
- owner: root
- group: wheel
- mode: "0644"
-
- name: Install packages
shell: "pkg install -y {{ pkg | join(' ') }}"
environment:
diff --git a/roles/jails/02_postgres/defaults/main.yml b/roles/jails/02_postgres/defaults/main.yml
index b01e2c3..77097b0 100644
--- a/roles/jails/02_postgres/defaults/main.yml
+++ b/roles/jails/02_postgres/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
devfs_ruleset: 5
zfs:
diff --git a/roles/jails/03_irc_thelounge/defaults/main.yml b/roles/jails/03_irc_thelounge/defaults/main.yml
index 858df0e..cc29940 100644
--- a/roles/jails/03_irc_thelounge/defaults/main.yml
+++ b/roles/jails/03_irc_thelounge/defaults/main.yml
@@ -1,19 +1,11 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/irc_thelounge
mountpoint: /var/db/thelounge
-pkg:
- - pcre2
- - npm-node24
- - yarn-node24
- - git
-
-files:
- - src: usr_local_etc_rc.d_thelounge
- dest: /usr/local/etc/rc.d/thelounge
- mode: "0755"
+pkg_custom:
+ - thelounge
services:
- thelounge
diff --git a/roles/jails/03_irc_thelounge/tasks/main.yml b/roles/jails/03_irc_thelounge/tasks/main.yml
index f21ff80..2dcc44c 100644
--- a/roles/jails/03_irc_thelounge/tasks/main.yml
+++ b/roles/jails/03_irc_thelounge/tasks/main.yml
@@ -2,22 +2,13 @@
name: jail
tasks_from: jail_setup
-- name: Clone thelounge
- shell: |
- git clone --depth 1 --branch v4.4.3 https://github.com/thelounge/thelounge.git /usr/local/share/thelounge
- args:
- creates: /usr/local/share/thelounge
-
-- name: Install thelounge dependencies and build
- shell: cd /usr/local/share/thelounge && yarn install && NODE_ENV=production yarn build
- args:
- creates: /usr/local/share/thelounge/dist
-
-- name: Link thelounge binary
- file:
- src: /usr/local/share/thelounge/index.js
- dest: /usr/local/bin/thelounge
- state: link
+- name: Set thelounge user and group
+ community.general.sysrc:
+ name: "{{ item.name }}"
+ value: "{{ item.value }}"
+ loop:
+ - { name: thelounge_user, value: root }
+ - { name: thelounge_group, value: wheel }
- name: Deploy thelounge config
copy:
diff --git a/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge b/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge
deleted file mode 100644
index 16afd5d..0000000
--- a/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-# PROVIDE: thelounge
-# REQUIRE: NETWORKING
-# KEYWORD: shutdown
-
-. /etc/rc.subr
-
-name="thelounge"
-rcvar="thelounge_enable"
-
-thelounge_env="THELOUNGE_HOME=/var/db/thelounge PATH=$PATH:/usr/local/bin"
-pidfile="/var/run/${name}.pid"
-
-start_cmd="${name}_start"
-stop_cmd="${name}_stop"
-status_cmd="${name}_status"
-
-thelounge_start()
-{
- echo "Starting ${name}..."
- env ${thelounge_env} daemon -p ${pidfile} -o /var/log/thelounge.log /usr/local/bin/thelounge start
-}
-
-thelounge_stop()
-{
- if [ -f ${pidfile} ]; then
- echo "Stopping ${name}..."
- kill $(cat ${pidfile}) 2>/dev/null
- rm -f ${pidfile}
- fi
-}
-
-thelounge_status()
-{
- if [ -f ${pidfile} ] && kill -0 $(cat ${pidfile}) 2>/dev/null; then
- echo "${name} is running as pid $(cat ${pidfile})"
- else
- echo "${name} is not running"
- return 1
- fi
-}
-
-load_rc_config $name
-run_rc_command "$1"
diff --git a/roles/jails/04_taulubot/defaults/main.yml b/roles/jails/04_taulubot/defaults/main.yml
index 6b430a9..1c3f946 100644
--- a/roles/jails/04_taulubot/defaults/main.yml
+++ b/roles/jails/04_taulubot/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/taulubot
diff --git a/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot b/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot
deleted file mode 100644
index 8d5fed1..0000000
--- a/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-# PROVIDE: taulubot
-# REQUIRE: NETWORKING
-# KEYWORD: shutdown
-
-. /etc/rc.subr
-
-name="taulubot"
-rcvar="taulubot_enable"
-pidfile="/var/run/${name}.pid"
-
-start_cmd="${name}_start"
-stop_cmd="${name}_stop"
-status_cmd="${name}_status"
-
-taulubot_start()
-{
- echo "Starting ${name}..."
- cd /usr/local/taulubot
- daemon -p ${pidfile} -o /var/log/taulubot.log env BOT_TOKEN="{{ taulubot_token }}" /usr/local/bin/python3.11 taulubot.py
-}
-
-taulubot_stop()
-{
- if [ -f ${pidfile} ]; then
- echo "Stopping ${name}..."
- kill $(cat ${pidfile}) 2>/dev/null
- rm -f ${pidfile}
- fi
-}
-
-taulubot_status()
-{
- if [ -f ${pidfile} ] && kill -0 $(cat ${pidfile}) 2>/dev/null; then
- echo "${name} is running as pid $(cat ${pidfile})"
- else
- echo "${name} is not running"
- return 1
- fi
-}
-
-load_rc_config $name
-run_rc_command "$1"
diff --git a/roles/jails/05_homepage/defaults/main.yml b/roles/jails/05_homepage/defaults/main.yml
index 9412f75..dbf767e 100644
--- a/roles/jails/05_homepage/defaults/main.yml
+++ b/roles/jails/05_homepage/defaults/main.yml
@@ -1,4 +1,8 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
+
+zfs:
+ - name: zroot/jails/volumes/homepage_www
+ mountpoint: /var/www
pkg:
- pcre2
@@ -12,8 +16,5 @@ files:
- src: etc_crontab.j2
dest: /etc/crontab
-dirs:
- - /var/www
-
services:
- nginx
diff --git a/roles/jails/06_hommabot/defaults/main.yml b/roles/jails/06_hommabot/defaults/main.yml
index 5f85efa..997ee86 100644
--- a/roles/jails/06_hommabot/defaults/main.yml
+++ b/roles/jails/06_hommabot/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/hommabot_data
diff --git a/roles/jails/07_aggro/defaults/main.yml b/roles/jails/07_aggro/defaults/main.yml
index 8ffd217..0077cf3 100644
--- a/roles/jails/07_aggro/defaults/main.yml
+++ b/roles/jails/07_aggro/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/aggro_data
diff --git a/roles/jails/08_diddle/defaults/main.yml b/roles/jails/08_diddle/defaults/main.yml
index c4ab505..090340b 100644
--- a/roles/jails/08_diddle/defaults/main.yml
+++ b/roles/jails/08_diddle/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/diddle_data
diff --git a/roles/jails/09_redis/defaults/main.yml b/roles/jails/09_redis/defaults/main.yml
index 7509f0d..75df5f8 100644
--- a/roles/jails/09_redis/defaults/main.yml
+++ b/roles/jails/09_redis/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/valkey_data
diff --git a/roles/jails/10_samba/defaults/main.yml b/roles/jails/10_samba/defaults/main.yml
index 5cecd95..4416022 100644
--- a/roles/jails/10_samba/defaults/main.yml
+++ b/roles/jails/10_samba/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
pkg:
- samba419
diff --git a/roles/jails/11_spliit/defaults/main.yml b/roles/jails/11_spliit/defaults/main.yml
index e7f9f30..7ce40cd 100644
--- a/roles/jails/11_spliit/defaults/main.yml
+++ b/roles/jails/11_spliit/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/spliit_data
diff --git a/roles/jails/12_goaccess/defaults/main.yml b/roles/jails/12_goaccess/defaults/main.yml
index f1e00be..98a2e43 100644
--- a/roles/jails/12_goaccess/defaults/main.yml
+++ b/roles/jails/12_goaccess/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/goaccess_data
diff --git a/roles/jails/13_plex/defaults/main.yml b/roles/jails/13_plex/defaults/main.yml
index 49e5511..4ae644c 100644
--- a/roles/jails/13_plex/defaults/main.yml
+++ b/roles/jails/13_plex/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/plex_data
diff --git a/roles/jails/14_freshrss/defaults/main.yml b/roles/jails/14_freshrss/defaults/main.yml
index 6804a0f..447d93b 100644
--- a/roles/jails/14_freshrss/defaults/main.yml
+++ b/roles/jails/14_freshrss/defaults/main.yml
@@ -1,36 +1,16 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/freshrss_data
- mountpoint: /usr/local/FreshRSS/data
+ mountpoint: /var/db/freshrss
owner: "80"
group: "80"
pkg:
- - pcre2
- nginx
- - php82
- - php82-ctype
- - php82-curl
- - php82-dom
- - php82-filter
- - php82-gd
- - php82-iconv
- - php82-mbstring
- - php82-opcache
- - php82-pdo
- - php82-pdo_sqlite
- - php82-phar
- - php82-posix
- - php82-session
- - php82-simplexml
- - php82-sqlite3
- - php82-tokenizer
- - php82-xml
- - php82-xmlreader
- - php82-xmlwriter
- - php82-zip
- - php82-extensions
+
+pkg_custom:
+ - freshrss-php84
files:
- src: usr_local_etc_nginx_nginx.conf
diff --git a/roles/jails/14_freshrss/tasks/main.yml b/roles/jails/14_freshrss/tasks/main.yml
index 50b8e7c..460b037 100644
--- a/roles/jails/14_freshrss/tasks/main.yml
+++ b/roles/jails/14_freshrss/tasks/main.yml
@@ -2,16 +2,6 @@
name: jail
tasks_from: jail_setup
-- name: Download FreshRSS
- shell: |
- if [ ! -f /usr/local/FreshRSS/constants.php ]; then
- fetch -qo /tmp/freshrss.tar.gz https://github.com/FreshRSS/FreshRSS/archive/refs/heads/edge.tar.gz
- tar -xf /tmp/freshrss.tar.gz --strip-components=1 -C /usr/local/FreshRSS
- rm -f /tmp/freshrss.tar.gz
- fi
- register: _freshrss_download
- changed_when: "'constants.php' not in _freshrss_download.cmd"
-
- name: Create php-fpm socket directory
file:
path: /var/run/php
@@ -20,13 +10,6 @@
group: www
mode: "0755"
-- name: Symlink FreshRSS public to webroot
- file:
- src: /usr/local/FreshRSS/p
- dest: /var/www
- state: link
- force: true
-
- import_role:
name: jail
tasks_from: jail_launch
diff --git a/roles/jails/14_freshrss/templates/usr_local_etc_nginx_nginx.conf b/roles/jails/14_freshrss/templates/usr_local_etc_nginx_nginx.conf
index f486e13..5bdeede 100644
--- a/roles/jails/14_freshrss/templates/usr_local_etc_nginx_nginx.conf
+++ b/roles/jails/14_freshrss/templates/usr_local_etc_nginx_nginx.conf
@@ -15,7 +15,7 @@ http {
listen 80;
server_name freshrss.jan.systems;
- root /var/www;
+ root /usr/local/www/freshrss/p;
index index.php index.html index.htm;
access_log /var/log/freshrss.access.log;
diff --git a/roles/jails/15_paste/defaults/main.yml b/roles/jails/15_paste/defaults/main.yml
index 165ddf0..d32f815 100644
--- a/roles/jails/15_paste/defaults/main.yml
+++ b/roles/jails/15_paste/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/paste_data
diff --git a/roles/jails/16_dl/defaults/main.yml b/roles/jails/16_dl/defaults/main.yml
index f94cf26..6ecca6d 100644
--- a/roles/jails/16_dl/defaults/main.yml
+++ b/roles/jails/16_dl/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
devfs_ruleset: 4
jail_conf_options:
diff --git a/roles/jails/17_syncthing/defaults/main.yml b/roles/jails/17_syncthing/defaults/main.yml
index 51a6909..b60c952 100644
--- a/roles/jails/17_syncthing/defaults/main.yml
+++ b/roles/jails/17_syncthing/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
nullfs:
- src: /usr/local/jails/volumes/storage/docs
diff --git a/roles/jails/17_syncthing/tasks/main.yml b/roles/jails/17_syncthing/tasks/main.yml
index 91eb61c..9b0a379 100644
--- a/roles/jails/17_syncthing/tasks/main.yml
+++ b/roles/jails/17_syncthing/tasks/main.yml
@@ -2,13 +2,17 @@
name: jail
tasks_from: jail_setup
-- name: Set syncthing user UID to 1001
- shell: pw usermod syncthing -u 1001 -g 1001 || true
- changed_when: false
-
- name: Set syncthing group GID to 1001
- shell: pw groupmod syncthing -g 1001 || true
- changed_when: false
+ shell: pw groupmod syncthing -g 1001
+ register: _syncthing_group
+ failed_when: "_syncthing_group.rc != 0 and 'already' not in _syncthing_group.stderr"
+ changed_when: "_syncthing_group.rc == 0"
+
+- name: Set syncthing user UID to 1001
+ shell: pw usermod syncthing -u 1001 -g 1001
+ register: _syncthing_user
+ failed_when: "_syncthing_user.rc != 0 and 'already' not in _syncthing_user.stderr"
+ changed_when: "_syncthing_user.rc == 0"
- import_role:
name: jail
diff --git a/roles/jails/18_komga/defaults/main.yml b/roles/jails/18_komga/defaults/main.yml
index 70d0877..3010e4f 100644
--- a/roles/jails/18_komga/defaults/main.yml
+++ b/roles/jails/18_komga/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/komga_data
@@ -9,13 +9,11 @@ nullfs:
dst: /mnt/manga
pkg:
- - openjdk25-jre-headless
- poppler-utils
- zip
-dirs:
- - /usr/local/etc/rc.d # no packages to set this up automatically
- - /usr/local/komga
+pkg_custom:
+ - komga
services:
- komga
diff --git a/roles/jails/18_komga/tasks/main.yml b/roles/jails/18_komga/tasks/main.yml
index b3818e2..41a5ed1 100644
--- a/roles/jails/18_komga/tasks/main.yml
+++ b/roles/jails/18_komga/tasks/main.yml
@@ -2,31 +2,6 @@
name: jail
tasks_from: jail_setup
-- name: Download komga jar
- shell: |
- if [ ! -f /usr/local/komga/komga.jar ]; then
- mkdir -p /usr/local/komga
- fetch -qo /usr/local/komga/komga.jar https://github.com/gotson/komga/releases/download/1.24.1/komga-1.24.1.jar
- fi
- register: _komga_download
- changed_when: _komga_download.rc == 0 and 'mkdir' in _komga_download.cmd
-
-- name: Deploy komga wrapper script
- template:
- src: "{{ jail_role_dir }}/templates/usr_local_bin_komga"
- dest: /usr/local/bin/komga
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Deploy komga rc.d script
- template:
- src: "{{ jail_role_dir }}/templates/usr_local_etc_rc.d_komga"
- dest: /usr/local/etc/rc.d/komga
- owner: root
- group: wheel
- mode: "0755"
-
- name: Deploy convert-pdfs script
template:
src: "{{ jail_role_dir }}/templates/usr_local_bin_convert_pdfs"
diff --git a/roles/jails/18_komga/templates/usr_local_bin_komga b/roles/jails/18_komga/templates/usr_local_bin_komga
deleted file mode 100644
index 47cf18c..0000000
--- a/roles/jails/18_komga/templates/usr_local_bin_komga
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec /usr/local/bin/java -jar /usr/local/komga/komga.jar --server.port=80 --komga.config-dir=/var/db/komga
diff --git a/roles/jails/18_komga/templates/usr_local_etc_rc.d_komga b/roles/jails/18_komga/templates/usr_local_etc_rc.d_komga
deleted file mode 100644
index 750b774..0000000
--- a/roles/jails/18_komga/templates/usr_local_etc_rc.d_komga
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-# PROVIDE: komga
-# REQUIRE: NETWORKING
-# KEYWORD: shutdown
-
-. /etc/rc.subr
-
-name="komga"
-rcvar="komga_enable"
-pidfile="/var/run/${name}.pid"
-
-load_rc_config "$name"
-
-: ${komga_enable:="NO"}
-
-start_cmd="${name}_start"
-stop_cmd="${name}_stop"
-status_cmd="${name}_status"
-
-komga_start()
-{
- echo "Starting ${name}..."
- daemon -p "${pidfile}" -o /var/log/komga.log \
- /usr/local/bin/komga
-}
-
-komga_stop()
-{
- if [ -f "${pidfile}" ]; then
- echo "Stopping ${name}..."
- kill "$(cat "${pidfile}")" 2>/dev/null
- rm -f "${pidfile}"
- fi
-}
-
-komga_status()
-{
- if [ -f "${pidfile}" ] && kill -0 "$(cat "${pidfile}")" 2>/dev/null; then
- echo "${name} is running as pid $(cat "${pidfile}")"
- else
- echo "${name} is not running"
- return 1
- fi
-}
-
-run_rc_command "$1"
diff --git a/roles/jails/19_leolalla_fi/defaults/main.yml b/roles/jails/19_leolalla_fi/defaults/main.yml
index f120db1..a9157e2 100644
--- a/roles/jails/19_leolalla_fi/defaults/main.yml
+++ b/roles/jails/19_leolalla_fi/defaults/main.yml
@@ -1,4 +1,4 @@
-userland: "15.0-RELEASE"
+userland: "15.1-RELEASE"
zfs:
- name: zroot/jails/volumes/leolalla_fi_data
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
deleted file mode 100644
index 92b911c..0000000
--- a/roles/jails/19_leolalla_fi/templates/usr_local_bin_gdrive_photo_gallery
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/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
diff --git a/roles/jails/20_immich/defaults/main.yml b/roles/jails/20_immich/defaults/main.yml
index 518dfec..b3347d3 100644
--- a/roles/jails/20_immich/defaults/main.yml
+++ b/roles/jails/20_immich/defaults/main.yml
@@ -1,5 +1,8 @@
-userland: "15.0-RELEASE"
-immich_version: "v2.4.1"
+userland: "15.1-RELEASE"
+immich_version: "v3.0.3"
+
+dirs:
+ - /usr/local/etc/rc.d
oci_images:
- name: immich-server