|
|
|
@@ -270,7 +270,7 @@ services_selection() {
|
|
|
|
|
local AVAILABLE_DNS_SERVICES=( "pi-hole" "adguard" )
|
|
|
|
|
|
|
|
|
|
local AVAILABLE_SERVICES=( "frigate" "gitea" "home-assistant" "immich" "it-tools" \
|
|
|
|
|
"nextcloud" "passbolt" "virtualization" )
|
|
|
|
|
"nextcloud" "passbolt" "clamav" "virtualization" )
|
|
|
|
|
|
|
|
|
|
local DNS_SERVICES_DESCRIPTION=( "Pi-Hole : Simple open-source DNS black hole" \
|
|
|
|
|
"AdGuard " : Feature rich DNS service )
|
|
|
|
@@ -282,13 +282,14 @@ services_selection() {
|
|
|
|
|
"Frigate [Home Assistant required] : Secure your house with security cameras" \
|
|
|
|
|
"Gitea : Your own git platform" \
|
|
|
|
|
"IT-tools : A set of useful tools when doing IT" \
|
|
|
|
|
"ClamAV : An open-source anti-virus"
|
|
|
|
|
"Virtualization : Run Virtual Machines (KVM/QEMU) with Libvirt" )
|
|
|
|
|
|
|
|
|
|
SELECTED_SERVICES=()
|
|
|
|
|
local SELECTED_SERVICES_DESCRIPTION=$(gum choose --no-limit --header "Homelab services:" "${SERVICES_DESCRIPTION[@]}")
|
|
|
|
|
|
|
|
|
|
SELECTED_DNS_SERVICE=""
|
|
|
|
|
local SELECTED_DNS_SERVICE_DESCRIPTION=$(gum choose --no-limit --header "Homelab services:" "${DNS_SERVICES_DESCRIPTION[@]}")
|
|
|
|
|
local SELECTED_DNS_SERVICE_DESCRIPTION=$(gum choose --limit 1 --header "Homelab services:" "${DNS_SERVICES_DESCRIPTION[@]}")
|
|
|
|
|
|
|
|
|
|
for i in ${!AVAILABLE_SERVICES[@]}; do
|
|
|
|
|
if printf '%s' "${SELECTED_SERVICES_DESCRIPTION}" | grep -iq "${AVAILABLE_SERVICES[${i}]}"; then
|
|
|
|
@@ -304,6 +305,16 @@ services_selection() {
|
|
|
|
|
|
|
|
|
|
export SELECTED_SERVICES
|
|
|
|
|
export SELECTED_DNS_SERVICE
|
|
|
|
|
|
|
|
|
|
gum confirm "Do you want to edit the default subdomain of your services ?" || { echo -e "\n\n✅ Continuing..."; return 0; }
|
|
|
|
|
|
|
|
|
|
for service in ${!SELECTED_SERVICES[@]} $SELECTED_DNS_SERVICE; do
|
|
|
|
|
local HEADER="Please provide the desired subdomain for ${service}:"
|
|
|
|
|
local PLACEHOLDER="${service}"
|
|
|
|
|
SELECTED_SERVICES_SUBDOMAIN+=("$(gum input --placeholder "${PLACEHOLDER}" --header "${HEADER}")")
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
export SELECTED_SERVICES_SUBDOMAIN
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
disks_selection() {
|
|
|
|
@@ -313,12 +324,12 @@ disks_selection() {
|
|
|
|
|
!! ALL DATA WILL BE WIPED ON THE DISKS YOU CHOOSE !!
|
|
|
|
|
Please press CTRL+C to abort.
|
|
|
|
|
"
|
|
|
|
|
gum confirm "Do you understand and wish to proceed?" || { echo -e "\n\n ❌ Aborting as requested."; exit 1; }
|
|
|
|
|
gum confirm "Do you understand and wish to proceed?" || { echo -e "\n\n❌ Aborting as requested."; exit 1; }
|
|
|
|
|
|
|
|
|
|
echo -e "\n\n 🔎 Fetching and analyzing disks from target host... (This may take a moment)"
|
|
|
|
|
|
|
|
|
|
if [[ "${#DISK_NAME[@]}" -eq 0 ]]; then
|
|
|
|
|
echo -e "\n ❌ No disks found on the target host. Aborting."
|
|
|
|
|
echo -e "\n❌ No disks found on the target host. Aborting."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
@@ -338,7 +349,7 @@ disks_selection() {
|
|
|
|
|
|
|
|
|
|
for i in ${!DISK_NAME[@]}; do
|
|
|
|
|
if printf '%s' "$SELECTED_BOOT_DISK" | grep -iqw "${DISK_NAME[${i}]}"; then
|
|
|
|
|
BOOT_DISKS_ID_LIST+=("${DISK_ID[${i}]:-${DISK_DEVPATH[${i}]}}")
|
|
|
|
|
BOOT_DISKS_ID_LIST+=("\"${DISK_ID[${i}]:-${DISK_DEVPATH[${i}]}}\"")
|
|
|
|
|
BOOT_DISKS_NAME+=("${DISK_NAME[${i}]}")
|
|
|
|
|
unset "GUM_PRINTED_ELEMENTS[${i}]"
|
|
|
|
|
fi
|
|
|
|
@@ -359,81 +370,112 @@ disks_selection() {
|
|
|
|
|
if [[ "${#DATA_DISKS_ID[@]}" -eq 1 ]]; then
|
|
|
|
|
export PARITY_DISK_NUMBER=0
|
|
|
|
|
export CONTENT_DISK_NUMBER=1
|
|
|
|
|
export PARITY_DISK_NUMBER_LIST=()
|
|
|
|
|
export CONTENT_DISK_NUMBER_LIST=("${#DATA_DISKS_ID[0]}")
|
|
|
|
|
export PARITY_DISK_LIST=()
|
|
|
|
|
export CONTENT_DISK_LIST=("\"${DATA_DISKS_ID[0]}\"")
|
|
|
|
|
else
|
|
|
|
|
export PARITY_DISK_NUMBER=$(((${#DATA_DISKS_ID[@]} + 2) / 3))
|
|
|
|
|
export CONTENT_DISK_NUMBER=$((${#DATA_DISKS_ID[@]} - PARITY_DISK_NUMBER))
|
|
|
|
|
for i in $(seq 0 $(($CONTENT_DISK_NUMBER - 1))); do
|
|
|
|
|
CONTENT_DISK_NUMBER_LIST+=("${#DATA_DISKS_ID[${i}]}")
|
|
|
|
|
CONTENT_DISK_LIST+=("\"${DATA_DISKS_ID[${i}]}\"")
|
|
|
|
|
done
|
|
|
|
|
for i in $(seq $CONTENT_DISK_NUMBER $((${#DATA_DISKS_ID[@]} - 1))); do
|
|
|
|
|
PARITY_DISK_NUMBER_LIST+=("${#DATA_DISKS_ID[${i}]}")
|
|
|
|
|
PARITY_DISK_LIST+=("\"${DATA_DISKS_ID[${i}]}\"")
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "${#DATA_DISKS_ID[@]}" -gt 0 ]]; then
|
|
|
|
|
for i in ${!DATA_DISKS_ID[@]}; do
|
|
|
|
|
if [[ "${DATA_DISKS_TYPE[${i}]}" == "HDD" ]]; then
|
|
|
|
|
SPINDOWN_DISKS_ID+=("${DATA_DISKS_ID[${i}]}")
|
|
|
|
|
SPINDOWN_DISKS_LIST+=("\"${DATA_DISKS_ID[${i}]}\"")
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
export SPINDOWN_DISKS_ID
|
|
|
|
|
export SPINDOWN_DISKS_LIST
|
|
|
|
|
export BOOT_DISKS_ID_LIST
|
|
|
|
|
export PARITY_DISK_NUMBER_LIST
|
|
|
|
|
export CONTENT_DISK_NUMBER_LIST
|
|
|
|
|
export PARITY_DISK_LIST
|
|
|
|
|
export CONTENT_DISK_LIST
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server_config_generation() {
|
|
|
|
|
echo -e "\n # Server settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " time.timeZone = \"${TIMEZONE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.locale = \"${LOCALE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.language = \"${LANGUAGE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.owner = \"${SERVER_OWNER_NAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.locale = \"${LOCALE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.language = \"${LANGUAGE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.owner = \"${SERVER_OWNER_NAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
network_config_generation() {
|
|
|
|
|
echo -e "\n # Network settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.networking.ipAddress = \"${HOME_SERVER_IP}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.networking.interface = \"${TARGET_INTERFACE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.networking.routerIpAddress = \"${NETWORK_ROUTER_IP}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.networking.ipAddress = \"${HOME_SERVER_IP}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.networking.interface = \"${TARGET_INTERFACE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.networking.routerIpAddress = \"${NETWORK_ROUTER_IP}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
services_config_generation() {
|
|
|
|
|
echo -e "\n # DNS settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.dns = \"${SELECTED_DNS_SERVICE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.services.${SELECTED_DNS_SERVICE} = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.services.dns = \"${SELECTED_DNS_SERVICE}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.services.${SELECTED_DNS_SERVICE}.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
|
|
|
|
|
echo -e "\n # Services settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.services.domain = \"${DOMAIN_NAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.services.domain = \"${DOMAIN_NAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
i=0
|
|
|
|
|
for service in "${SELECTED_SERVICES[@]}"; do
|
|
|
|
|
echo -e " config.numbus.services.${service}.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
[[ "${SELECTED_SERVICES_SUBDOMAIN+x:-false}" ]] && echo -e " numbus.services.${service}.enable.subdomain = \"${SELECTED_SERVICES_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.services.${service}.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
i=$((i + 1))
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ "${SELECTED_SERVICES_SUBDOMAIN+x:-false}" && -n "$SELECTED_DNS_SERVICE" && -n "${SELECTED_SERVICES_SUBDOMAIN[${i}]}" ]]; then
|
|
|
|
|
echo -e " numbus.services.${SELECTED_DNS_SERVICE}.enable.subdomain = \"${SELECTED_SERVICES_SUBDOMAIN[${i}]}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ "${TARGET_GRAPHICS_RENDERER}" == "true" ]]; then
|
|
|
|
|
FRIGATE_DEVICES+=" \"/dev/dri/D128\""
|
|
|
|
|
fi
|
|
|
|
|
if [[ "${TARGET_USB_CORAL}" == "true" ]]; then
|
|
|
|
|
FRIGATE_DEVICES+=" \"/dev/bus/usb\""
|
|
|
|
|
elif [[ "${TARGET_PCIE_CORAL}" == "true" ]]; then
|
|
|
|
|
FRIGATE_DEVICES+=" \"/dev/apex_0\""
|
|
|
|
|
fi
|
|
|
|
|
if [[ -n "${TARGET_ZIGBEE_DEVICE}" ]]; then
|
|
|
|
|
HOME_ASSISTANT_DEVICES+=" \"${TARGET_ZIGBEE_DEVICE}\""
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -n "${FRIGATE_DEVICES}" ]]; then
|
|
|
|
|
echo -e " numbus.services.frigate.devices = [${FRIGATE_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
if [[ -n "${HOME_ASSISTANT_DEVICES}" ]]; then
|
|
|
|
|
echo -e " numbus.services.home-assistant.devices = [${HOME_ASSISTANT_DEVICES} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mail_config_generation() {
|
|
|
|
|
echo -e "\n # Mail settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.mail.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.mail.userAddress = \"${SERVER_USER_EMAIL}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.mail.adminAddress = \"${SERVER_ADMIN_EMAIL}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.mail.smtpUsername = \"${SMTP_SERVER_USERNAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.mail.smtpPasswordPath = config.sops.secrets.smtpPassword.path;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.userAddress = \"${SERVER_USER_EMAIL}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.adminAddress = \"${SERVER_ADMIN_EMAIL}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.smtpUsername = \"${SMTP_SERVER_USERNAME}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.smtpPasswordPath = config.sops.secrets.smtpPassword.path;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
|
|
|
|
|
if [[ "${SMTP_SERVER_HOST}" != "smtp.gmail.com" ]]; then
|
|
|
|
|
echo -e " config.numbus.mail.smtpServer = \"${SMTP_SERVER_HOST}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.smtpServer = \"${SMTP_SERVER_HOST}\";" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
if [[ "${SMTP_SERVER_PORT}" != "587" ]]; then
|
|
|
|
|
echo -e " config.numbus.mail.smtpPort = ${SMTP_SERVER_PORT};" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.mail.smtpPort = ${SMTP_SERVER_PORT};" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
disk_config_generation() {
|
|
|
|
|
echo -e "\n # Hardware settings" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.hardware.bootDisksList = [ ${BOOT_DISKS_ID_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.hardware.dataDisksList = [ ${CONTENT_DISK_NUMBER_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " config.numbus.hardware.parityDisksList = [ ${PARITY_DISK_NUMBER_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
if [[ "${TARGET_PCIE_CORAL}" == "true" ]]; then
|
|
|
|
|
echo " numbus.hardware.pcie-coral.enable = true;" >> ${CONFIGURATION_PATH}
|
|
|
|
|
fi
|
|
|
|
|
echo -e " numbus.hardware.bootDisksList = [ ${BOOT_DISKS_ID_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.hardware.dataDisksList = [ ${CONTENT_DISK_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.hardware.parityDisksList = [ ${PARITY_DISK_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo -e " numbus.hardware.spindownDisksList = [ ${SPINDOWN_DISKS_LIST[@]} ];" >> ${CONFIGURATION_PATH}
|
|
|
|
|
echo "}" >> ${CONFIGURATION_PATH}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
keys_generation() {
|
|
|
|
@@ -469,12 +511,12 @@ EOF
|
|
|
|
|
local SSH_KEYS_FORMATTED=""
|
|
|
|
|
if [[ "$(declare -p AUTHORIZED_SSH_PUBLIC_KEY 2>/dev/null)" =~ "declare -a" ]]; then
|
|
|
|
|
for key in "${AUTHORIZED_SSH_PUBLIC_KEY[@]}"; do
|
|
|
|
|
SSH_KEYS_FORMATTED+=" \"$key\""$'\n'
|
|
|
|
|
SSH_KEYS_FORMATTED+=" $key"$'\n'
|
|
|
|
|
done
|
|
|
|
|
else
|
|
|
|
|
SSH_KEYS_FORMATTED=" \"$AUTHORIZED_SSH_PUBLIC_KEY\""$'\n'
|
|
|
|
|
SSH_KEYS_FORMATTED=" $AUTHORIZED_SSH_PUBLIC_KEY"$'\n'
|
|
|
|
|
fi
|
|
|
|
|
export AUTHORIZED_SSH_PUBLIC_KEY="$SSH_KEYS_FORMATTED"
|
|
|
|
|
export SSH_KEYS_FORMATTED
|
|
|
|
|
|
|
|
|
|
echo -e "\n ✅ Generating sops-nix keys..."
|
|
|
|
|
ssh-to-age -private-key -i final-nix-config/home/numbus-admin/.ssh/id_ed25519 > final-nix-config/var/lib/sops-nix/key.txt
|
|
|
|
@@ -512,7 +554,7 @@ EOF
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
gum style --border normal --margin "1" --padding "1 2" --border-foreground 212 "$(gum format <<< "${DISK_RECAP_CONTENT}")"
|
|
|
|
|
gum confirm "Proceed with this disk configuration?" || { echo -e "\n\n ❌ Aborting as requested."; exit 1; }
|
|
|
|
|
gum confirm "Proceed with this disk configuration?" || { echo -e "\n\n❌ Aborting as requested."; exit 1; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cloudflare_dns_setup() {
|
|
|
|
@@ -533,7 +575,7 @@ cloudflare_dns_setup() {
|
|
|
|
|
if [[ "${CREATION_STATUS}" == "true" ]]; then
|
|
|
|
|
echo " ✅ Successfully created a DNS record for ${SUBDOMAIN}"
|
|
|
|
|
else
|
|
|
|
|
echo -e " ❌ Failed to create a DNS record for ${SUBDOMAIN}. Check documentation to \n
|
|
|
|
|
echo -e "❌ Failed to create a DNS record for ${SUBDOMAIN}. Check documentation to \n
|
|
|
|
|
learn how you can create them manually."
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
@@ -566,9 +608,11 @@ cloudflare_dns_setup() {
|
|
|
|
|
SELECTED_SERVICES_DNS=()
|
|
|
|
|
for service in "${SELECTED_SERVICES[@]}"; do
|
|
|
|
|
[[ "${service}" == "virtualization" ]] && continue
|
|
|
|
|
SELECTED_SERVICES_DNS+=("${service}.${DOMAIN_NAME}")
|
|
|
|
|
[[ "${service}" == "clamav" ]] && continue
|
|
|
|
|
[[ "${service}" == "nextcloud" ]] && SELECTED_SERVICES_DNS+=( "onlyoffice.${DOMAIN_NAME}" "whiteboard.${DOMAIN_NAME}" )
|
|
|
|
|
SELECTED_SERVICES_DNS+=( "${service}.${DOMAIN_NAME}" )
|
|
|
|
|
done
|
|
|
|
|
SELECTED_SERVICES_DNS+=("${SELECTED_DNS_SERVICE}.${DOMAIN_NAME}")
|
|
|
|
|
SELECTED_SERVICES_DNS+=( "${SELECTED_DNS_SERVICE}.${DOMAIN_NAME}" )
|
|
|
|
|
|
|
|
|
|
# Get Zone ID
|
|
|
|
|
ZONE_ID=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN_NAME}" \
|
|
|
|
@@ -617,7 +661,7 @@ export_configuration() {
|
|
|
|
|
echo "export BOOT_DISKS_ID_LIST=\"(${BOOT_DISKS_ID_LIST[@]})\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export DATA_DISKS_ID=\"(${DATA_DISKS_ID[@]})\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export DATA_DISKS_TYPE=\"(${DATA_DISKS_TYPE[@]})\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export SPINDOWN_DISKS_ID=\"(${SPINDOWN_DISKS_ID[@]})\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export SPINDOWN_DISKS_LIST=\"(${SPINDOWN_DISKS_LIST[@]})\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export CONTENT_DISK_NUMBER=\"${CONTENT_DISK_NUMBER}\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo "export PARITY_DISK_NUMBER=\"${PARITY_DISK_NUMBER}\"" >> $CONFIG_EXPORT_FILE
|
|
|
|
|
echo -e "\n# TPM SETTINGS" >> $CONFIG_EXPORT_FILE
|
|
|
|
@@ -626,9 +670,12 @@ export_configuration() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
deploy() {
|
|
|
|
|
git -C "/home/nixosd/numbus-server" add -f "final-nix-config"
|
|
|
|
|
git -C . add -f "final-nix-config/"
|
|
|
|
|
git -C . add -f "templates/"
|
|
|
|
|
git -C . add -f "deploy.conf"
|
|
|
|
|
|
|
|
|
|
echo -e "\n\n🔄 Deploying to the remote server..."
|
|
|
|
|
nix flake update --flake ./final-nix-config/etc/nixos
|
|
|
|
|
nix run github:nix-community/nixos-anywhere -- \
|
|
|
|
|
--flake ./final-nix-config/etc/nixos#numbus-server \
|
|
|
|
|
--extra-files final-nix-config \
|
|
|
|
|