koopa-admin-log/scripts/decidim/install-systemd.sh

47 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# Install Decidim user systemd units on koopa (boot via linger).
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
LIVE="${HOME}/koopa-decidim"
# admin-log tree (scripts/decidim → ../..) or live ~/koopa-decidim/bin
if [ -f "${HERE}/../../configs/decidim/container-koopa-decidim.service" ]; then
UNIT_SRC="${HERE}/../../configs/decidim"
elif [ -f "${LIVE}/container-koopa-decidim.service" ]; then
UNIT_SRC="${LIVE}"
else
echo "ERROR: decidim unit files not found" >&2
exit 1
fi
UNIT_DIR="${HOME}/.config/systemd/user"
mkdir -p "${UNIT_DIR}"
cp "${UNIT_SRC}/container-koopa-decidim-db.service" "${UNIT_DIR}/"
cp "${UNIT_SRC}/container-koopa-decidim.service" "${UNIT_DIR}/"
systemctl --user daemon-reload
systemctl --user enable \
container-koopa-decidim-db.service \
container-koopa-decidim.service
if ! podman ps --format '{{.Names}}' | grep -qx koopa-decidim; then
(cd "${HOME}/koopa-decidim" && set -a && source .env && set +a && podman-compose up -d)
fi
systemctl --user start \
container-koopa-decidim-db.service \
container-koopa-decidim.service
systemctl --user --no-pager --lines=0 status \
container-koopa-decidim-db.service \
container-koopa-decidim.service || true
if command -v loginctl >/dev/null 2>&1; then
if [ "$(loginctl show-user "$(id -un)" -p Linger --value 2>/dev/null || echo no)" != "yes" ]; then
echo "NOTE: enable linger so units start after reboot without login:"
echo " sudo loginctl enable-linger $(id -un)"
else
echo "linger already enabled for $(id -un)"
fi
fi
echo "OK. Public: https://decidim.hacktivism.ch/"