main
1#!/bin/sh
2# Demeter-specific setup
3
4# Enable DNS services
5rc-update add named default
6
7# Enable MQTT broker
8rc-update add mosquitto default
9
10# Create mosquitto password file init script
11# (converts plain password from age secret to hashed password file)
12cat > /etc/init.d/mosquitto-password << 'INITEOF'
13#!/sbin/openrc-run
14description="Generate mosquitto password file from decrypted secret"
15
16depend() {
17 after secrets
18 before mosquitto
19}
20
21start() {
22 local plain="/run/secrets/mosquitto-homeassistant-password"
23 local pwfile="/run/secrets/mosquitto-password"
24 if [ ! -f "$plain" ]; then
25 ewarn "Mosquitto password secret not found"
26 return 0
27 fi
28 ebegin "Generating mosquitto password file"
29 printf 'homeassistant:%s\n' "$(cat "$plain")" > "$pwfile"
30 mosquitto_passwd -U "$pwfile"
31 chown mosquitto:mosquitto "$pwfile"
32 chmod 400 "$pwfile"
33 eend $?
34}
35INITEOF
36chmod +x /etc/init.d/mosquitto-password
37rc-update add mosquitto-password default