2025-01-10 23:19:36 +00:00
#!/usr/bin/env bash
2025-01-10 23:50:38 +00:00
source <( curl -s https://raw.githubusercontent.com/fwiegerinck/ProxmoxVE/refs/heads/step-ca/misc/build.func)
2025-01-10 23:19:36 +00:00
# Copyright (c) 2021-2025 community-scripts ORG
# Author: FWiegerinck
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/smallstep/certificates
# App Default Values
2025-01-11 00:00:40 +00:00
APP = "Alpine-Step-CA"
var_tags = "alpine;step-ca"
2025-01-10 23:19:36 +00:00
var_cpu = "1"
var_ram = "512"
var_disk = "1024"
var_os = "alpine"
var_version = "3.20"
var_unprivileged = "0"
2025-01-11 22:19:50 +00:00
# CA default values
DEFAULT_CA_NAME = "HomeLab"
2025-01-10 23:19:36 +00:00
# App Output & Base Settings
header_info " $APP "
base_settings
# Core
variables
color
catch_errors
function update_script( ) {
if ! apk -e info newt >/dev/null 2>& 1; then
apk add -q newt
fi
while true; do
CHOICE = $(
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 1 \
"1" "Check for Step CA Updates" 3>& 2 2>& 1 1>& 3
)
exit_status = $?
if [ $exit_status = = 1 ] ; then
clear
exit-script
fi
header_info
case $CHOICE in
1)
apk update && apk upgrade
exit
; ;
esac
done
}
2025-01-13 23:14:55 +00:00
function ca_settings( ) {
2025-01-11 22:19:50 +00:00
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Configure Certificate Authority" "Now that we defined the container we need to configure the certificate authority." 8 58
if CA_NAME = $( whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Name of certificate authority" 8 58 " $DEFAULT_CA_NAME " --title "Configure Certificate Authority" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $CA_NAME " ] ; then
CA_NAME = " $DEFAULT_CA_NAME "
fi
else
exit
fi
2025-01-13 23:14:55 +00:00
CA_DNS_ENTRIES = ( )
2025-01-11 22:19:50 +00:00
DEFAULT_CA_DNS_ENTRY = " ${ HN } .local "
if CA_DNS_ENTRY = $( whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "DNS entry of Certificate Authority" 8 58 " $DEFAULT_CA_DNS_ENTRY " --title "Configure Certificate Authority" 3>& 1 1>& 2 2>& 3) ; then
if [ -z " $CA_DNS_ENTRY " ] ; then
2025-01-14 07:44:10 +00:00
CA_DNS_ENTRIES += ( " --dns= $DEFAULT_CA_DNS_ENTRY " )
2025-01-11 22:19:50 +00:00
else
2025-01-14 07:44:10 +00:00
CA_DNS_ENTRIES += ( " --dns= $CA_DNS_ENTRY " )
2025-01-11 22:19:50 +00:00
fi
else
exit
fi
while whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "Configure Certificate Authority" --yesno "Do you want to add another DNS entry?" 10 72 ; do
if CA_DNS_ENTRY = $( whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "DNS entry of Certificate Authority" 8 58 "" --title "Configure Certificate Authority" 3>& 1 1>& 2 2>& 3) ; then
if [ -n " $CA_DNS_ENTRY " ] ; then
2025-01-14 07:44:10 +00:00
CA_DNS_ENTRIES += ( " --dns= $CA_DNS_ENTRY " )
2025-01-11 22:19:50 +00:00
fi
fi
done
2025-01-13 23:14:55 +00:00
if [ " $VERBOSE " = "yes" ] ; then
echo -e " ${ DEFAULT } ${ BOLD } ${ DGN } Name of CA: ${ BGN } $CA_NAME ${ CL } "
echo -e " ${ DEFAULT } ${ BOLD } ${ DGN } DNS entries of CA: ${ CL } "
for DNS_ENTRY in ${ CA_DNS_ENTRIES [*] } ; do
echo -e " - $DNS_ENTRY "
done
fi
2025-01-11 22:19:50 +00:00
export CA_NAME
2025-01-13 23:23:06 +00:00
export CA_DNS = ${ CA_DNS_ENTRIES [*] } ;
2025-01-11 22:19:50 +00:00
}
2025-01-10 23:19:36 +00:00
start
2025-01-13 23:18:24 +00:00
ca_settings
2025-01-10 23:19:36 +00:00
build_container
description
msg_ok "Completed Successfully!\n"
echo -e " ${ CREATING } ${ GN } ${ APP } setup has been successfully initialized! ${ CL } "