Fixed some bugs. Added ClamAV. Removed Coral TPU files and copied them to numbus-server-module. Added records for onlyoffice and whiteboard.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -408,9 +419,16 @@ 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
|
||||
[[ "${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
|
||||
}
|
||||
|
||||
mail_config_generation() {
|
||||
@@ -514,7 +532,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() {
|
||||
@@ -535,7 +553,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
|
||||
}
|
||||
@@ -568,9 +586,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}" \
|
||||
|
||||
Reference in New Issue
Block a user