#!/bin/sh set -eu SERVICE=mcat SRV_DIR="/srv/${SERVICE}" BIN_DIR="/usr/local/bin" # Create system user (idempotent). if ! id "${SERVICE}" >/dev/null 2>&1; then useradd --system --shell /usr/sbin/nologin --home-dir "${SRV_DIR}" "${SERVICE}" echo "Created system user: ${SERVICE}" fi # Install binary. install -m 0755 "${SERVICE}" "${BIN_DIR}/${SERVICE}" echo "Installed ${BIN_DIR}/${SERVICE}" # Create data directory structure. install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${SRV_DIR}" install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${SRV_DIR}/certs" # Copy example config if none exists. if [ ! -f "${SRV_DIR}/${SERVICE}.toml" ]; then install -o "${SERVICE}" -g "${SERVICE}" -m 0600 \ deploy/examples/${SERVICE}.toml.example "${SRV_DIR}/${SERVICE}.toml" echo "Installed example config to ${SRV_DIR}/${SERVICE}.toml" fi # Install systemd units. install -m 0644 deploy/systemd/${SERVICE}.service /etc/systemd/system/ systemctl daemon-reload echo "Installed systemd unit. Enable with: systemctl enable --now ${SERVICE}"