mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-12-20 05:56:24 +01:00
[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:
@ -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
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://https://cosmos-cloud.io/
|
# Source: https://https://cosmos-cloud.io/
|
||||||
|
|
||||||
APP="cosmos"
|
APP="Cosmos"
|
||||||
var_tags="${var_tags:-os,docker}"
|
var_tags="${var_tags:-cloud;docker}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-13}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
var_fuse="${var_fuse:-yes}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
|
|||||||
@ -14,38 +14,23 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt install -y \
|
||||||
|
ca-certificates \
|
||||||
|
openssl \
|
||||||
snapraid \
|
snapraid \
|
||||||
avahi-daemon \
|
avahi-daemon \
|
||||||
fdisk
|
fdisk \
|
||||||
|
mergerfs \
|
||||||
|
unzip
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Install mergerfs"
|
setup_docker
|
||||||
MERGERFS_VERSION="2.40.2"
|
fetch_and_deploy_gh_release "cosmos" "azukaar/Cosmos-Server" "prebuild" "latest" "/opt/cosmos" "cosmos-cloud-*-amd64.zip"
|
||||||
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"
|
|
||||||
|
|
||||||
msg_info "Install Docker"
|
msg_info "Setting up Cosmos"
|
||||||
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}"
|
|
||||||
cd /opt/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
|
chmod +x /opt/cosmos/cosmos
|
||||||
rm -f "/opt/cosmos/cosmos-cloud-${LATEST_RELEASE#v}-amd64.zip"
|
msg_ok "Set up Cosmos"
|
||||||
msg_ok "Installed Cosmos"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/cosmos.service
|
cat <<EOF >/etc/systemd/system/cosmos.service
|
||||||
|
|||||||
Reference in New Issue
Block a user