129 lines
3.9 KiB
Nix
129 lines
3.9 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
systemd.services.numbus-activation = {
|
|
description = "Numbus-Server activation : Correct permissions";
|
|
wantedBy = [ "multi-user.target" "traefik.service" ];
|
|
after = [ "network.target" "local-fs.target" ];
|
|
path = [ pkgs.coreutils pkgs.podman pkgs.sudo ];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
RemainAfterExit = true;
|
|
};
|
|
script = ''
|
|
#!/usr/bin/env bash
|
|
|
|
if [[ -e /home/numbus-admin/.numbus-server/activated.true ]]; then
|
|
echo "Already activated"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Creating directories with correct permissions..."
|
|
mkdir -p /mnt/config/ /mnt/data/ /mnt/data/nextcloud/
|
|
mkdir -p /home/numbus-admin/.numbus-server/
|
|
chown -R numbus-admin:users /mnt/config/
|
|
chown -R numbus-admin:users /mnt/data/
|
|
chown -R 100032:users /mnt/data/nextcloud/
|
|
|
|
echo "Creating podman networks..."
|
|
export PATH=$PATH:/run/wrappers/bin
|
|
|
|
PODMAN_NETWORKS
|
|
|
|
mkdir -p /home/numbus-admin/.numbus-server/
|
|
touch /home/numbus-admin/.numbus-server/activated.true
|
|
chown -R numbus-admin:users /home/numbus-admin/.numbus-server/
|
|
echo "Activated successfully !"
|
|
'';
|
|
};
|
|
|
|
systemd.services.numbus-quirks = {
|
|
description = "Numbus-Server services : Apply quirks";
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [
|
|
"network.target"
|
|
"local-fs.target"
|
|
"numbus-activation-chowned.service"
|
|
"numbus-activation-networked.service"
|
|
"pi-hole.service"
|
|
"home-assistant.service"
|
|
];
|
|
path = [ pkgs.curl pkgs.coreutils pkgs.systemd pkgs.podman pkgs.sudo ];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
RemainAfterExit = true;
|
|
};
|
|
script = ''
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ -e /home/numbus-admin/.numbus-server/quirked.true ]]; then
|
|
echo "Quirks already applied"
|
|
exit 0
|
|
fi
|
|
|
|
DOMAIN_NAME="$(cat /run/secrets/domain_name)"
|
|
|
|
echo "Applying Pi-Hole quirks..."
|
|
if [[ -e /etc/nixos/podman/pi-hole.nix ]]; then
|
|
mkdir -p /mnt/config/pi-hole/
|
|
chown -R numbus-admin:users /mnt/config/pi-hole/
|
|
echo "Waiting for Pi-hole to be ready..."
|
|
until [[ -e /mnt/config/pi-hole/pihole-FTL.db ]]; do
|
|
sleep 15
|
|
done
|
|
sleep 60
|
|
sudo -u numbus-admin podman exec pi-hole pihole -g
|
|
sleep 60
|
|
systemctl restart pi-hole.service
|
|
echo "Pi-Hole quirk applied and service ready !"
|
|
fi
|
|
|
|
echo "Applying Home Assistant quirks..."
|
|
if [[ -e /etc/nixos/podman/home-assistant.nix ]]; then
|
|
mkdir -p /mnt/config/home-assistant/
|
|
chown -R numbus-admin:users /mnt/config/home-assistant/
|
|
echo "Waiting for Home Assistant to be ready..."
|
|
until [[ -e /mnt/config/home-assistant/configuration.yaml ]]; do
|
|
sleep 15
|
|
done
|
|
sleep 180
|
|
systemctl stop home-assistant.service
|
|
cat << 'EOF' >> /mnt/config/home-assistant/configuration.yaml
|
|
|
|
http:
|
|
use_x_forwarded_for: true
|
|
trusted_proxies: 172.16.0.0/16
|
|
|
|
zha:
|
|
EOF
|
|
systemctl start home-assistant.service
|
|
echo "Home Assistant quirk applied and service ready !"
|
|
fi
|
|
|
|
echo "Applying Frigate quirks..."
|
|
if [[ -e /etc/nixos/podman/frigate.nix ]]; then
|
|
mkdir -p /mnt/config/frigate/
|
|
chown -R numbus-admin:users /mnt/config/frigate/
|
|
echo "Waiting for Frigate to be ready..."
|
|
until [[ -e /mnt/config/frigate/config.yaml ]]; do
|
|
sleep 15
|
|
done
|
|
sleep 180
|
|
systemctl stop frigate.service
|
|
cat << 'EOF' >> /mnt/config/frigate/config.yaml
|
|
|
|
tls:
|
|
enabled: false
|
|
EOF
|
|
systemctl start frigate.service
|
|
echo "Frigate quirk applied and service ready !"
|
|
fi
|
|
|
|
mkdir -p /home/numbus-admin/.numbus-server/
|
|
touch /home/numbus-admin/.numbus-server/quirked.true
|
|
chown -R numbus-admin:users /home/numbus-admin/.numbus-server/
|
|
echo "Quirks applied successfully !"
|
|
'';
|
|
};
|
|
} |