From 7675dc593326936276cea39f347342bcad8fd96c Mon Sep 17 00:00:00 2001
From: Johannes Stoelp <johannes.stoelp@gmail.com>
Date: Fri, 4 Apr 2025 02:21:01 +0200
Subject: setup: generate & enable systemd units

Restarts container automatically on restart.
Account lingering ensures that a systemd user management is started on
device bootup.
---
 setup.yml | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

(limited to 'setup.yml')

diff --git a/setup.yml b/setup.yml
index 6d3e03e..5fe4922 100644
--- a/setup.yml
+++ b/setup.yml
@@ -27,8 +27,9 @@
 
     # -- LINGER ----------------------------------------------------------------
 
-    # Enable lingering for user, such that processes are not killed if
-    # there is no login session.
+    # Enable lingering for user. A user manager is spawned for the user at boot
+    # and kept around after logouts. This allows users who are not logged in to
+    # run long-running services.
     - name: enable-linger
       become: true
       command: loginctl enable-linger {{ user }}
@@ -117,3 +118,28 @@
           - "/etc/localtime:/etc/localtime:ro"
         device:
           - "/dev/ttyUSB0:/dev/ttyUSB0"
+
+    # -- USER SYSTEMD UNITS ----------------------------------------------------
+
+    - name: generate-user-systemd-units
+      containers.podman.podman_generate_systemd:
+        name: "{{ item }}"
+        dest: ~/.config/systemd/user/
+        restart_policy: on-failure
+        restart_sec: 10
+      loop:
+        - ftp
+        - mosquitto
+        - homeassistant
+
+    - name: enable-user-systemd-units
+      ansible.builtin.systemd:
+        name: "container-{{ item }}"
+        scope: user
+        daemon_reload: true
+        #state: started
+        enabled: true
+      loop:
+        - ftp
+        - mosquitto
+        - homeassistant
-- 
cgit v1.2.3