misc
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#TARGET SETTINGS
|
||||
TARGET_HOST="192.168.1.10"
|
||||
TARGET_SSH_PUBLIC_KEY="ssh-ed25519 AAAAoefzefpoipoeCEZJCPEACPAcjapjcpajepcjAPJECJPEJAPJAZ yours@yourdomain.com"
|
||||
# TRAEFIK SETTINGS
|
||||
DOMAIN_NAME="yourdomain.com"
|
||||
DOMAIN_EMAIL_ADDRESS="your-mail@yourdomain.com"
|
||||
DOMAIN_CF_DNS_API_TOKEN="yourToken"
|
||||
#SMTP SETTINGS
|
||||
SENDER_EMAIL_ADDRESS="youraddress@gmail.com"
|
||||
SENDER_EMAIL_ADDRESS_PASSWORD="emrp raps vzoi vnoe"
|
||||
SENDER_EMAIL_DOMAIN="smtp.yourdomain.com"
|
||||
SENDER_EMAIL_PORT="587"
|
||||
#NETWORK SETTINGS
|
||||
NETWORK_HOME_ROUTER_SUBNET="192.168.1.0/24"
|
||||
NETWORK_HOME_ROUTER_IP="192.168.1.1"
|
||||
NETWORK_HOME_SERVER_IP="192.168.1.5"
|
||||
# SERVICE SETTINGS
|
||||
SELECTED_SERVICES=("frigate" "home-assistant")
|
||||
# DISK SETTINGS
|
||||
BOOT_DISKS_ID=("/dev/disk/by-id/nvme001-dfzpjvp")
|
||||
DATA_DISKS_ID=("/dev/disk/by-id/sata-barracuda-veojapoj")
|
||||
DATA_DISKS_TYPE=("HDD")
|
||||
SPINDOWN_DISKS_ID=("/dev/disk/by-id/sata-barracuda-veojapoj")
|
||||
CONTENT_DISK_NUMBER=2
|
||||
PARITY_DISK_NUMBER=2
|
||||
@@ -0,0 +1,220 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p gum fastfetch xkcdpass sops ssh-to-age age sshpass envsubst pciutils usbutils mosquitto
|
||||
|
||||
networking() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${NETWORKING_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " 🏠 Change the home router subnet" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🌐 Change the home router IP address" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🖥️ Change the server's IP address" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🌍 Change the domain name" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
backup() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${BACKUP_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " 🕣 Change the backup time" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 💾 Backup all data to a ssh remote" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 💿 Backup all data to a local folder" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
services() {
|
||||
echo "Some future logic here"
|
||||
}
|
||||
|
||||
devices() {
|
||||
echo "Some future logic here"
|
||||
}
|
||||
|
||||
|
||||
disks() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${DISKS_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " ➕ Add or remove a boot disk" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " ➕ Add or remove data disk(s)" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🔄 Replace a boot disk" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🔄 Replace a data disk" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
health() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${SERVER_HEALTH_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " 🩺 Check disk(s) health" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " ⛑️ Check service(s) health" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🌐 Check connectivity" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
email() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${EMAIL_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " ⚙️ Change the server's email SMTP settings" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 📧 Change your personal email" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
passwords() {
|
||||
SELECTED_SUBACTION=$(gum choose --header "Choose a setting to change:" "${PASSWORD_SETTINGS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_SUBACTION" = " 👁️ Display the server's configuration credentials" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🔧 Change the numbus-admin's password" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " 🔑 Add or remove SSH keys" ]]; then
|
||||
echo "Some future logic here"
|
||||
elif [[ "$SELECTED_SUBACTION" = " ⚙️ Change Cloudflare API token" ]]; then
|
||||
echo "Some future logic here"
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
configuration_export() {
|
||||
echo "Some future logic here"
|
||||
}
|
||||
|
||||
### --> Main logic
|
||||
set -euo pipefail
|
||||
|
||||
fastfetch --logo nixos --structure ''
|
||||
|
||||
cat <<EOF
|
||||
|
||||
██████ █████ █████
|
||||
▒▒██████ ▒▒███ ▒▒███
|
||||
▒███▒███ ▒███ █████ ████ █████████████ ▒███████ █████ ████ █████
|
||||
▒███▒▒███▒███ ▒▒███ ▒███ ▒▒███▒▒███▒▒███ ▒███▒▒███▒▒███ ▒███ ███▒▒
|
||||
▒███ ▒▒██████ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒▒█████
|
||||
▒███ ▒▒█████ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒▒▒▒███
|
||||
█████ ▒▒█████ ▒▒████████ █████▒███ █████ ████████ ▒▒████████ ██████
|
||||
▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒
|
||||
|
||||
█████████
|
||||
███▒▒▒▒▒███
|
||||
▒███ ▒▒▒ ██████ ████████ █████ █████ ██████ ████████
|
||||
▒▒█████████ ███▒▒███▒▒███▒▒███▒▒███ ▒▒███ ███▒▒███▒▒███▒▒███
|
||||
▒▒▒▒▒▒▒▒███▒███████ ▒███ ▒▒▒ ▒███ ▒███ ▒███████ ▒███ ▒▒▒
|
||||
███ ▒███▒███▒▒▒ ▒███ ▒▒███ ███ ▒███▒▒▒ ▒███
|
||||
▒▒█████████ ▒▒██████ █████ ▒▒█████ ▒▒██████ █████
|
||||
▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒
|
||||
|
||||
EOF
|
||||
|
||||
sleep 1
|
||||
|
||||
source /etc/numbus-server/numbus-server.conf
|
||||
|
||||
gum confirm "\n\n 🚀 Welcome to the Numbus-Server administration interface. Here,
|
||||
you can tweak the settings of your homelab. Do you want to continue?" \
|
||||
|| { echo " ❌ Aborting as requested."; exit 1; }
|
||||
|
||||
ACTIONS_LIST=(
|
||||
" 🛜 Update networking settings" \
|
||||
" 💾 Update backup settings" \
|
||||
" 📱 Add or remove services" \ # No further options
|
||||
" 🧩 Add or remove devices" \ # No further options
|
||||
" 💿 Change disks configuration" \
|
||||
" ⛑️ Check server health" \
|
||||
" 📧 Change email settings" \
|
||||
" 🔐 Passwords and keys management" \
|
||||
" ↥ Export current configuration to a git server" \ # No further options
|
||||
)
|
||||
|
||||
NETWORKING_SETTINGS_LIST=(
|
||||
" 🏠 Change the home router subnet" \
|
||||
" 🌐 Change the home router IP address" \
|
||||
" 🖥️ Change the server's IP address" \
|
||||
" 🌍 Change the domain name" \
|
||||
)
|
||||
|
||||
BACKUP_SETTINGS_LIST=(
|
||||
" 🕣 Change the backup time" \
|
||||
" 💾 Backup all data to a ssh remote" \
|
||||
" 💿 Backup all data to a local folder" \
|
||||
)
|
||||
|
||||
DISKS_SETTINGS_LIST=(
|
||||
" ➕ Add or remove a boot disk" \
|
||||
" ➕ Add or remove data disk(s)" \
|
||||
" 🔄 Replace a boot disk" \
|
||||
" 🔄 Replace a data disk" \
|
||||
)
|
||||
|
||||
SERVER_HEALTH_SETTINGS_LIST=(
|
||||
" 🩺 Check disk(s) health"
|
||||
" ⛑️ Check service(s) health"
|
||||
" 🌐 Check connectivity"
|
||||
)
|
||||
|
||||
EMAIL_SETTINGS_LIST=(
|
||||
" ⚙️ Change the server's email SMTP settings"
|
||||
" 📧 Change your personal email"
|
||||
)
|
||||
|
||||
PASSWORD_SETTINGS_LIST=(
|
||||
" 👁️ Display the server's configuration credentials"
|
||||
" 🔧 Change the numbus-admin's password"
|
||||
" 🔑 Add or remove SSH keys"
|
||||
" ⚙️ Change Cloudflare API token"
|
||||
)
|
||||
|
||||
SELECTED_ACTION=$(gum choose --header "Choose a setting to change:" "${ACTIONS_LIST[@]}")
|
||||
|
||||
if [[ "$SELECTED_ACTION" = " 🛜 Update networking settings" ]]; then
|
||||
networking
|
||||
elif [[ "$SELECTED_ACTION" = " 💾 Update backup settings" ]]; then
|
||||
backup
|
||||
elif [[ "$SELECTED_ACTION" = " 📱 Add or remove services" ]]; then
|
||||
services
|
||||
elif [[ "$SELECTED_ACTION" = " 🧩 Add or remove devices" ]]; then
|
||||
devices
|
||||
elif [[ "$SELECTED_ACTION" = " 💿 Change disks configuration" ]]; then
|
||||
disks
|
||||
elif [[ "$SELECTED_ACTION" = " ⛑️ Check server health" ]]; then
|
||||
health
|
||||
elif [[ "$SELECTED_ACTION" = " 📧 Change email settings" ]]; then
|
||||
email
|
||||
elif [[ "$SELECTED_ACTION" = " 🔐 Passwords and keys management" ]]; then
|
||||
passwords
|
||||
elif [[ "$SELECTED_ACTION" = " ↥ Export current configuration to a git server" ]]; then
|
||||
configuration_export
|
||||
else
|
||||
echo -e "\n\n ❌ Unexpected bug. Please contact the developer. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
### Main logic <--
|
||||
Reference in New Issue
Block a user