Bugfixes. Added previous run detection.
This commit is contained in:
@@ -77,7 +77,7 @@ WEB_APPLICATIONS_DESCRIPTION=(
|
|||||||
"Nextcloud : A self-hosted productivity platform, like Google Drive & Office"
|
"Nextcloud : A self-hosted productivity platform, like Google Drive & Office"
|
||||||
"Passbolt: An open-source, security-first password manager for teams"
|
"Passbolt: An open-source, security-first password manager for teams"
|
||||||
"Uptime-Kuma : A fancy self-hosted monitoring tool"
|
"Uptime-Kuma : A fancy self-hosted monitoring tool"
|
||||||
"VSCodium : Run VS Code in your browser, accessible anywhere"
|
"VSCodium : An open-source version of VScode in your web browser"
|
||||||
)
|
)
|
||||||
SYSTEM_SERVICES_DESCRIPTION=(
|
SYSTEM_SERVICES_DESCRIPTION=(
|
||||||
"ClamAV : An open-source anti-virus"
|
"ClamAV : An open-source anti-virus"
|
||||||
@@ -192,10 +192,35 @@ necessary_information_config() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_ssh() {
|
hierarchy_preparation() {
|
||||||
mkdir -p final-nix-config/
|
|
||||||
mkdir -p final-nix-config/etc/
|
mkdir -p final-nix-config/etc/
|
||||||
mkdir -p final-nix-config/etc/nixos/
|
mkdir -p final-nix-config/etc/nixos/
|
||||||
|
mkdir -p final-nix-config/etc/secrets/
|
||||||
|
mkdir -p final-nix-config/etc/secrets/disks/
|
||||||
|
mkdir -p final-nix-config/etc/nixos/secrets/
|
||||||
|
mkdir -p final-nix-config/var/
|
||||||
|
mkdir -p final-nix-config/var/lib/
|
||||||
|
mkdir -p final-nix-config/var/lib/sops-nix/
|
||||||
|
mkdir -p final-nix-config/var/lib/numbus-server/
|
||||||
|
|
||||||
|
if [[ -e final-nix-config/etc/nixos/configuration.nix ]]; then
|
||||||
|
gum confirm "It seems you have already run this script. Previously generated files need to be cleaned up. Proceed?" || { echo -e "\n\n❌ Aborting."; exit 1; }
|
||||||
|
rm -f final-nix-config/etc/nixos/*
|
||||||
|
rm -f final-nix-config/var/lib/sops-nix/*
|
||||||
|
rm -f final-nix-config/etc/nixos/secrets/*
|
||||||
|
rm -f final-nix-config/etc/secrets/disks/*
|
||||||
|
rm -f final-nix-config/var/lib/numbus-server/*
|
||||||
|
rm -f final-nix-config/home/numbus-admin/.ssh/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n✅ Writing configuration..."
|
||||||
|
cp -${FILES_COPY_FLAGS} templates/nix-config/configuration.nix final-nix-config/etc/nixos/configuration.nix
|
||||||
|
cp -${FILES_COPY_FLAGS} templates/nix-config/flake.nix final-nix-config/etc/nixos/flake.nix
|
||||||
|
export CONFIGURATION_PATH="final-nix-config/etc/nixos/configuration.nix"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_ssh() {
|
||||||
|
mkdir -p final-nix-config/
|
||||||
mkdir -p final-nix-config/home/
|
mkdir -p final-nix-config/home/
|
||||||
mkdir -p final-nix-config/home/numbus-admin/
|
mkdir -p final-nix-config/home/numbus-admin/
|
||||||
mkdir -p final-nix-config/home/numbus-admin/.ssh/
|
mkdir -p final-nix-config/home/numbus-admin/.ssh/
|
||||||
@@ -218,21 +243,6 @@ ssh_to_host() {
|
|||||||
ssh -i "final-nix-config/home/numbus-admin/.ssh/id_ed25519" "${TARGET_USER}@${LIVE_TARGET_IP}" "${COMMAND}"
|
ssh -i "final-nix-config/home/numbus-admin/.ssh/id_ed25519" "${TARGET_USER}@${LIVE_TARGET_IP}" "${COMMAND}"
|
||||||
}
|
}
|
||||||
|
|
||||||
hierarchy_preparation() {
|
|
||||||
mkdir -p final-nix-config/etc/secrets
|
|
||||||
mkdir -p final-nix-config/etc/secrets/disks
|
|
||||||
mkdir -p final-nix-config/etc/nixos/secrets
|
|
||||||
mkdir -p final-nix-config/var
|
|
||||||
mkdir -p final-nix-config/var/lib
|
|
||||||
mkdir -p final-nix-config/var/lib/sops-nix
|
|
||||||
mkdir -p final-nix-config/var/lib/numbus-server
|
|
||||||
|
|
||||||
echo -e "\n✅ Writing configuration..."
|
|
||||||
cp -${FILES_COPY_FLAGS} templates/nix-config/configuration.nix final-nix-config/etc/nixos/configuration.nix
|
|
||||||
cp -${FILES_COPY_FLAGS} templates/nix-config/flake.nix final-nix-config/etc/nixos/flake.nix
|
|
||||||
export CONFIGURATION_PATH="final-nix-config/etc/nixos/configuration.nix"
|
|
||||||
}
|
|
||||||
|
|
||||||
hardware_detection() {
|
hardware_detection() {
|
||||||
### --> Get hardware information
|
### --> Get hardware information
|
||||||
local TMPFILE="/tmp/nixos-installation-hardware-detection-temp-file"
|
local TMPFILE="/tmp/nixos-installation-hardware-detection-temp-file"
|
||||||
@@ -293,6 +303,7 @@ for DISK in \$(lsblk -x SIZE -d -n -e 7,11 -o NAME); do
|
|||||||
# Disk ID
|
# Disk ID
|
||||||
DISK_ID+=("\$(ls -l /dev/disk/by-id | grep -m1 "../../\$DISK" | awk '{print "/dev/disk/by-id/" \$9}')")
|
DISK_ID+=("\$(ls -l /dev/disk/by-id | grep -m1 "../../\$DISK" | awk '{print "/dev/disk/by-id/" \$9}')")
|
||||||
DISK_SIZE+=("\$(lsblk -x SIZE -d -n -e 7,11 -o SIZE /dev/\$DISK)")
|
DISK_SIZE+=("\$(lsblk -x SIZE -d -n -e 7,11 -o SIZE /dev/\$DISK)")
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "# Hardware detection results on \$(date)" > "${TMPFILE}"
|
echo "# Hardware detection results on \$(date)" > "${TMPFILE}"
|
||||||
@@ -473,8 +484,9 @@ services_config_generation() {
|
|||||||
|
|
||||||
echo -e "\n # Services settings" >> ${CONFIGURATION_PATH}
|
echo -e "\n # Services settings" >> ${CONFIGURATION_PATH}
|
||||||
echo -e " numbus.services.domain = \"${DOMAIN_NAME}\";" >> ${CONFIGURATION_PATH}
|
echo -e " numbus.services.domain = \"${DOMAIN_NAME}\";" >> ${CONFIGURATION_PATH}
|
||||||
|
|
||||||
i=0
|
i=0
|
||||||
for service in "${SELECTED_SERVICES[@]}"; do
|
for service in "${SELECTED_WEB_APPLICATIONS[@]}"; do
|
||||||
if [[ -v SELECTED_WEB_APPLICATIONS_SUBDOMAIN && -n "${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}" ]]; then
|
if [[ -v SELECTED_WEB_APPLICATIONS_SUBDOMAIN && -n "${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}" ]]; then
|
||||||
echo -e " numbus.services.${service}.enable.subdomain = \"${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
echo -e " numbus.services.${service}.enable.subdomain = \"${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
||||||
fi
|
fi
|
||||||
@@ -482,8 +494,8 @@ services_config_generation() {
|
|||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -v SELECTED_WEB_APPLICATIONS_SUBDOMAIN && -n "$SELECTED_DNS_SERVICE" && -n "${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}" ]]; then
|
if [[ -v SELECTED_DNS_SERVICE_SUBDOMAIN && -n "${SELECTED_DNS_SERVICE_SUBDOMAIN[0]}" ]]; then
|
||||||
echo -e " numbus.services.${SELECTED_DNS_SERVICE}.enable.subdomain = \"${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
echo -e " numbus.services.${SELECTED_DNS_SERVICE[0]}.enable.subdomain = \"${SELECTED_DNS_SERVICE_SUBDOMAIN[0]}\";" >> ${CONFIGURATION_PATH}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${TARGET_GRAPHICS_RENDERER}" == "true" ]]; then
|
if [[ "${TARGET_GRAPHICS_RENDERER}" == "true" ]]; then
|
||||||
@@ -498,10 +510,10 @@ services_config_generation() {
|
|||||||
HOME_ASSISTANT_DEVICES+=" \"${TARGET_ZIGBEE_DEVICE}\""
|
HOME_ASSISTANT_DEVICES+=" \"${TARGET_ZIGBEE_DEVICE}\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "${FRIGATE_DEVICES}" ]]; then
|
if [[ -n "${FRIGATE_DEVICES:-}" ]]; then
|
||||||
echo -e " numbus.services.frigate.devices = [${FRIGATE_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
echo -e " numbus.services.frigate.devices = [${FRIGATE_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
||||||
fi
|
fi
|
||||||
if [[ -n "${HOME_ASSISTANT_DEVICES}" ]]; then
|
if [[ -n "${HOME_ASSISTANT_DEVICES:-}" ]]; then
|
||||||
echo -e " numbus.services.home-assistant.devices = [${HOME_ASSISTANT_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
echo -e " numbus.services.home-assistant.devices = [${HOME_ASSISTANT_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -923,8 +935,8 @@ if [[ "$ACTION_ANSWER" == "[1] 🌐 Deploy NixOS on a remote machine" ]]; then
|
|||||||
gum confirm "Do you understand and wish to proceed?" || { echo "❌ Aborting as requested"; exit 1; }
|
gum confirm "Do you understand and wish to proceed?" || { echo "❌ Aborting as requested"; exit 1; }
|
||||||
strictly_necessary_information
|
strictly_necessary_information
|
||||||
necessary_information
|
necessary_information
|
||||||
setup_ssh
|
|
||||||
hierarchy_preparation
|
hierarchy_preparation
|
||||||
|
setup_ssh
|
||||||
hardware_detection
|
hardware_detection
|
||||||
services_selection
|
services_selection
|
||||||
disks_selection
|
disks_selection
|
||||||
@@ -947,8 +959,8 @@ elif [[ "$ACTION_ANSWER" == "[2] 💽 Deploy NixOS on a remote machine with a fi
|
|||||||
Launch a console and set up a new user password"
|
Launch a console and set up a new user password"
|
||||||
gum confirm "Do you understand and wish to proceed?" || { echo "❌ Aborting as requested"; exit 1; }
|
gum confirm "Do you understand and wish to proceed?" || { echo "❌ Aborting as requested"; exit 1; }
|
||||||
necessary_information_config
|
necessary_information_config
|
||||||
setup_ssh
|
|
||||||
hierarchy_preparation
|
hierarchy_preparation
|
||||||
|
setup_ssh
|
||||||
hardware_detection
|
hardware_detection
|
||||||
disks_selection
|
disks_selection
|
||||||
server_config_generation
|
server_config_generation
|
||||||
|
|||||||
Reference in New Issue
Block a user