Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Cleanup
  • Loading branch information
Jelcoo committed May 8, 2026
commit a509fa8634d7619238245e90ea36461ef7028fa5
34 changes: 11 additions & 23 deletions ct/calagopus.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,39 +30,27 @@ function update_script() {
fi

msg_info "Pulling Latest Images"
cd /opt/calagopus
docker compose pull
docker compose -f /opt/calagopus/compose.yml pull
msg_ok "Pulled Latest Images"

msg_info "Restarting Services"
docker compose up -d --remove-orphans
docker compose -f /opt/calagopus/compose.yml up -d --remove-orphans
msg_ok "Restarted Services"

msg_ok "Updated Successfully!"
exit
}

export CALAGOPUS_AIO="yes"
export CALAGOPUS_HEAVY="no"
export CALAGOPUS_NIGHTLY="no"
CHOICES=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALAGOPUS VARIANT" \
--checklist "Select image options (Spacebar = toggle, Enter = confirm):" 14 60 3 \
"aio" "All-in-One (Panel + Wings bundled)" ON \
"heavy" "Heavy (includes extension build tools)" OFF \
"nightly" "Nightly build (not for production)" OFF \
3>&1 1>&2 2>&3)

if ! (whiptail --backtitle "Proxmox VE Helper Scripts" --title "DEPLOYMENT TYPE" --yesno \
"Install as All-in-One (AIO)?\n\nYES — Panel + Wings in a single container (recommended for single-node)\nNO — Standalone Panel only (for multi-node / split-host setups)" \
12 65); then
export CALAGOPUS_AIO="no"
fi

if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "HEAVY VARIANT" --yesno \
"Enable the Heavy variant?\n\nIncludes extension build tools inside the container.\nUse this if you plan to install Calagopus extensions." \
10 65); then
export CALAGOPUS_HEAVY="yes"
fi

if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "NIGHTLY BUILD" --defaultno --yesno \
"Use the Nightly (development) build?\n\nNightly builds contain the latest unreleased changes.\nNot recommended for production environments." \
10 65); then
export CALAGOPUS_NIGHTLY="yes"
fi
[[ $CHOICES == *'"aio"'* ]] && export CALAGOPUS_AIO="yes" || export CALAGOPUS_AIO="no"
[[ $CHOICES == *'"heavy"'* ]] && export CALAGOPUS_HEAVY="yes" || export CALAGOPUS_HEAVY="no"
[[ $CHOICES == *'"nightly"'* ]] && export CALAGOPUS_NIGHTLY="yes" || export CALAGOPUS_NIGHTLY="no"

start
build_container
Expand Down
28 changes: 5 additions & 23 deletions install/calagopus-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ msg_ok "Installed Dependencies"

setup_docker

# Resolve image tag from install options
IMAGE_TAG="latest"
if [[ "${CALAGOPUS_AIO:-yes}" == "yes" ]]; then
if [[ "${CALAGOPUS_NIGHTLY:-no}" == "yes" && "${CALAGOPUS_HEAVY:-no}" == "yes" ]]; then
IMAGE_TAG="nightly-heavy-aio"
Expand All @@ -43,48 +41,32 @@ else
fi
fi

msg_info "Setting Up Calagopus (tag: ${IMAGE_TAG})"
msg_info "Setting Up Calagopus"
mkdir -p /opt/calagopus
cd /opt/calagopus

if [[ "${CALAGOPUS_AIO:-yes}" == "yes" ]]; then
$STD curl -fsSL "https://raw.githubusercontent.com/calagopus/panel/refs/heads/main/compose.aio.yml" -o compose.yml
elif [[ "${CALAGOPUS_HEAVY:-no}" == "yes" ]]; then
$STD curl -fsSL "https://raw.githubusercontent.com/calagopus/panel/refs/heads/main/compose.heavy.yml" -o compose.yml
else
if [[ "${CALAGOPUS_HEAVY:-no}" == "yes" ]]; then
$STD curl -fsSL "https://raw.githubusercontent.com/calagopus/panel/refs/heads/main/compose.heavy.yml" -o compose.yml
else
$STD curl -fsSL "https://raw.githubusercontent.com/calagopus/panel/refs/heads/main/compose.yml" -o compose.yml
fi
$STD curl -fsSL "https://raw.githubusercontent.com/calagopus/panel/refs/heads/main/compose.yml" -o compose.yml
fi

# Inject nightly/heavy image tag override when not already the default for that compose file
if [[ "${CALAGOPUS_NIGHTLY:-no}" == "yes" ]]; then
sed -i "s|:aio\b|:${IMAGE_TAG}|g; s|:latest\b|:${IMAGE_TAG}|g; s|:heavy\b|:${IMAGE_TAG}|g" compose.yml
fi

# Set mandatory encryption key
APP_ENCRYPTION_KEY=$(openssl rand -hex 16)
sed -i "s/CHANGEME/${APP_ENCRYPTION_KEY}/g" compose.yml

# AIO requires a minimal wings config before first start
if [[ "${CALAGOPUS_AIO:-yes}" == "yes" ]]; then
echo 'app_name: Calagopus' >/opt/calagopus/wings-config.yml
fi

[[ "${CALAGOPUS_AIO:-yes}" == "yes" ]] && echo 'app_name: Calagopus' >/opt/calagopus/wings-config.yml
msg_ok "Set Up Calagopus"

msg_info "Starting Calagopus"
cd /opt/calagopus
$STD docker compose up -d
msg_ok "Started Calagopus"

{
echo "Calagopus"
echo "Image tag: ${IMAGE_TAG}"
echo "Encryption key: ${APP_ENCRYPTION_KEY}"
echo "Config: /opt/calagopus/compose.yml"
} >~/calagopus.info

motd_ssh
customize
cleanup_lxc