wip: slskd perm runtime still nok
This commit is contained in:
parent
84f386a358
commit
87d0c755be
@ -5,13 +5,14 @@
|
|||||||
"description": "file://DESCRIPTION.md",
|
"description": "file://DESCRIPTION.md",
|
||||||
"changelog": "file://CHANGELOG.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.0",
|
"version": "1.0.3",
|
||||||
|
"manifestVersion": 2,
|
||||||
|
"minBoxVersion": "8.3.1",
|
||||||
"healthCheckPath": "/health",
|
"healthCheckPath": "/health",
|
||||||
"httpPort": 5030,
|
"httpPort": 5030,
|
||||||
"addons": {
|
"addons": {
|
||||||
"localstorage": {}
|
"localstorage": {}
|
||||||
},
|
},
|
||||||
"manifestVersion": 2,
|
|
||||||
"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",
|
||||||
@ -19,7 +20,6 @@
|
|||||||
"file sharing",
|
"file sharing",
|
||||||
"chat",
|
"chat",
|
||||||
"music"
|
"music"
|
||||||
],
|
]
|
||||||
"minBoxVersion": "8.3.1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,14 +21,23 @@ 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/*
|
||||||
RUN mkdir -p /app/code /app/data /run/slskd \
|
|
||||||
&& useradd -u 1000 -m -d /app/data -s /bin/bash cloudron
|
# créer les dossiers et l'utilisateur cloudron
|
||||||
|
RUN mkdir -p /app/code /app/data /run/slskd/cache \
|
||||||
|
&& useradd -u 1000 -m -d /app/data -s /bin/bash cloudron \
|
||||||
|
&& chmod -R 777 /app/data /run/slskd/cache
|
||||||
|
|
||||||
|
# copier binaire + UI
|
||||||
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
|
||||||
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
|
||||||
|
|
||||||
RUN chmod +x /app/code/slskd /app/code/start.sh \
|
RUN chmod +x /app/code/slskd /app/code/start.sh \
|
||||||
&& chown -R cloudron:cloudron /app/code /app/data /run/slskd
|
&& chown -R cloudron:cloudron /app/code
|
||||||
|
|
||||||
WORKDIR /app/code
|
WORKDIR /app/code
|
||||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||||
CMD ["./start.sh"]
|
CMD ["./start.sh"]
|
||||||
|
26
build.sh
26
build.sh
@ -1,8 +1,26 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -xeuo pipefail
|
set -xeuo pipefail
|
||||||
|
|
||||||
VERSION=$(cat VERSION)
|
VERSION=$(<VERSION)
|
||||||
docker build --platform linux/amd64 -t dr.zoemp.be/slskd:${VERSION} -f Dockerfile.cloudron .
|
IMAGE="dr.zoemp.be/slskd:${VERSION}"
|
||||||
docker push dr.zoemp.be/slskd:${VERSION}
|
LOCATION="slskd" # sous-domaine ⇒ slskd.ton-domaine.be
|
||||||
cloudron update --image dr.zoemp.be/slskd:${VERSION} --app slskd
|
FQDN="${LOCATION}.${CLOUDRON_APP_DOMAIN:-zoemp.be}"
|
||||||
|
|
||||||
|
# 1) build + push
|
||||||
|
docker build --platform linux/amd64 -t "${IMAGE}" -f Dockerfile.cloudron .
|
||||||
|
docker push "${IMAGE}"
|
||||||
|
|
||||||
|
# 2) install ou update sur Cloudron
|
||||||
|
if cloudron status --app "${FQDN}" &>/dev/null; then
|
||||||
|
echo "🔄 Mise à jour de ${FQDN} → ${IMAGE}"
|
||||||
|
cloudron update \
|
||||||
|
--image "${IMAGE}" \
|
||||||
|
--app "${FQDN}"
|
||||||
|
else
|
||||||
|
echo "🚀 Installation de l’app sur ${FQDN}"
|
||||||
|
cloudron install \
|
||||||
|
--image "${IMAGE}" \
|
||||||
|
--location "${LOCATION}" \
|
||||||
|
"${CLOUDRON_MANIFEST_ID:-slskd.zoemp.be}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
32
bump_version.sh
Executable file
32
bump_version.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -xeuo pipefail
|
||||||
|
|
||||||
|
# Lit la version courante
|
||||||
|
VERSION=$(cat VERSION)
|
||||||
|
|
||||||
|
# Sépare en MAJOR.MINOR.PATCH
|
||||||
|
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
|
||||||
|
|
||||||
|
case "${1:-}" in
|
||||||
|
major)
|
||||||
|
((MAJOR++))
|
||||||
|
MINOR=0
|
||||||
|
PATCH=0
|
||||||
|
;;
|
||||||
|
minor)
|
||||||
|
((MINOR++))
|
||||||
|
PATCH=0
|
||||||
|
;;
|
||||||
|
patch)
|
||||||
|
((PATCH++))
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {major|minor|patch}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
||||||
|
echo "$NEW_VERSION" > VERSION
|
||||||
|
echo "Version bumpée en $NEW_VERSION"
|
||||||
|
|
11
dev.sh
11
dev.sh
@ -1,13 +1,16 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -xeuo pipefail
|
set -xeuo pipefail
|
||||||
|
|
||||||
VERSION=$(cat VERSION)
|
VERSION=$(<VERSION)
|
||||||
docker build --platform linux/amd64 -t dr.zoemp.be/slskd:${VERSION} -f Dockerfile.cloudron .
|
IMAGE=dr.zoemp.be/slskd:${VERSION}
|
||||||
|
|
||||||
# Montez ./data qui doit contenir VOTRE slskd.yml
|
# build
|
||||||
|
docker build --platform linux/amd64 -t ${IMAGE} -f Dockerfile.cloudron .
|
||||||
|
|
||||||
|
# run localement en mappant ./data
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--platform linux/amd64 \
|
--platform linux/amd64 \
|
||||||
-v "$(pwd)/data:/app/data" \
|
-v "$(pwd)/data:/app/data" \
|
||||||
-p 8080:5030 \
|
-p 8080:5030 \
|
||||||
dr.zoemp.be/slskd:${VERSION}
|
${IMAGE}
|
||||||
|
|
||||||
|
7
patch.sh
Executable file
7
patch.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -xeu
|
||||||
|
|
||||||
|
# On bump seulement la partie patch et on relance le build
|
||||||
|
./bump_version.sh patch
|
||||||
|
./build.sh
|
||||||
|
|
18
start.sh
18
start.sh
@ -1,20 +1,28 @@
|
|||||||
#!/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
|
||||||
|
chmod -R 777 /app/data /run/slskd/cache
|
||||||
|
|
||||||
|
# 1) répertoire d'extraction pour dotnet
|
||||||
|
export DOTNET_BUNDLE_EXTRACT_BASE_DIR=/run/slskd/cache
|
||||||
|
|
||||||
|
# 2) invariant globalization
|
||||||
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
|
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
|
||||||
|
|
||||||
# Si le fichier de conf n'existe PAS encore, on copie l'exemple
|
# 3) si la conf n'existe pas, on la copie depuis l'exemple
|
||||||
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
|
||||||
chown cloudron:cloudron /app/data/slskd.yml
|
chown cloudron:cloudron /app/data/slskd.yml
|
||||||
else
|
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
|
||||||
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}" \
|
||||||
--https-port ${SLSKD_HTTPS_PORT:-5031} \
|
--https-port "${SLSKD_HTTPS_PORT:-5031}" \
|
||||||
--listen-port ${SLSKD_SLSK_LISTEN_PORT:-50300}
|
--listen-port "${SLSKD_SLSK_LISTEN_PORT:-50300}"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user