[Refactor] Cosmos: Upgrade to Debian 13 and modernize with tools.func

Major refactoring to fix mergerfs dependency issues and modernize the installation:

Changes in ct/cosmos.sh:
- Updated from Debian 12 to Debian 13 (Trixie)
- Fixed APP name capitalization: cosmos  Cosmos
- Improved tags formatting: os,docker  cloud;docker

Changes in install/cosmos-install.sh:
- Install mergerfs via apt (available in Debian 13 repos)
  * Automatically handles fuse dependencies
  * Removes need for manual .deb installation
  * No more hardcoded Bullseye package
- Added ca-certificates and openssl (per official Dockerfile)
- Replaced manual Docker installation with setup_docker helper
- Replaced manual GitHub release download with fetch_and_deploy_gh_release
  * Uses prebuild mode with cosmos-cloud-*-amd64.zip pattern
  * Automatic version detection and extraction
  * Proper error handling and retry logic
- Standardized apt-get  apt usage
- Added unzip to dependencies (required by fetch_and_deploy_gh_release)

Benefits:
- Fixes mergerfs dependency errors (issue #TMD44)
- More maintainable (uses helper functions instead of manual curl/unzip)
- Better error handling and version tracking
- Automatic architecture detection via apt
- Matches official Cosmos Dockerfile dependency list
- Future-proof for Debian version changes

Fixes dependency issues where mergerfs failed to install due to missing fuse
package. In Debian 13, mergerfs is available via apt and properly declares its
dependencies, so apt handles everything automatically.
This commit is contained in:
CanbiZ
2025-12-19 13:41:27 +01:00
parent 00137d4441
commit 38a2fec5d3
2 changed files with 14 additions and 28 deletions

View File

@ -5,14 +5,15 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://https://cosmos-cloud.io/
APP="cosmos"
var_tags="${var_tags:-os,docker}"
APP="Cosmos"
var_tags="${var_tags:-cloud;docker}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
header_info "$APP"
variables

View File

@ -14,38 +14,23 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
$STD apt install -y \
ca-certificates \
openssl \
snapraid \
avahi-daemon \
fdisk
fdisk \
mergerfs \
unzip
msg_ok "Installed Dependencies"
msg_info "Install mergerfs"
MERGERFS_VERSION="2.40.2"
curl -fsSL "https://github.com/trapexit/mergerfs/releases/download/${MERGERFS_VERSION}/mergerfs_${MERGERFS_VERSION}.debian-bullseye_amd64.deb" -o "mergerfs_${MERGERFS_VERSION}.debian-bullseye_amd64.deb"
$STD dpkg -i "mergerfs_${MERGERFS_VERSION}.debian-bullseye_amd64.deb" || $STD apt-get install -f -y
rm "mergerfs_${MERGERFS_VERSION}.debian-bullseye_amd64.deb"
msg_ok "Installed mergerfs"
setup_docker
fetch_and_deploy_gh_release "cosmos" "azukaar/Cosmos-Server" "prebuild" "latest" "/opt/cosmos" "cosmos-cloud-*-amd64.zip"
msg_info "Install Docker"
curl -fsSL https://get.docker.com -o get-docker.sh
$STD sh get-docker.sh
rm get-docker.sh
msg_ok "Installed Docker"
msg_info "Install Cosmos"
mkdir -p /opt/cosmos
LATEST_RELEASE=$(curl -fsSL https://api.github.com/repos/azukaar/Cosmos-Server/releases/latest | grep "tag_name" | cut -d '"' -f 4)
ZIP_FILE="cosmos-cloud-${LATEST_RELEASE#v}-amd64.zip"
curl -fsSL "https://github.com/azukaar/Cosmos-Server/releases/download/${LATEST_RELEASE}/${ZIP_FILE}" -o "/opt/cosmos/${ZIP_FILE}"
msg_info "Setting up Cosmos"
cd /opt/cosmos
$STD unzip -o -q "${ZIP_FILE}"
LATEST_RELEASE_NO_V=${LATEST_RELEASE#v}
mv /opt/cosmos/cosmos-cloud-${LATEST_RELEASE_NO_V}/* /opt/cosmos/
rmdir /opt/cosmos/cosmos-cloud-${LATEST_RELEASE_NO_V}
chmod +x /opt/cosmos/cosmos
rm -f "/opt/cosmos/cosmos-cloud-${LATEST_RELEASE#v}-amd64.zip"
msg_ok "Installed Cosmos"
msg_ok "Set up Cosmos"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/cosmos.service