aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-05-19 00:49:25 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-05-19 00:55:21 +0300
commitb0578d2af1d6bfef7b86103a3f244c9112d06f98 (patch)
treec2165399785450e55d4996ef842c8ec0ad45d102
parentb38e910899bad2d6ae2049b599dcdd525420c53d (diff)
Remove packager, use ports fork
-rw-r--r--ports/pylogsentinel/Makefile19
-rw-r--r--ports/pylogsentinel/distinfo3
-rw-r--r--ports/pylogsentinel/pkg-descr2
-rw-r--r--roles/host/tasks/main.yml26
-rw-r--r--roles/jail/templates/jail_conf.j22
-rw-r--r--roles/jails/01_ingress/defaults/main.yml1
-rw-r--r--roles/jails/03_irc_thelounge/files/config.js1
-rw-r--r--roles/jails/04_taulubot/defaults/main.yml4
-rw-r--r--roles/jails/06_hommabot/defaults/main.yml12
-rw-r--r--roles/jails/06_hommabot/handlers/main.yml5
-rw-r--r--roles/jails/06_hommabot/tasks/main.yml21
-rw-r--r--roles/jails/06_hommabot/templates/etc_crontab.j210
-rw-r--r--roles/jails/06_hommabot/templates/root_hommabot_deps.sh14
-rw-r--r--roles/jails/06_hommabot/templates/root_hommabot_env.j24
-rw-r--r--roles/jails/20_packager/defaults/main.yml22
-rw-r--r--roles/jails/20_packager/tasks/main.yml15
-rw-r--r--roles/jails/20_packager/templates/etc_crontab5
-rw-r--r--roles/jails/20_packager/templates/usr_local_bin_build_packages.sh26
-rw-r--r--roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf18
19 files changed, 45 insertions, 165 deletions
diff --git a/ports/pylogsentinel/Makefile b/ports/pylogsentinel/Makefile
deleted file mode 100644
index 20224b1..0000000
--- a/ports/pylogsentinel/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-PORTNAME= pylogsentinel
-PORTVERSION= 0.3.1
-CATEGORIES= sysutils python
-MASTER_SITES= PYPI
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-
-MAINTAINER= jan@jantuomi.fi
-COMMENT= Lightweight cron-friendly log monitoring utility
-
-LICENSE= MIT
-
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR}
-
-USES= python
-USE_PYTHON= autoplist pep517
-
-NO_ARCH= yes
-
-.include <bsd.port.mk>
diff --git a/ports/pylogsentinel/distinfo b/ports/pylogsentinel/distinfo
deleted file mode 100644
index 4171f3b..0000000
--- a/ports/pylogsentinel/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1747478400
-SHA256 (pylogsentinel-0.3.1.tar.gz) = 229c12e9925c29569b7f118f47bffa867c789624bd41df19d76611be401d0fdb
-SIZE (pylogsentinel-0.3.1.tar.gz) = 15257
diff --git a/ports/pylogsentinel/pkg-descr b/ports/pylogsentinel/pkg-descr
deleted file mode 100644
index dab5b1d..0000000
--- a/ports/pylogsentinel/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-Lightweight cron-friendly log monitoring utility with regex rules
-and per-rule shell actions.
diff --git a/roles/host/tasks/main.yml b/roles/host/tasks/main.yml
index d1f710e..01cffb7 100644
--- a/roles/host/tasks/main.yml
+++ b/roles/host/tasks/main.yml
@@ -25,10 +25,14 @@
- curl
- bash
- git
- - python
+ - python311
- py311-pip
+ - py311-setuptools
+ - py311-build
+ - py311-installer
- py311-wheel
- fastfetch
+ - vim
loop_control:
loop_var: pkg_name
@@ -76,7 +80,7 @@
- name: Fetch ports tree
shell: |
if [ ! -d /usr/ports/.git ]; then
- git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
+ git clone --depth 1 https://github.com/jantuomi/freebsd-ports.git /usr/ports
else
git -C /usr/ports pull --ff-only
fi
@@ -139,26 +143,16 @@
mountpoint: "/usr/local/jails/containers/komga/root/.komga",
}
- { name: "zroot/storage", mountpoint: "/usr/local/jails/volumes/storage" }
- - { name: "zroot/my-ports", mountpoint: "/usr/local/my-ports" }
loop_control:
label: "{{ item.name }}"
-- name: Sync custom ports tree to host
- synchronize:
- src: "{{ playbook_dir }}/ports/"
- dest: /usr/local/my-ports/
- delete: true
- recursive: true
- rsync_opts:
- - "--exclude=work-*"
-
- name: Install custom ports
- shell: make -C /usr/local/my-ports/{{ item }} install clean BATCH=yes
+ shell: cd /usr/ports/{{ item }} && make install
loop:
- - pylogsentinel
+ - sysutils/pylogsentinel
register: _port_install
- failed_when: "_port_install.rc != 0 and 'already installed' not in _port_install.stdout"
- changed_when: "'already installed' not in _port_install.stdout"
+ failed_when: "_port_install.rc != 0 and 'is already installed' not in _port_install.stdout"
+ changed_when: "'is already installed' not in _port_install.stdout"
- name: Deploy pylogsentinel.conf
template:
diff --git a/roles/jail/templates/jail_conf.j2 b/roles/jail/templates/jail_conf.j2
index 2a0ea27..7ce1b1b 100644
--- a/roles/jail/templates/jail_conf.j2
+++ b/roles/jail/templates/jail_conf.j2
@@ -53,4 +53,6 @@
exec.prestart += "mount -t nullfs {{ mount.src }} /usr/local/jails/containers/{{ jail.name }}{{ mount.dst }} || true";
exec.poststop += "umount /usr/local/jails/containers/{{ jail.name }}{{ mount.dst }} || true";
{% endfor %}
+ exec.prestart += "mount -t nullfs -o ro /usr/ports /usr/local/jails/containers/{{ jail.name }}/usr/ports || true";
+ exec.poststop += "umount /usr/local/jails/containers/{{ jail.name }}/usr/ports || true";
}
diff --git a/roles/jails/01_ingress/defaults/main.yml b/roles/jails/01_ingress/defaults/main.yml
index 6b95ef9..f6d5aa4 100644
--- a/roles/jails/01_ingress/defaults/main.yml
+++ b/roles/jails/01_ingress/defaults/main.yml
@@ -15,7 +15,6 @@ ingress_routes:
- { host: immich.jan.systems, ip: 192.168.3.3, port: 2283 }
- { host: plex.jan.systems, jail: plex, port: 32400, presets: [streaming] }
- { host: komga.jan.systems, jail: komga, port: 25600 }
- - { host: ports.jan.systems, jail: packager }
cert_domains:
- "jan.systems"
diff --git a/roles/jails/03_irc_thelounge/files/config.js b/roles/jails/03_irc_thelounge/files/config.js
index 174a4eb..1a890a1 100644
--- a/roles/jails/03_irc_thelounge/files/config.js
+++ b/roles/jails/03_irc_thelounge/files/config.js
@@ -1,4 +1,3 @@
-# cat ~/.thelounge/config.js
"use strict";
module.exports = {
// ## Server settings
diff --git a/roles/jails/04_taulubot/defaults/main.yml b/roles/jails/04_taulubot/defaults/main.yml
index 5b5cac6..7220635 100644
--- a/roles/jails/04_taulubot/defaults/main.yml
+++ b/roles/jails/04_taulubot/defaults/main.yml
@@ -3,6 +3,10 @@ userland: "14.3-RELEASE"
pkg:
- python311
- py311-pip
+ - py311-setuptools
+ - py311-build
+ - py311-installer
+ - py311-wheel
- git
- jpeg-turbo
diff --git a/roles/jails/06_hommabot/defaults/main.yml b/roles/jails/06_hommabot/defaults/main.yml
index d12d40f..0b4b4f3 100644
--- a/roles/jails/06_hommabot/defaults/main.yml
+++ b/roles/jails/06_hommabot/defaults/main.yml
@@ -1,14 +1,8 @@
userland: "14.3-RELEASE"
pkg:
+ - node
- npm
-files:
- - src: root_hommabot_env.j2
- dest: /root/hommabot/.env
- mode: "0600"
- - src: root_hommabot_deps.sh
- dest: /root/hommabot/deps.sh
- mode: "0755"
- - src: etc_crontab.j2
- dest: /etc/crontab
+services:
+ - hommabot
diff --git a/roles/jails/06_hommabot/handlers/main.yml b/roles/jails/06_hommabot/handlers/main.yml
new file mode 100644
index 0000000..d291200
--- /dev/null
+++ b/roles/jails/06_hommabot/handlers/main.yml
@@ -0,0 +1,5 @@
+- name: Restart hommabot
+ shell: service hommabot status && service hommabot restart
+ register: _hb_restart
+ failed_when: false
+ changed_when: _hb_restart.rc == 0
diff --git a/roles/jails/06_hommabot/tasks/main.yml b/roles/jails/06_hommabot/tasks/main.yml
index 2abdaff..9b1ee5f 100644
--- a/roles/jails/06_hommabot/tasks/main.yml
+++ b/roles/jails/06_hommabot/tasks/main.yml
@@ -1,2 +1,23 @@
- import_role:
name: jail
+ tasks_from: jail_setup
+
+- name: Install hommabot from port
+ shell: cd /usr/local/my-ports/hommabot && make install
+ register: _hommabot_install
+ failed_when: "_hommabot_install.rc != 0 and 'already installed' not in _hommabot_install.stdout"
+ changed_when: "'already installed' not in _hommabot_install.stdout"
+
+- name: Deploy bot token file
+ copy:
+ content: "{{ hommabot_token }}"
+ dest: /usr/local/etc/hommabot.token
+ owner: root
+ group: wheel
+ mode: "0600"
+ no_log: true
+ notify: Restart hommabot
+
+- import_role:
+ name: jail
+ tasks_from: jail_launch
diff --git a/roles/jails/06_hommabot/templates/etc_crontab.j2 b/roles/jails/06_hommabot/templates/etc_crontab.j2
deleted file mode 100644
index 556d12a..0000000
--- a/roles/jails/06_hommabot/templates/etc_crontab.j2
+++ /dev/null
@@ -1,10 +0,0 @@
-# /etc/crontab - root's crontab for FreeBSD
-#
-#
-SHELL=/bin/sh
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
-#
-#minute hour mday month wday who command
-
-# Run hommabot every Monday at 9:00 AM
-0 9 * * 1 root /bin/sh -c "cd /root/hommabot && node index.js"
diff --git a/roles/jails/06_hommabot/templates/root_hommabot_deps.sh b/roles/jails/06_hommabot/templates/root_hommabot_deps.sh
deleted file mode 100644
index 25c0e56..0000000
--- a/roles/jails/06_hommabot/templates/root_hommabot_deps.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-set -eux
-cd /root/hommabot
-npm ci
-
-# We need to build the better-sqlite3.node file before running the app
-if [ ! -f build/better_sqlite3.node ]; then (
- mkdir -p build
- cd node_modules/better-sqlite3
- npm run build-release
- cp build/Release/better_sqlite3.node ../../build/better_sqlite3.node
-)
-fi
diff --git a/roles/jails/06_hommabot/templates/root_hommabot_env.j2 b/roles/jails/06_hommabot/templates/root_hommabot_env.j2
deleted file mode 100644
index c66c666..0000000
--- a/roles/jails/06_hommabot/templates/root_hommabot_env.j2
+++ /dev/null
@@ -1,4 +0,0 @@
-TELEGRAM_BOT_TOKEN="{{ hommabot_telegram_bot_token }}"
-SHEETS_SPREADSHEET_ID="{{ hommabot_sheets_spreadsheet_id }}"
-SHEETS_RANGE="{{ hommabot_sheets_range }}"
-G_SA_JSON_B64="{{ hommabot_g_sa_json_b64 }}"
diff --git a/roles/jails/20_packager/defaults/main.yml b/roles/jails/20_packager/defaults/main.yml
deleted file mode 100644
index e9d0f26..0000000
--- a/roles/jails/20_packager/defaults/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-userland: "15.0-RELEASE"
-
-pkg:
- - nginx
-
-nullfs:
- - src: /usr/local/my-ports
- dst: /usr/local/my-ports
- - src: /usr/ports
- dst: /usr/ports
-
-files:
- - src: usr_local_etc_nginx_nginx.conf
- dest: /usr/local/etc/nginx/nginx.conf
- - src: usr_local_bin_build_packages.sh
- dest: /usr/local/bin/build-packages
- mode: "0755"
- - src: etc_crontab
- dest: /etc/crontab
-
-services:
- - nginx
diff --git a/roles/jails/20_packager/tasks/main.yml b/roles/jails/20_packager/tasks/main.yml
deleted file mode 100644
index e1a44e1..0000000
--- a/roles/jails/20_packager/tasks/main.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-- import_role:
- name: jail
- tasks_from: jail_setup
-
-- name: Create packages output directory
- file:
- path: /usr/local/packages
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- import_role:
- name: jail
- tasks_from: jail_launch
diff --git a/roles/jails/20_packager/templates/etc_crontab b/roles/jails/20_packager/templates/etc_crontab
deleted file mode 100644
index ed18a07..0000000
--- a/roles/jails/20_packager/templates/etc_crontab
+++ /dev/null
@@ -1,5 +0,0 @@
-SHELL=/bin/sh
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
-
-# Build packages every hour
-0 * * * * root /usr/local/bin/build-packages >> /var/log/build-packages.log 2>&1
diff --git a/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh b/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh
deleted file mode 100644
index b4d5ea6..0000000
--- a/roles/jails/20_packager/templates/usr_local_bin_build_packages.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-# Build all ports in /usr/local/my-ports, skip already-built packages.
-set -eu
-
-PORTS_DIR="/usr/local/my-ports"
-PKG_DIR="/usr/local/packages"
-
-for port_dir in "${PORTS_DIR}"/*/; do
- [ -f "${port_dir}/Makefile" ] || continue
-
- port_name=$(make -C "${port_dir}" -V PKGNAME)
- pkg_file="${PKG_DIR}/All/${port_name}.pkg"
-
- if [ -f "${pkg_file}" ]; then
- echo "SKIP ${port_name} (already built)"
- continue
- fi
-
- echo "BUILD ${port_name}"
- make -C "${port_dir}" clean package PACKAGES="${PKG_DIR}" BATCH=yes
- make -C "${port_dir}" clean
-done
-
-# Rebuild the repository catalog
-pkg repo "${PKG_DIR}"
-echo "Done."
diff --git a/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf b/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf
deleted file mode 100644
index 0d140ef..0000000
--- a/roles/jails/20_packager/templates/usr_local_etc_nginx_nginx.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-worker_processes 1;
-
-events {
- worker_connections 1024;
-}
-
-http {
- include mime.types;
- default_type application/octet-stream;
- sendfile on;
-
- server {
- listen 80;
- server_name _;
- root /usr/local/packages;
- autoindex on;
- }
-}