wip bumping version solved it. well...

This commit is contained in:
SansGuidon 2025-04-29 23:51:23 +02:00
parent 87d0c755be
commit fdc40da561
6 changed files with 37 additions and 29 deletions

View File

@ -3,16 +3,15 @@
"title": "slskd", "title": "slskd",
"author": "Morgan", "author": "Morgan",
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG.md",
"tagline": "A modern client-server application for the Soulseek file-sharing network.", "tagline": "A modern client-server application for the Soulseek file-sharing network.",
"version": "1.0.3", "version": "1.0.3",
"manifestVersion": 2,
"minBoxVersion": "8.3.1",
"healthCheckPath": "/health", "healthCheckPath": "/health",
"httpPort": 5030, "httpPort": 5030,
"addons": { "addons": {
"localstorage": {} "localstorage": {}
}, },
"manifestVersion": 2,
"minBoxVersion": "8.3.1",
"website": "https://zoemp.be/slskd", "website": "https://zoemp.be/slskd",
"contactEmail": "morgan@zoemp.be", "contactEmail": "morgan@zoemp.be",
"icon": "file://logo.png", "icon": "file://logo.png",

View File

@ -1,4 +1,4 @@
# syntax=docker/dockerfile:1 # 1) Télécharger et unzipper slskd
FROM debian:bookworm-slim AS downloader FROM debian:bookworm-slim AS downloader
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
@ -16,22 +16,23 @@ RUN TAG=$(curl -fsSL https://api.github.com/repos/slskd/slskd/releases/latest \
&& curl -fsSL "$URL" -o slskd.zip \ && curl -fsSL "$URL" -o slskd.zip \
&& unzip slskd.zip && unzip slskd.zip
# 2) Image finale
FROM debian:bookworm-slim FROM debian:bookworm-slim
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
tini jq ca-certificates gosu libstdc++6 \ tini jq ca-certificates gosu libstdc++6 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# créer les dossiers et l'utilisateur cloudron # Créer les répertoires code, data et cache
RUN mkdir -p /app/code /app/data /run/slskd/cache \ RUN mkdir -p /app/code /app/data /run/slskd/cache \
&& useradd -u 1000 -m -d /app/data -s /bin/bash cloudron \ && useradd -u 1000 -m -d /app/data -s /bin/bash cloudron \
&& chmod -R 777 /app/data /run/slskd/cache && chown -R cloudron:cloudron /app/data /run/slskd/cache
# copier binaire + UI # Copier binaire + UI statique
COPY --from=downloader /tmp/slskd /app/code/slskd COPY --from=downloader /tmp/slskd /app/code/slskd
COPY --from=downloader /tmp/wwwroot /app/code/wwwroot COPY --from=downloader /tmp/wwwroot /app/code/wwwroot
# config exemple & script de démarrage # Copier config example et script de démarrage
COPY slskd.yml.example /app/code/slskd.yml.example COPY slskd.yml.example /app/code/slskd.yml.example
COPY start.sh /app/code/start.sh COPY start.sh /app/code/start.sh

View File

@ -1 +1 @@
1.0.3 1.0.4

View File

@ -3,24 +3,22 @@ set -xeuo pipefail
VERSION=$(<VERSION) VERSION=$(<VERSION)
IMAGE="dr.zoemp.be/slskd:${VERSION}" IMAGE="dr.zoemp.be/slskd:${VERSION}"
LOCATION="slskd" # sous-domaine ⇒ slskd.ton-domaine.be LOCATION="slskd"
FQDN="${LOCATION}.${CLOUDRON_APP_DOMAIN:-zoemp.be}" FQDN="${LOCATION}.${CLOUDRON_APP_DOMAIN:-zoemp.be}"
# 1) build + push # 1) Build & push
docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron . docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron .
docker push "${IMAGE}" docker push "${IMAGE}"
# 2) install ou update sur Cloudron # 2) Install ou update sur Cloudron
if cloudron status --app "${FQDN}" &>/dev/null; then if cloudron status --app "${FQDN}" &>/dev/null; then
echo "🔄 Mise à jour de ${FQDN}${IMAGE}" echo "🔄 Mise à jour de ${FQDN}${IMAGE}"
cloudron update \ cloudron update --app "${FQDN}" --image "${IMAGE}"
--image "${IMAGE}" \
--app "${FQDN}"
else else
echo "🚀 Installation de lapp sur ${FQDN}" echo "🚀 Installation de org.zoemp.slskd sur ${FQDN}"
cloudron install \ cloudron install \
--image "${IMAGE}" \ --image "${IMAGE}" \
--location "${LOCATION}" \ --location "${LOCATION}" \
"${CLOUDRON_MANIFEST_ID:-slskd.zoemp.be}" org.zoemp.slskd
fi fi

18
dev.sh
View File

@ -2,15 +2,21 @@
set -xeuo pipefail set -xeuo pipefail
VERSION=$(<VERSION) VERSION=$(<VERSION)
IMAGE=dr.zoemp.be/slskd:${VERSION} IMAGE="dr.zoemp.be/slskd:${VERSION}"
# build # Préparation du dossier data (config + cache)
docker build --platform linux/amd64 -t ${IMAGE} -f Dockerfile.cloudron . mkdir -p data/cache
chmod 770 data data/cache
# run localement en mappant ./data # Build
docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron .
# Run en mode dev
docker run --rm -it \ docker run --rm -it \
--platform linux/amd64 \ --platform linux/amd64 \
-v "$(pwd)/data:/app/data" \ -v "$(pwd)/data":/app/data \
-v "$(pwd)/data/cache":/run/slskd/cache \
-p 8080:5030 \ -p 8080:5030 \
${IMAGE} -e DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache \
"${IMAGE}"

View File

@ -1,16 +1,20 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -xeuo pipefail set -xeuo pipefail
# 0) on s'assure que /app/data et /run/slskd/cache sont écrits par cloudron chown -R cloudron:cloudron /app/data
chmod -R 777 /app/data /run/slskd/cache chmod -R 755 /app/data
ls -ld /app/data
stat /app/data
# 1) répertoire d'extraction pour dotnet # 1) Préparer le cache d'extraction .NET
export DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache export DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache
mkdir -p "${DOTNET_BUNDLE_EXTRACT_BASE_DIR}"
chown cloudron:cloudron "${DOTNET_BUNDLE_EXTRACT_BASE_DIR}"
# 2) invariant globalization # 2) Mode globalization invariant
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
# 3) si la conf n'existe pas, on la copie depuis l'exemple # 3) Copier la config si nécessaire
if [ ! -f /app/data/slskd.yml ]; then if [ ! -f /app/data/slskd.yml ]; then
echo " Copie de la config d'exemple dans /app/data/slskd.yml" echo " Copie de la config d'exemple dans /app/data/slskd.yml"
cp /app/code/slskd.yml.example /app/data/slskd.yml cp /app/code/slskd.yml.example /app/data/slskd.yml
@ -19,7 +23,7 @@ else
echo " Utilisation de /app/data/slskd.yml existant" echo " Utilisation de /app/data/slskd.yml existant"
fi fi
# 4) on lance en user cloudron # 4) Lancer slskd sous l'utilisateur cloudron
exec gosu cloudron /app/code/slskd \ exec gosu cloudron /app/code/slskd \
--config /app/data/slskd.yml \ --config /app/data/slskd.yml \
--http-port "${SLSKD_HTTP_PORT:-5030}" \ --http-port "${SLSKD_HTTP_PORT:-5030}" \