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"
|
||||
"Passbolt: An open-source, security-first password manager for teams"
|
||||
"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=(
|
||||
"ClamAV : An open-source anti-virus"
|
||||
@@ -192,10 +192,35 @@ necessary_information_config() {
|
||||
fi
|
||||
}
|
||||
|
||||
setup_ssh() {
|
||||
mkdir -p final-nix-config/
|
||||
hierarchy_preparation() {
|
||||
mkdir -p final-nix-config/etc/
|
||||
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/numbus-admin/
|
||||
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}"
|
||||
}
|
||||
|
||||
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() {
|
||||
### --> Get hardware information
|
||||
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+=("\$(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)")
|
||||
|
||||
done
|
||||
|
||||
echo "# Hardware detection results on \$(date)" > "${TMPFILE}"
|
||||
@@ -473,8 +484,9 @@ services_config_generation() {
|
||||
|
||||
echo -e "\n # Services settings" >> ${CONFIGURATION_PATH}
|
||||
echo -e " numbus.services.domain = \"${DOMAIN_NAME}\";" >> ${CONFIGURATION_PATH}
|
||||
|
||||
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
|
||||
echo -e " numbus.services.${service}.enable.subdomain = \"${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
||||
fi
|
||||
@@ -482,8 +494,8 @@ services_config_generation() {
|
||||
i=$((i + 1))
|
||||
done
|
||||
|
||||
if [[ -v SELECTED_WEB_APPLICATIONS_SUBDOMAIN && -n "$SELECTED_DNS_SERVICE" && -n "${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}" ]]; then
|
||||
echo -e " numbus.services.${SELECTED_DNS_SERVICE}.enable.subdomain = \"${SELECTED_WEB_APPLICATIONS_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
||||
if [[ -v SELECTED_DNS_SERVICE_SUBDOMAIN && -n "${SELECTED_DNS_SERVICE_SUBDOMAIN[0]}" ]]; then
|
||||
echo -e " numbus.services.${SELECTED_DNS_SERVICE[0]}.enable.subdomain = \"${SELECTED_DNS_SERVICE_SUBDOMAIN[0]}\";" >> ${CONFIGURATION_PATH}
|
||||
fi
|
||||
|
||||
if [[ "${TARGET_GRAPHICS_RENDERER}" == "true" ]]; then
|
||||
@@ -498,10 +510,10 @@ services_config_generation() {
|
||||
HOME_ASSISTANT_DEVICES+=" \"${TARGET_ZIGBEE_DEVICE}\""
|
||||
fi
|
||||
|
||||
if [[ -n "${FRIGATE_DEVICES}" ]]; then
|
||||
if [[ -n "${FRIGATE_DEVICES:-}" ]]; then
|
||||
echo -e " numbus.services.frigate.devices = [${FRIGATE_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
||||
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}
|
||||
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; }
|
||||
strictly_necessary_information
|
||||
necessary_information
|
||||
setup_ssh
|
||||
hierarchy_preparation
|
||||
setup_ssh
|
||||
hardware_detection
|
||||
services_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"
|
||||
gum confirm "Do you understand and wish to proceed?" || { echo "❌ Aborting as requested"; exit 1; }
|
||||
necessary_information_config
|
||||
setup_ssh
|
||||
hierarchy_preparation
|
||||
setup_ssh
|
||||
hardware_detection
|
||||
disks_selection
|
||||
server_config_generation
|
||||
|
||||
Reference in New Issue
Block a user