From 48974e6ea4174a551725a238ba69c39b3d991ce9 Mon Sep 17 00:00:00 2001 From: christos Date: Thu, 26 Dec 2024 14:04:48 +0200 Subject: [PATCH] update a lot of things --- ct/semaphore.sh | 66 +++++++++++------------------------- install/semaphore-install.sh | 25 +++++++------- json/semaphore.json | 4 +-- 3 files changed, 35 insertions(+), 60 deletions(-) diff --git a/ct/semaphore.sh b/ct/semaphore.sh index 4ae93bb1..f1131d63 100644 --- a/ct/semaphore.sh +++ b/ct/semaphore.sh @@ -4,64 +4,37 @@ source <(curl -s https://raw.githubusercontent.com/kristocopani/ProxmoxVE/build/ # Author: kristocopani # License: MIT # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://semaphoreui.com/ -function header_info { -clear -cat <<"EOF" - _____ __ - / ___/___ ____ ___ ____ _____ / /_ ____ ________ - \__ \/ _ \/ __ `__ \/ __ `/ __ \/ __ \/ __ \/ ___/ _ \ - ___/ / __/ / / / / / /_/ / /_/ / / / / /_/ / / / __/ -/____/\___/_/ /_/ /_/\__,_/ .___/_/ /_/\____/_/ \___/ - /_/ - -EOF -} -header_info -echo -e "Loading..." +# App Default Values APP="Semaphore" -var_disk="4" +var_tags="Semaphore" var_cpu="2" var_ram="2048" +var_disk="4" var_os="debian" var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core variables color catch_errors -function default_settings() { - CT_TYPE="1" - PW="" - CT_ID=$NEXTID - HN=$NSAPP - DISK_SIZE="$var_disk" - CORE_COUNT="$var_cpu" - RAM_SIZE="$var_ram" - BRG="vmbr0" - NET="dhcp" - GATE="" - APT_CACHER="" - APT_CACHER_IP="" - DISABLEIP6="no" - MTU="" - SD="" - NS="" - MAC="" - VLAN="" - SSH="no" - VERB="no" - echo_default -} function update_script() { -header_info -check_container_storage -check_container_resources + header_info + check_container_storage + check_container_resources if [[ ! -f /etc/systemd/system/semaphore.service ]]; then msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + RELEASE=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then msg_info "Stopping Service" systemctl stop semaphore @@ -70,7 +43,7 @@ check_container_resources msg_info "Updating ${APP} to v${RELEASE}" cd /opt wget -q https://github.com/semaphoreui/semaphore/releases/download/v${RELEASE}/semaphore_${RELEASE}_linux_amd64.deb - dpkg -i semaphore_${RELEASE}_linux_amd64.deb &>/dev/null + dpkg -i semaphore_${RELEASE}_linux_amd64.deb &>/dev/null echo "${RELEASE}" >"/opt/${APP}_version.txt" msg_ok "Updated ${APP} to v${RELEASE}" @@ -79,7 +52,7 @@ check_container_resources msg_ok "Started Service" msg_info "Cleaning up" - rm -rf /opt/semaphore_${RELEASE}_linux_amd64.deb + rm -rf /opt/semaphore_${RELEASE}_linux_amd64.deb msg_ok "Cleaned" msg_ok "Updated Successfully" else @@ -93,5 +66,6 @@ build_container description msg_ok "Completed Successfully!\n" -echo -e "${APP} server should be reachable by connecting to the following server. - ${BL}http://${IP}:3000${CL} \n" \ No newline at end of file +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" \ No newline at end of file diff --git a/install/semaphore-install.sh b/install/semaphore-install.sh index c44f0213..2997bca3 100644 --- a/install/semaphore-install.sh +++ b/install/semaphore-install.sh @@ -24,35 +24,36 @@ UBUNTU_CODENAME=jammy wget -qO- "https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" | gpg --dearmour >/usr/share/keyrings/ansible-archive-keyring.gpg $STD echo "deb [signed-by=/usr/share/keyrings/ansible-archive-keyring.gpg] http://ppa.launchpad.net/ansible/ansible/ubuntu $UBUNTU_CODENAME main" | tee /etc/apt/sources.list.d/ansible.list $STD apt update -$STD apt install -y \ -ansible +$STD apt install -y ansible msg_ok "Installed Dependencies" -msg_info "Installing Semaphore" +msg_info "Setup Semaphore" RELEASE=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') mkdir -p /opt/semaphore cd /opt/semaphore wget -q https://github.com/semaphoreui/semaphore/releases/download/v${RELEASE}/semaphore_${RELEASE}_linux_amd64.deb $STD dpkg -i semaphore_${RELEASE}_linux_amd64.deb -rm -rf semaphore_${RELEASE}_linux_amd64.deb -json_cookie_hash=$(head -c32 /dev/urandom | base64) -json_cookie_encryption=$(head -c32 /dev/urandom | base64) -json_access_key_encryption=$(head -c32 /dev/urandom | base64) +SEM_HASH=$(openssl rand -base64 32) +SEM_ENCRYPTION=$(openssl rand -base64 32) +SEM_KEY=$(openssl rand -base64 32) +SEM_PW=$(openssl rand -base64 8) cat </opt/semaphore/config.json { "bolt": { "host": "/opt/semaphore/semaphore_db.bolt" }, "tmp_path": "/opt/semaphore/tmp", - "cookie_hash": "${json_cookie_hash}", - "cookie_encryption": "${json_cookie_encryption}", - "access_key_encryption": "${json_access_key_encryption}" + "cookie_hash": "${SEM_HASH}", + "cookie_encryption": "${SEM_ENCRYPTION}", + "access_key_encryption": "${SEM_KEY}" } EOF -$STD semaphore user add --admin --login admin --email admin@example.com --name Administrator --password admin --config /opt/semaphore/config.json + +$STD semaphore user add --admin --login admin --email admin@helper-scripts.com --name Administrator --password ${SEM_PW} --config /opt/semaphore/config.json +echo "${SEM_PW}" >~./semaphore.creds echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" -msg_ok "Installed Semaphore" +msg_ok "Setup Semaphore" msg_info "Creating Service" cat </etc/systemd/system/semaphore.service diff --git a/json/semaphore.json b/json/semaphore.json index 36a9e1f9..db98b242 100644 --- a/json/semaphore.json +++ b/json/semaphore.json @@ -4,7 +4,7 @@ "categories": [ 11 ], - "date_created": "2024-11-29", + "date_created": "2024-12-26", "type": "ct", "updateable": true, "privileged": false, @@ -16,7 +16,7 @@ "install_methods": [ { "type": "default", - "script": "/ct/semaphore.sh", + "script": "ct/semaphore.sh", "resources": { "cpu": 2, "ram": 2048,