Added traefik.nix. Added git to packages. Try to get automount working. Edited secrets to get them working.

This commit is contained in:
Raphaël Numbus
2026-01-03 21:08:34 +01:00
parent 379e71ca0b
commit fb551a15cf
5 changed files with 48 additions and 46 deletions
+2 -1
View File
@@ -325,6 +325,7 @@ files_generation() {
sed -i "s|TARGET_INTERFACE|${SENDER_EMAIL_ADDRESS}|g" final-nix-config/etc/nixos/misc/mail.nix sed -i "s|TARGET_INTERFACE|${SENDER_EMAIL_ADDRESS}|g" final-nix-config/etc/nixos/misc/mail.nix
echo -e "\n✅ Writing configuration files for the selected homelab services..." echo -e "\n✅ Writing configuration files for the selected homelab services..."
cp templates/nix-config/podman/traefik.nix final-nix-config/etc/nixos/podman/traefik.nix
envsubst < templates/podman-config/traefik/traefik.yaml > final-nix-config/mnt/config/traefik/traefik.yaml envsubst < templates/podman-config/traefik/traefik.yaml > final-nix-config/mnt/config/traefik/traefik.yaml
for service in "${SELECTED_SERVICES[@]}"; do for service in "${SELECTED_SERVICES[@]}"; do
@@ -527,7 +528,7 @@ EOF
(envsubst < "templates/nix-config/disks/content.nix") >> final-nix-config/etc/nixos/disks/disko.nix (envsubst < "templates/nix-config/disks/content.nix") >> final-nix-config/etc/nixos/disks/disko.nix
SNAPRAID_CONTENT_FILES+=" \"/mnt/content-${j}/snapraid.content\""$'\n' SNAPRAID_CONTENT_FILES+=" \"/mnt/content-${j}/snapraid.content\""$'\n'
SNAPRAID_DATA_DISKS+=" d${j} = \"/mnt/content-${j}\";"$'\n' SNAPRAID_DATA_DISKS+=" d${j} = \"/mnt/content-${j}\";"$'\n'
MERGERFS_REQ_DEPS+=" \"x-systemd.requires=/mnt/content-${j}\""$'\n' MERGERFS_REQ_DEPS+=" \"x-systemd.requires-mounts-for=/mnt/content-${j}\""$'\n'
done done
echo -e "\n✅ Generated $CONTENT_DISK_NUMBER data disk configuration(s)." echo -e "\n✅ Generated $CONTENT_DISK_NUMBER data disk configuration(s)."
j=0 j=0
+1
View File
@@ -78,6 +78,7 @@
# Install packages # Install packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git
ncdu ncdu
fastfetch fastfetch
tpm2-tss tpm2-tss
+1 -1
View File
@@ -18,7 +18,7 @@
type = "filesystem"; type = "filesystem";
format = "xfs"; format = "xfs";
mountpoint = "/mnt/content-${j}"; mountpoint = "/mnt/content-${j}";
mountOptions = [ "noauto" "nofail" "x-systemd.automount" ]; mountOptions = [ "noauto" "nofail" ];
}; };
}; };
}; };
+1 -1
View File
@@ -18,7 +18,7 @@
type = "filesystem"; type = "filesystem";
format = "xfs"; format = "xfs";
mountpoint = "/mnt/parity-${j}"; mountpoint = "/mnt/parity-${j}";
mountOptions = [ "noauto" "nofail" "x-systemd.automount" ]; mountOptions = [ "noauto" "nofail" ];
}; };
}; };
}; };
+43 -43
View File
@@ -1,27 +1,27 @@
ssh_public_keys: "${SSH_PUBLIC_KEY}" ssh_public_keys: "$SSH_PUBLIC_KEY"
sender_email_address_password: "${SENDER_EMAIL_ADDRESS_PASSWORD}" sender_email_address_password: "$SENDER_EMAIL_ADDRESS_PASSWORD"
podman: podman:
frigate: | frigate: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
FRIGATE_MQTT_USER="${HOME_ASSISTANT_MQTT_USER}" FRIGATE_MQTT_USER="$HOME_ASSISTANT_MQTT_USER"
FRIGATE_MQTT_PASSWORD="${HOME_ASSISTANT_MQTT_PASSWORD}" FRIGATE_MQTT_PASSWORD="$HOME_ASSISTANT_MQTT_PASSWORD"
gitea: | gitea: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
DB_NAME="${GITEA_DB_NAME}" DB_NAME="$GITEA_DB_NAME"
DB_USERNAME="${GITEA_DB_USERNAME}" DB_USERNAME="$GITEA_DB_USERNAME"
DB_PASSWORD="${GITEA_DB_PASSWORD}" DB_PASSWORD="$GITEA_DB_PASSWORD"
POSTGRES_HOST="gitea-database" POSTGRES_HOST="gitea-database"
POSTGRES_PORT="5432" POSTGRES_PORT="5432"
home_assistant: | home_assistant: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
HOME_ASSISTANT_MQTT_USER="${HOME_ASSISTANT_MQTT_USER}" HOME_ASSISTANT_MQTT_USER="$HOME_ASSISTANT_MQTT_USER"
HOME_ASSISTANT_MQTT_PASSWORD="${HOME_ASSISTANT_MQTT_PASSWORD}" HOME_ASSISTANT_MQTT_PASSWORD="$HOME_ASSISTANT_MQTT_PASSWORD"
immich: | immich: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
DB_DATABASE_NAME="${IMMICH_DB_NAME}" DB_DATABASE_NAME="$IMMICH_DB_NAME"
DB_USERNAME="${IMMICH_DB_USERNAME}" DB_USERNAME="$IMMICH_DB_USERNAME"
DB_PASSWORD="${IMMICH_DB_PASSWORD}" DB_PASSWORD="$IMMICH_DB_PASSWORD"
IMMICH_VERSION="release" IMMICH_VERSION="release"
IMMICH_TRUSTED_PROXIES="172.16.50.253" IMMICH_TRUSTED_PROXIES="172.16.50.253"
REDIS_HOSTNAME="immich-redis" REDIS_HOSTNAME="immich-redis"
@@ -30,39 +30,39 @@ podman:
DB_DATA_LOCATION="/mnt/config/immich/database" DB_DATA_LOCATION="/mnt/config/immich/database"
TZ="Europe/Paris" TZ="Europe/Paris"
it_tools: | it_tools: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
nextcloud: | nextcloud: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
NEXTCLOUD_ENABLE_DRI_DEVICE="${TARGET_GRAPHICS}" NEXTCLOUD_ENABLE_DRI_DEVICE="$TARGET_GRAPHICS"
passbolt: | passbolt: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
PASSBOLT_MYSQL_DATABASE="${PASSBOLT_DB_NAME}" PASSBOLT_MYSQL_DATABASE="$PASSBOLT_DB_NAME"
PASSBOLT_MYSQL_USER="${PASSBOLT_DB_USERNAME}" PASSBOLT_MYSQL_USER="$PASSBOLT_DB_USERNAME"
PASSBOLT_MYSQL_PASSWORD="${PASSBOLT_DB_PASSWORD}" PASSBOLT_MYSQL_PASSWORD="$PASSBOLT_DB_PASSWORD"
SENDER_EMAIL_ADDRESS="${SENDER_EMAIL_ADDRESS}" SENDER_EMAIL_ADDRESS="$SENDER_EMAIL_ADDRESS"
SENDER_EMAIL_ADDRESS_PASSWORD="${SENDER_EMAIL_ADDRESS_PASSWORD}" SENDER_EMAIL_ADDRESS_PASSWORD="$SENDER_EMAIL_ADDRESS_PASSWORD"
SENDER_EMAIL_DOMAIN="${SENDER_EMAIL_DOMAIN}" SENDER_EMAIL_DOMAIN="$SENDER_EMAIL_DOMAIN"
SENDER_EMAIL_PORT="${SENDER_EMAIL_PORT}" SENDER_EMAIL_PORT="$SENDER_EMAIL_PORT"
EMAIL_ADDRESS="${EMAIL_ADDRESS}" EMAIL_ADDRESS="$EMAIL_ADDRESS"
TZ="Europe/Paris" TZ="Europe/Paris"
pi_hole: | pi_hole: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
HOME_ROUTER_SUBNET="${HOME_ROUTER_SUBNET}" HOME_ROUTER_SUBNET="$HOME_ROUTER_SUBNET"
HOME_ROUTER_IP="${HOME_ROUTER_IP}" HOME_ROUTER_IP="$HOME_ROUTER_IP"
HOME_SERVER_IP="${HOME_SERVER_IP}" HOME_SERVER_IP="$HOME_SERVER_IP"
FTLCONF_webserver_api_password=$FTLCONF_WEBSERVER_PASSWORD FTLCONF_webserver_api_password=$FTLCONF_WEBSERVER_PASSWORD
TZ="Europe/Paris" TZ="Europe/Paris"
traefik: | traefik: |
DOMAIN_NAME="${DOMAIN_NAME}" DOMAIN_NAME="$DOMAIN_NAME"
CF_DNS_API_TOKEN="${CF_DNS_API_TOKEN}" CF_DNS_API_TOKEN="$CF_DNS_API_TOKEN"
disks: disks:
content-disk-1: "${CONTENT_DISK_1_KEY:-Undefined}" content-disk-1: "$CONTENT_DISK_1_KEY"
content-disk-2: "${CONTENT_DISK_2_KEY:-Undefined}" content-disk-2: "$CONTENT_DISK_2_KEY"
content-disk-3: "${CONTENT_DISK_3_KEY:-Undefined}" content-disk-3: "$CONTENT_DISK_3_KEY"
content-disk-4: "${CONTENT_DISK_4_KEY:-Undefined}" content-disk-4: "$CONTENT_DISK_4_KEY"
content-disk-5: "${CONTENT_DISK_5_KEY:-Undefined}" content-disk-5: "$CONTENT_DISK_5_KEY"
content-disk-6: "${CONTENT_DISK_6_KEY:-Undefined}" content-disk-6: "$CONTENT_DISK_6_KEY"
parity-disk-1: "${PARITY_DISK_1_KEY:-Undefined}" parity-disk-1: "$PARITY_DISK_1_KEY"
parity-disk-2: "${PARITY_DISK_2_KEY:-Undefined}" parity-disk-2: "$PARITY_DISK_2_KEY"
parity-disk-3: "${PARITY_DISK_3_KEY:-Undefined}" parity-disk-3: "$PARITY_DISK_3_KEY"