Compare commits

..

22 Commits

Author SHA1 Message Date
LinuxServer-CI
fd57557021 Bot Updating Package Versions 2024-06-28 09:07:21 +00:00
Roxedus
8e6a2394a6 Merge pull request #151 from linuxserver/development-3.20 2024-06-28 11:04:18 +02:00
thespad
ab650ac006 Add missing shellcheck format 2024-06-27 16:30:37 +01:00
thespad
3f23522949 Rebase to 3.20 2024-06-27 16:29:44 +01:00
LinuxServer-CI
ed36cb689e Bot Updating Package Versions 2024-06-21 18:32:44 +00:00
LinuxServer-CI
645959d5a1 Bot Updating Package Versions 2024-06-14 18:34:10 +00:00
LinuxServer-CI
523d744f8a Bot Updating Package Versions 2024-05-24 18:36:26 +00:00
LinuxServer-CI
49ec00127e Bot Updating Templated Files 2024-05-24 18:33:50 +00:00
LinuxServer-CI
b8e058679e Bot Updating Templated Files 2024-05-24 18:31:31 +00:00
LinuxServer-CI
6ebaf00cb6 Bot Updating Package Versions 2024-05-17 18:32:38 +00:00
LinuxServer-CI
9f0cb3aa38 Bot Updating Package Versions 2024-05-10 18:32:33 +00:00
LinuxServer-CI
e10521f93e Bot Updating Templated Files 2024-05-10 18:30:01 +00:00
LinuxServer-CI
b25194e490 Bot Updating Package Versions 2024-05-03 18:35:31 +00:00
LinuxServer-CI
475c877c76 Bot Updating Templated Files 2024-05-03 18:32:54 +00:00
LinuxServer-CI
45367a03b6 Bot Updating Package Versions 2024-04-26 18:29:53 +00:00
LinuxServer-CI
2f3d7bdd94 Bot Updating Package Versions 2024-04-19 18:28:58 +00:00
LinuxServer-CI
7166a2b229 Bot Updating Package Versions 2024-04-12 18:29:01 +00:00
LinuxServer-CI
4ee9ea84b9 Bot Updating Package Versions 2024-04-05 18:29:23 +00:00
LinuxServer-CI
4d728e90a3 Bot Updating Package Versions 2024-03-29 18:28:46 +00:00
LinuxServer-CI
ed8c89fc22 Bot Updating Package Versions 2024-03-22 18:28:42 +00:00
LinuxServer-CI
b2078bfbf6 Bot Updating Package Versions 2024-03-15 18:33:43 +00:00
LinuxServer-CI
fff281c5b8 Bot Updating Templated Files 2024-03-15 18:30:38 +00:00
10 changed files with 162 additions and 166 deletions

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.19 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,9 +9,6 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
@@ -45,6 +42,7 @@ RUN \
tar xf \ tar xf \
/tmp/heimdall.tar.gz -C \ /tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \ /app/www-tmp --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
rm -rf \ rm -rf \
/tmp/* /tmp/*

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.19 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,9 +9,6 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
RUN \ RUN \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
@@ -45,6 +42,7 @@ RUN \
tar xf \ tar xf \
/tmp/heimdall.tar.gz -C \ /tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \ /app/www-tmp --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
rm -rf \ rm -rf \
/tmp/* /tmp/*

112
Jenkinsfile vendored
View File

@@ -34,8 +34,8 @@ pipeline {
CI_PORT='80' CI_PORT='80'
CI_SSL='false' CI_SSL='false'
CI_DELAY='120' CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific' CI_DOCKERENV=''
CI_AUTH='user:password' CI_AUTH=''
CI_WEBPATH='' CI_WEBPATH=''
} }
stages { stages {
@@ -278,8 +278,15 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=development -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest # Cloned repo paths for templating:
# Stage 1 - Jenkinsfile update # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch development of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch development of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch development --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
@@ -291,14 +298,14 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile" echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
exit 0 exit 0
else else
echo "Jenkinsfile is up to date." echo "Jenkinsfile is up to date."
fi fi
# Stage 2 - Delete old templates echo "Starting Stage 2 - Delete old templates"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
for i in ${OLD_TEMPLATES}; do for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -316,13 +323,13 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old and deprecated templates" echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
exit 0 exit 0
else else
echo "No templates to delete" echo "No templates to delete"
fi fi
# Stage 3 - Update templates echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -346,9 +353,14 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "No templates to update"
fi fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
@@ -356,6 +368,7 @@ pipeline {
cd ${TEMPDIR}/docs/docker-documentation cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation' git commit -m 'Bot Updating Documentation'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
@@ -363,6 +376,8 @@ pipeline {
sleep $((RANDOM % MAXWAIT)) && \ sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}) git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
else
echo "Docs update not needed, skipping"
fi fi
mkdir -p ${TEMPDIR}/unraid mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
@@ -373,9 +388,12 @@ pipeline {
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/ cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated" echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml git add -u unraid/${CONTAINER_NAME}.xml
@@ -392,16 +410,27 @@ pipeline {
sleep $((RANDOM % MAXWAIT)) && \ sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}) git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
else
echo "No updates to Unraid template needed, skipping"
fi fi
# Stage 4 - Sync Readme to Docker Hub
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else else
echo "Syncing readme to Docker Hub" echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi fi
if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-X POST \
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/ || :
fi
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \ curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \ -H "Authorization: JWT ${DH_TOKEN}" \
@@ -466,14 +495,16 @@ pipeline {
} }
steps{ steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \ sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\ -d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'", "name":"'${LS_REPO}'",
"mirror":true,\ "mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\ "issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\ "merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\ "repository_access_level":"enabled",\
"visibility":"public"}' ''' "visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
} }
} }
/* ############### /* ###############
@@ -504,6 +535,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \ --label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \ --label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -535,6 +567,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \ --label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \ --label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -563,6 +596,7 @@ pipeline {
--label \"org.opencontainers.image.title=Heimdall\" \ --label \"org.opencontainers.image.title=Heimdall\" \
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \ --label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
@@ -589,7 +623,7 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else else
LOCAL_CONTAINER=${IMAGE}:${META_TAG} LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -686,7 +720,7 @@ pipeline {
--shm-size=1gb \ --shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \ -e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \ -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \ -e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \ -e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \ -e PORT=\"${CI_PORT}\" \
@@ -794,35 +828,13 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:development || : done
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8 docker buildx imagetools create -t ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-development")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-development || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:amd64-development
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-development
fi
docker manifest push --purge ${MANIFESTIMAGE}:development
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi fi
done done
''' '''

View File

@@ -28,7 +28,7 @@ Find us at:
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall) # [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages)
@@ -74,7 +74,6 @@ This image provides various versions that are available via tags. Please read th
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection ### Adding password protection
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container. This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container.
@@ -292,6 +291,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **27.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **07.03.24:** - Enable the opcache and disable file revalidation. * **07.03.24:** - Enable the opcache and disable file revalidation.
* **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf. * **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3. * **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.

View File

@@ -6,7 +6,6 @@ external_type: github_commit
release_type: prerelease release_type: prerelease
release_tag: development release_tag: development
ls_branch: development ls_branch: development
build_armhf: false
repo_vars: repo_vars:
- EXT_GIT_BRANCH = '2.x' - EXT_GIT_BRANCH = '2.x'
- EXT_USER = 'linuxserver' - EXT_USER = 'linuxserver'
@@ -25,6 +24,6 @@ repo_vars:
- CI_PORT='80' - CI_PORT='80'
- CI_SSL='false' - CI_SSL='false'
- CI_DELAY='120' - CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific' - CI_DOCKERENV=''
- CI_AUTH='user:password' - CI_AUTH=''
- CI_WEBPATH='' - CI_WEBPATH=''

View File

@@ -1,11 +1,11 @@
NAME VERSION TYPE NAME VERSION TYPE
Hidden Input 1, 0, 0, 0 dotnet Hidden Input 1, 0, 0, 0 dotnet
alpine-baselayout 3.4.3-r2 apk alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.4.3-r2 apk alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
alpine-release 3.19.1-r0 apk alpine-release 3.20.1-r0 apk
apache2-utils 2.4.58-r1 apk apache2-utils 2.4.59-r0 apk
apk-tools 2.14.0-r5 apk apk-tools 2.14.4-r0 apk
apr 1.7.4-r0 apk apr 1.7.4-r0 apk
apr-util 1.6.3-r1 apk apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk argon2-libs 20190702-r5 apk
@@ -13,24 +13,25 @@ aws/aws-crt-php v1.2.4 php-composer
aws/aws-sdk-php 3.299.1 php-composer aws/aws-sdk-php 3.299.1 php-composer
barryvdh/laravel-ide-helper v2.15.1 php-composer barryvdh/laravel-ide-helper v2.15.1 php-composer
barryvdh/reflection-docblock v2.1.1 php-composer barryvdh/reflection-docblock v2.1.1 php-composer
bash 5.2.21-r0 apk bash 5.2.26-r0 apk
brick/math 0.11.0 php-composer brick/math 0.11.0 php-composer
brotli-libs 1.1.0-r1 apk brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r15 apk busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r15 apk busybox-binsh 1.36.1-r29 apk
c-ares 1.24.0-r1 apk c-ares 1.28.1-r0 apk
ca-certificates 20230506-r0 apk ca-certificates 20240226-r0 apk
ca-certificates-bundle 20230506-r0 apk ca-certificates-bundle 20240226-r0 apk
carbonphp/carbon-doctrine-types 2.1.0 php-composer carbonphp/carbon-doctrine-types 2.1.0 php-composer
catatonit 0.2.0-r0 apk
clue/stream-filter v1.7.0 php-composer clue/stream-filter v1.7.0 php-composer
composer 2.7.1 binary composer 2.7.7 binary
composer/class-map-generator 1.1.0 php-composer composer/class-map-generator 1.1.0 php-composer
composer/pcre 3.1.1 php-composer composer/pcre 3.1.1 php-composer
coreutils 9.4-r2 apk coreutils 9.5-r1 apk
coreutils-env 9.4-r2 apk coreutils-env 9.5-r1 apk
coreutils-fmt 9.4-r2 apk coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.4-r2 apk coreutils-sha512sum 9.5-r1 apk
curl 8.5.0-r0 apk curl 8.7.1-r0 apk
dflydev/dot-access-data v3.0.2 php-composer dflydev/dot-access-data v3.0.2 php-composer
doctrine/cache 2.2.0 php-composer doctrine/cache 2.2.0 php-composer
doctrine/dbal 3.8.2 php-composer doctrine/dbal 3.8.2 php-composer
@@ -43,8 +44,10 @@ dragonmantank/cron-expression v3.3.3 php-composer
egulias/email-validator 4.0.2 php-composer egulias/email-validator 4.0.2 php-composer
fakerphp/faker v1.23.1 php-composer fakerphp/faker v1.23.1 php-composer
filp/whoops 2.15.4 php-composer filp/whoops 2.15.4 php-composer
findutils 4.9.0-r5 apk
fruitcake/php-cors v1.3.0 php-composer fruitcake/php-cors v1.3.0 php-composer
git 2.43.0-r0 apk git 2.45.2-r0 apk
git-init-template 2.45.2-r0 apk
graham-campbell/bounded-cache v2.2.0 php-composer graham-campbell/bounded-cache v2.2.0 php-composer
graham-campbell/github v12.4.0 php-composer graham-campbell/github v12.4.0 php-composer
graham-campbell/manager v5.1.0 php-composer graham-campbell/manager v5.1.0 php-composer
@@ -54,9 +57,8 @@ guzzlehttp/promises 2.0.2 php-composer
guzzlehttp/psr7 2.6.2 php-composer guzzlehttp/psr7 2.6.2 php-composer
guzzlehttp/uri-template v1.0.3 php-composer guzzlehttp/uri-template v1.0.3 php-composer
hamcrest/hamcrest-php v2.0.1 php-composer hamcrest/hamcrest-php v2.0.1 php-composer
hiredis 1.2.0-r0 apk icu-data-en 74.2-r0 apk
icu-data-en 74.1-r0 apk icu-libs 74.2-r0 apk
icu-libs 74.1-r0 apk
jq 1.7.1-r0 apk jq 1.7.1-r0 apk
knplabs/github-api v3.13.0 php-composer knplabs/github-api v3.13.0 php-composer
laravel/framework v10.44.0 php-composer laravel/framework v10.44.0 php-composer
@@ -72,51 +74,51 @@ league/flysystem 3.24.0 php-composer
league/flysystem-aws-s3-v3 3.24.0 php-composer league/flysystem-aws-s3-v3 3.24.0 php-composer
league/flysystem-local 3.23.1 php-composer league/flysystem-local 3.23.1 php-composer
league/mime-type-detection 1.15.0 php-composer league/mime-type-detection 1.15.0 php-composer
libacl 2.3.1-r4 apk libacl 2.3.2-r0 apk
libattr 2.5.1-r5 apk libattr 2.5.2-r0 apk
libbsd 0.11.7-r3 apk libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk libbz2 1.0.8-r6 apk
libc-utils 0.7.2-r5 apk libcrypto3 3.3.1-r0 apk
libcrypto3 3.1.4-r5 apk libcurl 8.7.1-r0 apk
libcurl 8.5.0-r0 apk libedit 20240517.3.1-r0 apk
libedit 20230828.3.1-r3 apk libexpat 2.6.2-r0 apk
libexpat 2.6.0-r0 apk libgcc 13.2.1_git20240309-r0 apk
libgcc 13.2.1_git20231014-r0 apk libidn2 2.3.7-r0 apk
libidn2 2.3.4-r4 apk libintl 0.22.5-r0 apk
libintl 0.22.3-r0 apk
libmd 1.1.0-r0 apk libmd 1.1.0-r0 apk
libncursesw 6.4_p20231125-r0 apk libncursesw 6.4_p20240420-r0 apk
libpq 16.2-r0 apk libpq 16.3-r0 apk
libproc2 4.0.4-r0 apk libproc2 4.0.4-r0 apk
libssl3 3.1.4-r5 apk libpsl 0.21.5-r1 apk
libstdc++ 13.2.1_git20231014-r0 apk libssl3 3.3.1-r0 apk
libunistring 1.1-r2 apk libstdc++ 13.2.1_git20240309-r0 apk
libuuid 2.39.3-r0 apk libunistring 1.2-r0 apk
libxml2 2.11.7-r0 apk libuuid 2.40.1-r1 apk
libxml2 2.12.7-r0 apk
libzip 1.10.1-r0 apk libzip 1.10.1-r0 apk
linux-pam 1.5.3-r7 apk linux-pam 1.6.0-r0 apk
logrotate 3.21.0-r1 apk logrotate 3.21.0-r1 apk
mockery/mockery 1.6.7 php-composer mockery/mockery 1.6.7 php-composer
monolog/monolog 3.5.0 php-composer monolog/monolog 3.5.0 php-composer
mtdowling/jmespath.php 2.7.0 php-composer mtdowling/jmespath.php 2.7.0 php-composer
musl 1.2.4_git20230717-r4 apk musl 1.2.5-r0 apk
musl-utils 1.2.4_git20230717-r4 apk musl-utils 1.2.5-r0 apk
myclabs/deep-copy 1.11.1 php-composer myclabs/deep-copy 1.11.1 php-composer
nano 7.2-r1 apk nano 8.0-r0 apk
ncurses-terminfo-base 6.4_p20231125-r0 apk ncurses-terminfo-base 6.4_p20240420-r0 apk
nesbot/carbon 2.72.3 php-composer nesbot/carbon 2.72.3 php-composer
netcat-openbsd 1.226-r0 apk netcat-openbsd 1.226-r0 apk
nette/schema v1.3.0 php-composer nette/schema v1.3.0 php-composer
nette/utils v4.0.4 php-composer nette/utils v4.0.4 php-composer
nghttp2-libs 1.58.0-r0 apk nghttp2-libs 1.62.0-r0 apk
nginx 1.24.0-r15 apk nginx 1.26.1-r0 apk
nikic/php-parser v5.0.0 php-composer nikic/php-parser v5.0.0 php-composer
nunomaduro/collision v6.4.0 php-composer nunomaduro/collision v6.4.0 php-composer
nunomaduro/termwind v1.15.1 php-composer nunomaduro/termwind v1.15.1 php-composer
oniguruma 6.9.9-r0 apk oniguruma 6.9.9-r0 apk
openssl 3.1.4-r5 apk openssl 3.3.1-r0 apk
pcre 8.45-r3 apk pcre 8.45-r3 apk
pcre2 10.42-r2 apk pcre2 10.43-r0 apk
phar-io/manifest 2.0.3 php-composer phar-io/manifest 2.0.3 php-composer
phar-io/version 3.2.1 php-composer phar-io/version 3.2.1 php-composer
php-http/cache-plugin 1.8.1 php-composer php-http/cache-plugin 1.8.1 php-composer
@@ -127,30 +129,30 @@ php-http/message 1.16.0 php-composer
php-http/message-factory 1.1.0 php-composer php-http/message-factory 1.1.0 php-composer
php-http/multipart-stream-builder 1.3.0 php-composer php-http/multipart-stream-builder 1.3.0 php-composer
php-http/promise 1.3.0 php-composer php-http/promise 1.3.0 php-composer
php83 8.3.3-r0 apk php83 8.3.8-r0 apk
php83-common 8.3.3-r0 apk php83-common 8.3.8-r0 apk
php83-ctype 8.3.3-r0 apk php83-ctype 8.3.8-r0 apk
php83-curl 8.3.3-r0 apk php83-curl 8.3.8-r0 apk
php83-dom 8.3.3-r0 apk php83-dom 8.3.8-r0 apk
php83-fileinfo 8.3.3-r0 apk php83-fileinfo 8.3.8-r0 apk
php83-fpm 8.3.3-r0 apk php83-fpm 8.3.8-r0 apk
php83-iconv 8.3.3-r0 apk php83-iconv 8.3.8-r0 apk
php83-intl 8.3.3-r0 apk php83-intl 8.3.8-r0 apk
php83-mbstring 8.3.3-r0 apk php83-mbstring 8.3.8-r0 apk
php83-mysqlnd 8.3.3-r0 apk php83-mysqlnd 8.3.8-r0 apk
php83-opcache 8.3.3-r0 apk php83-opcache 8.3.8-r0 apk
php83-openssl 8.3.3-r0 apk php83-openssl 8.3.8-r0 apk
php83-pdo 8.3.3-r0 apk php83-pdo 8.3.8-r0 apk
php83-pdo_mysql 8.3.3-r0 apk php83-pdo_mysql 8.3.8-r0 apk
php83-pdo_pgsql 8.3.3-r0 apk php83-pdo_pgsql 8.3.8-r0 apk
php83-pdo_sqlite 8.3.3-r0 apk php83-pdo_sqlite 8.3.8-r0 apk
php83-phar 8.3.3-r0 apk php83-phar 8.3.8-r0 apk
php83-session 8.3.3-r0 apk php83-session 8.3.8-r0 apk
php83-simplexml 8.3.3-r0 apk php83-simplexml 8.3.8-r0 apk
php83-tokenizer 8.3.3-r0 apk php83-tokenizer 8.3.8-r0 apk
php83-xml 8.3.3-r0 apk php83-xml 8.3.8-r0 apk
php83-xmlwriter 8.3.3-r0 apk php83-xmlwriter 8.3.8-r0 apk
php83-zip 8.3.3-r0 apk php83-zip 8.3.8-r0 apk
phpdocumentor/reflection-common 2.2.0 php-composer phpdocumentor/reflection-common 2.2.0 php-composer
phpdocumentor/type-resolver 1.8.0 php-composer phpdocumentor/type-resolver 1.8.0 php-composer
phpoption/phpoption 1.9.2 php-composer phpoption/phpoption 1.9.2 php-composer
@@ -176,7 +178,7 @@ psy/psysh v0.12.0 php-composer
ralouphie/getallheaders 3.0.3 php-composer ralouphie/getallheaders 3.0.3 php-composer
ramsey/collection 2.0.0 php-composer ramsey/collection 2.0.0 php-composer
ramsey/uuid 4.7.5 php-composer ramsey/uuid 4.7.5 php-composer
readline 8.2.1-r2 apk readline 8.2.10-r0 apk
scanelf 1.3.7-r2 apk scanelf 1.3.7-r2 apk
sebastian/cli-parser 1.0.1 php-composer sebastian/cli-parser 1.0.1 php-composer
sebastian/code-unit 1.0.8 php-composer sebastian/code-unit 1.0.8 php-composer
@@ -194,15 +196,15 @@ sebastian/recursion-context 4.0.5 php-composer
sebastian/resource-operations 3.0.3 php-composer sebastian/resource-operations 3.0.3 php-composer
sebastian/type 3.2.1 php-composer sebastian/type 3.2.1 php-composer
sebastian/version 3.0.2 php-composer sebastian/version 3.0.2 php-composer
shadow 4.14.2-r0 apk shadow 4.15.1-r0 apk
skalibs 2.14.0.1-r0 apk skalibs 2.14.1.1-r0 apk
spatie/backtrace 1.5.3 php-composer spatie/backtrace 1.5.3 php-composer
spatie/flare-client-php 1.4.4 php-composer spatie/flare-client-php 1.4.4 php-composer
spatie/ignition 1.12.0 php-composer spatie/ignition 1.12.0 php-composer
spatie/laravel-ignition 2.4.2 php-composer spatie/laravel-ignition 2.4.2 php-composer
sqlite-libs 3.44.2-r0 apk sqlite-libs 3.45.3-r1 apk
squizlabs/php_codesniffer 3.9.0 php-composer squizlabs/php_codesniffer 3.9.0 php-composer
ssl_client 1.36.1-r15 apk ssl_client 1.36.1-r29 apk
symfony/cache v6.4.3 php-composer symfony/cache v6.4.3 php-composer
symfony/cache-contracts v3.4.0 php-composer symfony/cache-contracts v3.4.0 php-composer
symfony/console v6.4.3 php-composer symfony/console v6.4.3 php-composer
@@ -239,11 +241,11 @@ symfony/var-exporter v7.0.3 php-composer
symfony/yaml v6.4.3 php-composer symfony/yaml v6.4.3 php-composer
theseer/tokenizer 1.2.2 php-composer theseer/tokenizer 1.2.2 php-composer
tijsverkoyen/css-to-inline-styles v2.2.7 php-composer tijsverkoyen/css-to-inline-styles v2.2.7 php-composer
tzdata 2024a-r0 apk tzdata 2024a-r1 apk
utmps-libs 0.1.2.2-r0 apk utmps-libs 0.1.2.2-r1 apk
vlucas/phpdotenv v5.6.0 php-composer vlucas/phpdotenv v5.6.0 php-composer
voku/portable-ascii 2.0.1 php-composer voku/portable-ascii 2.0.1 php-composer
webmozart/assert 1.11.0 php-composer webmozart/assert 1.11.0 php-composer
xz-libs 5.4.5-r0 apk xz-libs 5.6.1-r3 apk
zlib 1.3.1-r0 apk zlib 1.3.1-r1 apk
zstd-libs 1.5.5-r8 apk zstd-libs 1.5.6-r0 apk

View File

@@ -33,31 +33,19 @@ param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "80", internal_port: "80", port_desc: "http gui" } - { external_port: "80", internal_port: "80", port_desc: "http gui" }
- { external_port: "443", internal_port: "443", port_desc: "https gui" } - { external_port: "443", internal_port: "443", port_desc: "https gui" }
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
# optional parameters
optional_block_1: false
optional_block_1_items:
- |
Using tags, you can switch between the stable releases of Heimdall and the master branch. No tag is required for the latest stable release.
Add the development tag, if required, to the linuxserver/heimdall line of the run/create command in the following format, linuxserver/heimdall:development
The development tag will be the latest commit in the master branch of Heimdall.
HOWEVER , USE THE DEVELOPMENT TAG AT YOUR OWN PERIL !!!!!!!!!
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection ### Adding password protection
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container. This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container.
# changelog # changelog
changelogs: changelogs:
- { date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- { date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."} - { date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."}
- { date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf." } - { date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf." }
- { date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."} - { date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."}

View File

@@ -1,11 +1,8 @@
## Version 2024/03/06 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/nginx/site-confs/default.conf.sample ## Version 2024/06/27 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/nginx/site-confs/default.conf.sample
server { server {
listen 80 default_server; listen *:80 default_server;
listen [::]:80 default_server; listen *:443 ssl default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _; server_name _;

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \ exec \
s6-setuidgid abc php /app/www/artisan queue:work database --sleep=3 --tries=3 s6-setuidgid abc php /app/www/artisan queue:work database --sleep=3 --tries=3

1
root/migrations/02-default-location Normal file → Executable file
View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash
DEFAULT_CONF="/config/nginx/site-confs/default.conf" DEFAULT_CONF="/config/nginx/site-confs/default.conf"
OLD_ROOT="root /var/www/localhost/heimdall/public;" OLD_ROOT="root /var/www/localhost/heimdall/public;"