Huge update to organization. Added future numbus projects.
This commit is contained in:
@@ -7,21 +7,20 @@ export GUM_SPIN_SPINNER_BOLD=true
|
||||
export GUM_SPIN_SHOW_ERROR=true
|
||||
export GUM_SPIN_TITLE_BOLD=true
|
||||
|
||||
NECESSARY_VARIABLES_LIST=(
|
||||
NECESSARY_BACKUP_SERVER_VARIABLES_LIST=(
|
||||
#LIVE TARGET SETTINGS
|
||||
LIVE_TARGET_IP
|
||||
LIVE_TARGET_PASSWD
|
||||
#SERVER SETTINGS
|
||||
LANGUAGE
|
||||
LOCALE
|
||||
TIMEZONE
|
||||
SERVER_LANGUAGE
|
||||
SERVER_LOCALE
|
||||
SERVER_TIMEZONE
|
||||
SERVER_OWNER_NAME
|
||||
SERVER_USER_EMAIL
|
||||
SERVER_ADMIN_EMAIL
|
||||
AUTHORIZED_SSH_PUBLIC_KEY
|
||||
SERVER_AUTHORIZED_SSH_PUBKEYS
|
||||
# TRAEFIK SETTINGS
|
||||
DOMAIN_NAME
|
||||
CLOUDFLARE_DNS_API_TOKEN
|
||||
TRAEFIK_CLOUDFLARE_TOKEN
|
||||
# SMTP SETTINGS
|
||||
SMTP_SERVER_USERNAME
|
||||
SMTP_SERVER_PASSWORD
|
||||
@@ -30,11 +29,83 @@ NECESSARY_VARIABLES_LIST=(
|
||||
#NETWORK SETTINGS
|
||||
NETWORK_SUBNET
|
||||
NETWORK_ROUTER_IP
|
||||
HOME_SERVER_IP
|
||||
NETWORK_HOME_SERVER_IP
|
||||
# SERVICES SETTINGS
|
||||
SELECTED_DNS_SERVICE
|
||||
SELECTED_WEB_APPLICATIONS
|
||||
SELECTED_SYSTEM_SERVICES
|
||||
SERVICES_DOMAIN_NAME
|
||||
SERVICES_SELECTED_SYSTEM
|
||||
SERVICES_SELECTED_WEB_APPLICATIONS
|
||||
)
|
||||
|
||||
NECESSARY_COMPUTER_VARIABLES_LIST=(
|
||||
#LIVE TARGET SETTINGS
|
||||
LIVE_TARGET_IP
|
||||
LIVE_TARGET_PASSWD
|
||||
#COMPUTER SETTINGS
|
||||
COMPUTER_LANGUAGE
|
||||
COMPUTER_LOCALE
|
||||
COMPUTER_TIMEZONE
|
||||
COMPUTER_OWNER_NAME
|
||||
COMPUTER_USER_EMAIL
|
||||
COMPUTER_ADMIN_EMAIL
|
||||
COMPUTER_AUTHORIZED_SSH_PUBKEYS
|
||||
#NETWORK SETTINGS
|
||||
NETWORK_SUBNET
|
||||
NETWORK_ROUTER_IP
|
||||
NETWORK_HOME_COMPUTER_IP
|
||||
# SERVICES SETTINGS
|
||||
SERVICES_SELECTED_SYSTEM
|
||||
SERVICES_SELECTED_APPLICATIONS
|
||||
)
|
||||
|
||||
NECESSARY_SERVER_VARIABLES_LIST=(
|
||||
#LIVE TARGET SETTINGS
|
||||
LIVE_TARGET_IP
|
||||
LIVE_TARGET_PASSWD
|
||||
#SERVER SETTINGS
|
||||
SERVER_LANGUAGE
|
||||
SERVER_LOCALE
|
||||
SERVER_TIMEZONE
|
||||
SERVER_OWNER_NAME
|
||||
SERVER_USER_EMAIL
|
||||
SERVER_ADMIN_EMAIL
|
||||
SERVER_AUTHORIZED_SSH_PUBKEYS
|
||||
# TRAEFIK SETTINGS
|
||||
TRAEFIK_CLOUDFLARE_TOKEN
|
||||
# SMTP SETTINGS
|
||||
SMTP_SERVER_USERNAME
|
||||
SMTP_SERVER_PASSWORD
|
||||
SMTP_SERVER_HOST
|
||||
SMTP_SERVER_PORT
|
||||
#NETWORK SETTINGS
|
||||
NETWORK_SUBNET
|
||||
NETWORK_ROUTER_IP
|
||||
NETWORK_HOME_SERVER_IP
|
||||
# SERVICES SETTINGS
|
||||
SERVICES_DOMAIN_NAME
|
||||
SERVICES_SELECTED_DNS
|
||||
SERVICES_SELECTED_SYSTEM
|
||||
SERVICES_SELECTED_WEB_APPLICATIONS
|
||||
)
|
||||
|
||||
NECESSARY_TV_VARIABLES_LIST=(
|
||||
#LIVE TARGET SETTINGS
|
||||
LIVE_TARGET_IP
|
||||
LIVE_TARGET_PASSWD
|
||||
#TV SETTINGS
|
||||
TV_LANGUAGE
|
||||
TV_LOCALE
|
||||
TV_TIMEZONE
|
||||
TV_OWNER_NAME
|
||||
TV_USER_EMAIL
|
||||
TV_ADMIN_EMAIL
|
||||
TV_AUTHORIZED_SSH_PUBKEYS
|
||||
#NETWORK SETTINGS
|
||||
NETWORK_SUBNET
|
||||
NETWORK_ROUTER_IP
|
||||
NETWORK_HOME_TV_IP
|
||||
# SERVICES SETTINGS
|
||||
SERVICES_SELECTED_SYSTEM
|
||||
SERVICES_SELECTED_WEB_APPLICATIONS
|
||||
)
|
||||
|
||||
# Available services
|
||||
@@ -42,6 +113,7 @@ DNS_SERVICES_LIST=(
|
||||
"pi-hole"
|
||||
"adguard"
|
||||
)
|
||||
|
||||
WEB_APPLICATIONS_LIST=(
|
||||
"crafty"
|
||||
"frigate"
|
||||
@@ -56,15 +128,18 @@ WEB_APPLICATIONS_LIST=(
|
||||
"uptime-kuma"
|
||||
"vscodium"
|
||||
)
|
||||
|
||||
SYSTEM_SERVICES_LIST=(
|
||||
"clamav"
|
||||
"virtualization"
|
||||
)
|
||||
|
||||
# Services descriptions
|
||||
DNS_SERVICES_DESCRIPTION=(
|
||||
"Pi-Hole : Simple open-source DNS black hole"
|
||||
"AdGuard : Feature rich DNS service"
|
||||
)
|
||||
|
||||
WEB_APPLICATIONS_DESCRIPTION=(
|
||||
"Crafty : A web-based control panel for Minecraft servers"
|
||||
"Frigate [Home Assistant required] : AI-powered NVR for smart security cameras"
|
||||
@@ -79,6 +154,7 @@ WEB_APPLICATIONS_DESCRIPTION=(
|
||||
"Uptime-Kuma : A fancy self-hosted monitoring tool"
|
||||
"VSCodium : An open-source version of VScode in your web browser"
|
||||
)
|
||||
|
||||
SYSTEM_SERVICES_DESCRIPTION=(
|
||||
"ClamAV : An open-source anti-virus"
|
||||
"Virtualization : Run Virtual Machines (KVM/QEMU) with Libvirt"
|
||||
@@ -162,13 +238,16 @@ necessary_information() {
|
||||
user_input "HOME_SERVER_IP" " Please choose the ip address that your server will use (i.e. any address in the 192.168.1.1/24 range that is not in use.) :" "For example 192.168.1.5" "${IP_REGEX}" "Invalid IP address format."
|
||||
}
|
||||
|
||||
necessary_information_config() {
|
||||
import_variables() {
|
||||
VARIABLES_LIST="${1}"
|
||||
NECESSARY="${2:-false}"
|
||||
|
||||
echo -e "\n\n➡️ Please choose your configuration file :"
|
||||
local CONFIG_PATH="$(gum file)"
|
||||
|
||||
source "${CONFIG_PATH}"
|
||||
local MISSING=0
|
||||
for VAR in "${NECESSARY_VARIABLES_LIST[@]}"; do
|
||||
for VAR in "${VARIABLES_LIST[@]}"; do
|
||||
if [[ -v "${VAR}" && -n "${!VAR}" ]]; then
|
||||
gum style "✅ "${VAR}" imported successfully from the config file"
|
||||
else
|
||||
@@ -985,7 +1064,7 @@ elif [[ "$ACTION_ANSWER" == "[2] 💽 Deploy NixOS on a remote machine with a fi
|
||||
gum style --border normal --margin "1" --padding "1 2" --border-foreground 212 "➡️ On the target host : start the computer and boot into the NixOS iso.
|
||||
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
|
||||
import_variables
|
||||
hierarchy_preparation
|
||||
setup_ssh
|
||||
hardware_detection
|
||||
|
||||
Reference in New Issue
Block a user