Compare commits

...

62 Commits

Author SHA1 Message Date
LinuxServer-CI
421a86103b Bot Updating Package Versions 2024-07-26 18:32:25 +00:00
Eric Nemchik
740c467147 Merge pull request #154 from linuxserver/delete-default-conf-development
Delete root/defaults/nginx/site-confs/default.conf.sample [development]
2024-07-19 16:35:09 -05:00
LinuxServer-CI
767cc6637f Bot Updating Package Versions 2024-07-19 18:34:10 +00:00
Eric Nemchik
2835692143 Delete root/defaults/nginx/site-confs/default.conf.sample [development]
redundant to base
2024-07-16 20:48:40 -05:00
LinuxServer-CI
b9c10d0c3f Bot Updating Package Versions 2024-07-12 18:39:12 +00:00
LinuxServer-CI
3367ea93f0 Bot Updating Templated Files 2024-07-12 18:36:15 +00:00
LinuxServer-CI
ae633adcd2 Bot Updating Templated Files 2024-07-12 18:34:52 +00:00
LinuxServer-CI
aff35b0195 Bot Updating Package Versions 2024-07-05 18:32:36 +00:00
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
LinuxServer-CI
9aa3cce066 Bot Updating Package Versions 2024-03-08 13:37:16 +00:00
LinuxServer-CI
09b457bbd4 Bot Updating Templated Files 2024-03-08 13:34:17 +00:00
aptalca
13955c751d Merge pull request #150 from linuxserver/development-parity
Add opcache and clean up default site conf
2024-03-08 08:32:38 -05:00
aptalca
723df80461 Add opcache and clean up default site conf 2024-03-07 09:17:32 -05:00
LinuxServer-CI
3d0d91cad8 Bot Updating Package Versions 2024-03-01 18:30:52 +00:00
LinuxServer-CI
86015b2bb6 Bot Updating Templated Files 2024-02-23 18:32:34 +00:00
LinuxServer-CI
9d09f09b65 Bot Updating Templated Files 2024-02-23 18:29:08 +00:00
LinuxServer-CI
3952031cc4 Bot Updating Package Versions 2024-02-17 15:45:06 +00:00
aptalca
65032223b6 Merge pull request #146 from linuxserver/feature-add_dom_php_extension
Add dom php extension to dev
2024-02-17 10:41:06 -05:00
Chris Hunt
c7475c8fe6 Add dom php extension to dev 2024-02-17 14:46:08 +00:00
LinuxServer-CI
181d9c4aed Bot Updating Package Versions 2024-02-17 08:47:18 +00:00
LinuxServer-CI
51ffe0c841 Bot Updating Package Versions 2024-02-16 21:47:16 +00:00
LinuxServer-CI
e04a704803 Bot Updating Package Versions 2024-02-16 18:30:58 +00:00
LinuxServer-CI
08127222fa Bot Updating Package Versions 2024-02-12 19:46:57 +00:00
LinuxServer-CI
0d894f8ca8 Bot Updating Package Versions 2024-02-09 18:31:07 +00:00
LinuxServer-CI
6ff1368f5f Bot Updating Package Versions 2024-02-02 18:29:58 +00:00
LinuxServer-CI
65c299b32f Bot Updating Package Versions 2024-01-26 16:42:34 +00:00
LinuxServer-CI
6aa0b5611d Bot Updating Templated Files 2024-01-26 16:39:55 +00:00
Eric Nemchik
fc295cdcad Merge pull request #141 from linuxserver/3.19-development
Rebase to Alpine 3.19
2024-01-26 10:37:56 -06:00
LinuxServer-CI
d9800ee920 Bot Updating Package Versions 2024-01-19 18:33:34 +00:00
LinuxServer-CI
5fbe7b8c94 Bot Updating Package Versions 2024-01-12 18:39:53 +00:00
LinuxServer-CI
450b8c49ae Bot Updating Templated Files 2024-01-12 18:36:21 +00:00
LinuxServer-CI
d0c3c7fb32 Bot Updating Templated Files 2024-01-12 18:33:53 +00:00
LinuxServer-CI
18594c2e33 Bot Updating Package Versions 2024-01-05 18:30:38 +00:00
Eric Nemchik
27b68856c7 Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 19:20:34 -06:00
LinuxServer-CI
9905ef8a45 Bot Updating Package Versions 2023-12-22 18:29:20 +00:00
LinuxServer-CI
157c18a81a Bot Updating Package Versions 2023-12-15 18:31:10 +00:00
LinuxServer-CI
80ed370549 Bot Updating Package Versions 2023-12-08 18:30:20 +00:00
LinuxServer-CI
5544a0e7dd Bot Updating Package Versions 2023-12-01 18:30:22 +00:00
Eric Nemchik
74f43c96f6 Merge pull request #139 from linuxserver/quiet-migration-development
only run migration if conf exists
2023-11-29 08:31:03 -06:00
Eric Nemchik
6cb41d570e only run migration if conf exists
redirect stderr to /dev/null

Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-25 10:51:48 -06:00
LinuxServer-CI
dc1f719285 Bot Updating Package Versions 2023-11-24 18:30:38 +00:00
16 changed files with 426 additions and 442 deletions

View File

@@ -67,10 +67,10 @@ body:
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
Provide a full docker log, output of "docker logs heimdall"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
Output of `docker logs heimdall`
render: bash
validations:
required: true

View File

@@ -7,7 +7,7 @@ jobs:
external-trigger-development:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/development'

View File

@@ -9,7 +9,7 @@ jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'

View File

@@ -7,7 +7,7 @@ jobs:
package-trigger-development:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/development'

View File

@@ -9,7 +9,7 @@ jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'

View File

@@ -5,6 +5,8 @@ on:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
# set version label
ARG BUILD_DATE
@@ -9,22 +9,24 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache \
php82-intl \
php82-pdo_pgsql \
php82-pdo_sqlite \
php82-pdo_mysql \
php82-tokenizer && \
php83-dom \
php83-intl \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php83/conf.d/00_opcache.ini && \
echo "**** install heimdall ****" && \
mkdir -p \
/heimdall && \
@@ -40,6 +42,7 @@ RUN \
tar xf \
/tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
# set version label
ARG BUILD_DATE
@@ -9,22 +9,24 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache \
php82-intl \
php82-pdo_pgsql \
php82-pdo_sqlite \
php82-pdo_mysql \
php82-tokenizer && \
php83-dom \
php83-intl \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php83/conf.d/00_opcache.ini && \
echo "**** install heimdall ****" && \
mkdir -p \
/heimdall && \
@@ -40,6 +42,7 @@ RUN \
tar xf \
/tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*

236
Jenkinsfile vendored
View File

@@ -16,6 +16,7 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
EXT_GIT_BRANCH = '2.x'
EXT_USER = 'linuxserver'
EXT_REPO = 'Heimdall'
@@ -33,8 +34,8 @@ pipeline {
CI_PORT='80'
CI_SSL='false'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_DOCKERENV=''
CI_AUTH=''
CI_WEBPATH=''
}
stages {
@@ -61,11 +62,16 @@ pipeline {
env.COMMIT_SHA = sh(
script: '''git rev-parse HEAD''',
returnStdout: true).trim()
env.GH_DEFAULT_BRANCH = sh(
script: '''git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||' ''',
returnStdout: true).trim()
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
}
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{
env.LS_RELEASE_NUMBER = sh(
script: '''echo ${LS_RELEASE} |sed 's/^.*-ls//g' ''',
@@ -130,7 +136,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/ ]//g' ''',
returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
@@ -148,7 +154,7 @@ pipeline {
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
if (BRANCH_NAME != "${env.GH_DEFAULT_BRANCH}") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
@@ -249,9 +255,11 @@ pipeline {
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \
pip install s3cmd && \
ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache python3 && \
python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \
pip install --no-cache-dir s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
}
}
@@ -270,8 +278,15 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
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
# Stage 1 - Jenkinsfile update
# Cloned repo paths for templating:
# ${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
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
@@ -280,16 +295,17 @@ pipeline {
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
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
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}
exit 0
else
echo "Jenkinsfile is up to date."
fi
# 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"
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"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -304,15 +320,16 @@ pipeline {
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
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
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}
exit 0
else
echo "No templates to delete"
fi
# Stage 3 - Update templates
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -333,31 +350,50 @@ pipeline {
fi
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
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
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
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "No templates to update"
fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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
git clone --depth=1 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
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
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} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
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})
else
echo "Docs update not needed, skipping"
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
git clone --depth=1 https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone --depth=1 https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
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
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
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 && [[ -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"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
@@ -368,7 +404,42 @@ pipeline {
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
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} || \
(MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
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})
else
echo "No updates to Unraid template needed, skipping"
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; 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"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
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')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-X PATCH \
-d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi
rm -Rf ${TEMPDIR}'''
script{
@@ -424,14 +495,16 @@ pipeline {
}
steps{
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}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"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" '''
}
}
/* ###############
@@ -462,6 +535,7 @@ pipeline {
--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. \" \
--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} ."
}
}
@@ -493,6 +567,7 @@ pipeline {
--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. \" \
--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} ."
}
}
@@ -521,6 +596,7 @@ pipeline {
--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. \" \
--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} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
@@ -547,7 +623,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -568,7 +644,8 @@ pipeline {
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
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
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@@ -636,14 +713,14 @@ pipeline {
set -e
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
--shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \
@@ -671,12 +748,6 @@ pipeline {
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@@ -687,7 +758,7 @@ pipeline {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
@@ -718,12 +789,6 @@ pipeline {
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@@ -734,12 +799,12 @@ pipeline {
retry(5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
@@ -763,35 +828,13 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:development || :
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_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
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
docker buildx imagetools create -t ${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}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${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}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
@@ -864,39 +907,6 @@ EOF
) '''
}
}
// Use helper container to sync the current README on master to the dockerhub endpoint
stage('Sync-README') {
when {
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
ghcr.io/linuxserver/readme-sync bash -c 'node sync'
rm -Rf ${TEMPDIR} '''
}
}
}
// If this is a Pull request send the CI link as a comment on it
stage('Pull Request Comment') {
when {

View File

@@ -28,7 +28,7 @@ Find us at:
# [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 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)
@@ -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
### 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.
@@ -87,7 +86,6 @@ To help you get started creating a container from this image you can either use
```yaml
---
version: "2.1"
services:
heimdall:
image: lscr.io/linuxserver/heimdall:development
@@ -97,7 +95,7 @@ services:
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/appdata/config:/config
- /path/to/heimdall/config:/config
ports:
- 80:80
- 443:443
@@ -114,7 +112,7 @@ docker run -d \
-e TZ=Etc/UTC \
-p 80:80 \
-p 443:443 \
-v /path/to/appdata/config:/config \
-v /path/to/heimdall/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/heimdall:development
```
@@ -130,7 +128,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | Contains all relevant configuration files. |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets)
@@ -201,7 +199,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers:
@@ -266,21 +264,6 @@ Below are the instructions for updating containers:
docker image prune
```
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once heimdall
```
* You can also remove the old dangling images: `docker image prune`
**warning**: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier)
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
@@ -308,6 +291,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## 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.
* **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.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **13.04.23:** - Move ssl.conf include to default.conf.
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.

View File

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

View File

@@ -1,228 +1,251 @@
NAME VERSION TYPE
Readsfromstdinwithoutleakinginfototheterminalandoutputsbacktostdout 1, dotnet
alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk
alpine-release 3.18.4-r0 apk
apache2-utils 2.4.58-r0 apk
apk-tools 2.14.0-r2 apk
apr 1.7.4-r0 apk
apr-util 1.6.3-r1 apk
argon2-libs 20190702-r4 apk
barryvdh/laravel-ide-helper v2.12.3 php-composer
barryvdh/reflection-docblock v2.1.0 php-composer
bash 5.2.15-r5 apk
brick/math 0.9.3 php-composer
brotli-libs 1.0.9-r14 apk
busybox 1.36.1-r5 apk
busybox-binsh 1.36.1-r5 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
clue/stream-filter v1.6.0 php-composer
composer/pcre 3.1.0 php-composer
coreutils 9.3-r1 apk
curl 8.4.0-r0 apk
dflydev/dot-access-data v3.0.2 php-composer
doctrine/cache 2.2.0 php-composer
doctrine/dbal 3.5.1 php-composer
doctrine/deprecations v1.0.0 php-composer
doctrine/event-manager 1.2.0 php-composer
doctrine/inflector 2.0.6 php-composer
doctrine/instantiator 1.4.1 php-composer
doctrine/lexer 1.2.3 php-composer
dragonmantank/cron-expression v3.3.2 php-composer
egulias/email-validator 2.1.25 php-composer
facade/flare-client-php 1.10.0 php-composer
facade/ignition 2.17.6 php-composer
facade/ignition-contracts 1.0.2 php-composer
fideloper/proxy 4.4.2 php-composer
filp/whoops 2.14.6 php-composer
fzaninotto/faker v1.9.2 php-composer
git 2.40.1-r0 apk
graham-campbell/bounded-cache v1.3.0 php-composer
graham-campbell/github v10.6.0 php-composer
graham-campbell/manager v4.7.0 php-composer
graham-campbell/result-type v1.1.0 php-composer
guzzlehttp/guzzle 7.5.0 php-composer
guzzlehttp/promises 1.5.2 php-composer
guzzlehttp/psr7 2.4.3 php-composer
hamcrest/hamcrest-php v2.0.1 php-composer
icu-data-en 73.2-r2 apk
icu-libs 73.2-r2 apk
jq 1.6-r3 apk
knplabs/github-api v3.6.0 php-composer
laravel/framework v8.83.26 php-composer
laravel/serializable-closure v1.2.2 php-composer
laravel/tinker v2.7.3 php-composer
laravel/ui v3.4.6 php-composer
laravelcollective/html v6.3.0 php-composer
league/commonmark 2.3.7 php-composer
league/config v1.1.1 php-composer
league/flysystem 1.1.10 php-composer
league/mime-type-detection 1.11.0 php-composer
libacl 2.3.1-r3 apk
libattr 2.5.1-r4 apk
libbsd 0.11.7-r1 apk
libbz2 1.0.8-r5 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.4-r1 apk
libcurl 8.4.0-r0 apk
libedit 20221030.3.1-r1 apk
libexpat 2.5.0-r1 apk
libgcc 12.2.1_git20220924-r10 apk
libidn2 2.3.4-r1 apk
libintl 0.21.1-r7 apk
libmd 1.0.4-r2 apk
libncursesw 6.4_p20230506-r0 apk
libpq 15.5-r0 apk
libproc2 4.0.4-r0 apk
libssl3 3.1.4-r1 apk
libstdc++ 12.2.1_git20220924-r10 apk
libunistring 1.1-r1 apk
libuuid 2.38.1-r8 apk
libxml2 2.11.4-r0 apk
libzip 1.9.2-r2 apk
linux-pam 1.5.2-r10 apk
logrotate 3.21.0-r1 apk
mockery/mockery 1.5.1 php-composer
monolog/monolog 2.8.0 php-composer
musl 1.2.4-r2 apk
musl-utils 1.2.4-r2 apk
myclabs/deep-copy 1.11.0 php-composer
nano 7.2-r1 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk
nesbot/carbon 2.63.0 php-composer
netcat-openbsd 1.219-r1 apk
nette/schema v1.2.3 php-composer
nette/utils v3.2.8 php-composer
nghttp2-libs 1.57.0-r0 apk
nginx 1.24.0-r7 apk
nikic/php-parser v4.15.2 php-composer
nunomaduro/collision v5.11.0 php-composer
oniguruma 6.9.8-r1 apk
openssl 3.1.4-r1 apk
opis/closure 3.6.3 php-composer
pcre 8.45-r3 apk
pcre2 10.42-r1 apk
phar-io/manifest 2.0.3 php-composer
phar-io/version 3.2.1 php-composer
php-http/cache-plugin 1.7.5 php-composer
php-http/client-common 2.6.0 php-composer
php-http/discovery 1.14.3 php-composer
php-http/httplug 2.3.0 php-composer
php-http/message 1.13.0 php-composer
php-http/message-factory v1.0.2 php-composer
php-http/multipart-stream-builder 1.2.0 php-composer
php-http/promise 1.1.0 php-composer
php82 8.2.12-r0 apk
php82-common 8.2.12-r0 apk
php82-ctype 8.2.12-r0 apk
php82-curl 8.2.12-r0 apk
php82-fileinfo 8.2.12-r0 apk
php82-fpm 8.2.12-r0 apk
php82-iconv 8.2.12-r0 apk
php82-intl 8.2.12-r0 apk
php82-mbstring 8.2.12-r0 apk
php82-mysqlnd 8.2.12-r0 apk
php82-openssl 8.2.12-r0 apk
php82-pdo 8.2.12-r0 apk
php82-pdo_mysql 8.2.12-r0 apk
php82-pdo_pgsql 8.2.12-r0 apk
php82-pdo_sqlite 8.2.12-r0 apk
php82-phar 8.2.12-r0 apk
php82-session 8.2.12-r0 apk
php82-simplexml 8.2.12-r0 apk
php82-tokenizer 8.2.12-r0 apk
php82-xml 8.2.12-r0 apk
php82-xmlwriter 8.2.12-r0 apk
php82-zip 8.2.12-r0 apk
phpdocumentor/reflection-common 2.2.0 php-composer
phpdocumentor/type-resolver 1.6.2 php-composer
phpoption/phpoption 1.9.0 php-composer
phpunit/php-code-coverage 9.2.19 php-composer
phpunit/php-file-iterator 3.0.6 php-composer
phpunit/php-invoker 3.1.1 php-composer
phpunit/php-text-template 2.0.4 php-composer
phpunit/php-timer 5.0.3 php-composer
phpunit/phpunit 9.5.26 php-composer
popt 1.19-r2 apk
procps-ng 4.0.4-r0 apk
psr/cache 1.0.1 php-composer
psr/container 1.1.2 php-composer
psr/event-dispatcher 1.0.0 php-composer
psr/http-client 1.0.1 php-composer
psr/http-factory 1.0.1 php-composer
psr/http-message 1.0.1 php-composer
psr/log 1.1.4 php-composer
psr/simple-cache 1.0.1 php-composer
psy/psysh v0.11.9 php-composer
ralouphie/getallheaders 3.0.3 php-composer
ramsey/collection 1.2.2 php-composer
ramsey/uuid 4.2.3 php-composer
readline 8.2.1-r1 apk
scanelf 1.3.7-r1 apk
sebastian/cli-parser 1.0.1 php-composer
sebastian/code-unit 1.0.8 php-composer
sebastian/code-unit-reverse-lookup 2.0.3 php-composer
sebastian/comparator 4.0.8 php-composer
sebastian/complexity 2.0.2 php-composer
sebastian/diff 4.0.4 php-composer
sebastian/environment 5.1.4 php-composer
sebastian/exporter 4.0.5 php-composer
sebastian/global-state 5.0.5 php-composer
sebastian/lines-of-code 1.0.3 php-composer
sebastian/object-enumerator 4.0.4 php-composer
sebastian/object-reflector 2.0.4 php-composer
sebastian/recursion-context 4.0.4 php-composer
sebastian/resource-operations 3.0.3 php-composer
sebastian/type 3.2.0 php-composer
sebastian/version 3.0.2 php-composer
shadow 4.13-r4 apk
skalibs 2.13.1.1-r1 apk
sqlite-libs 3.41.2-r2 apk
squizlabs/php_codesniffer 3.7.1 php-composer
ssl_client 1.36.1-r5 apk
swiftmailer/swiftmailer v6.3.0 php-composer
symfony/cache v5.4.15 php-composer
symfony/cache-contracts v2.5.2 php-composer
symfony/console v5.4.15 php-composer
symfony/css-selector v5.4.11 php-composer
symfony/deprecation-contracts v2.5.2 php-composer
symfony/error-handler v5.4.15 php-composer
symfony/event-dispatcher v5.4.9 php-composer
symfony/event-dispatcher-contracts v2.5.2 php-composer
symfony/finder v5.4.11 php-composer
symfony/http-foundation v5.4.15 php-composer
symfony/http-kernel v5.4.15 php-composer
symfony/mime v5.4.14 php-composer
symfony/options-resolver v5.4.11 php-composer
symfony/polyfill-ctype v1.27.0 php-composer
symfony/polyfill-iconv v1.27.0 php-composer
symfony/polyfill-intl-grapheme v1.27.0 php-composer
symfony/polyfill-intl-idn v1.27.0 php-composer
symfony/polyfill-intl-normalizer v1.27.0 php-composer
symfony/polyfill-mbstring v1.27.0 php-composer
symfony/polyfill-php72 v1.27.0 php-composer
symfony/polyfill-php73 v1.27.0 php-composer
symfony/polyfill-php80 v1.27.0 php-composer
symfony/polyfill-php81 v1.27.0 php-composer
symfony/process v5.4.11 php-composer
symfony/routing v5.4.15 php-composer
symfony/service-contracts v2.5.2 php-composer
symfony/string v5.4.15 php-composer
symfony/thanks v1.2.10 php-composer
symfony/translation v5.4.14 php-composer
symfony/translation-contracts v2.5.2 php-composer
symfony/var-dumper v5.4.14 php-composer
symfony/var-exporter v5.4.10 php-composer
symfony/yaml v5.4.14 php-composer
theseer/tokenizer 1.2.1 php-composer
tijsverkoyen/css-to-inline-styles 2.2.5 php-composer
tzdata 2023c-r1 apk
utmps-libs 0.1.2.1-r1 apk
vlucas/phpdotenv v5.5.0 php-composer
voku/portable-ascii 1.6.1 php-composer
webmozart/assert 1.11.0 php-composer
xz-libs 5.4.3-r0 apk
zlib 1.2.13-r1 apk
zstd-libs 1.5.5-r4 apk
NAME VERSION TYPE
Hidden Input 1, 0, 0, 0 dotnet
alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.20.1-r0 apk
apache2-utils 2.4.62-r0 apk
apk-tools 2.14.4-r0 apk
apr 1.7.4-r0 apk
apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk
aws/aws-crt-php v1.2.4 php-composer
aws/aws-sdk-php 3.299.1 php-composer
barryvdh/laravel-ide-helper v2.15.1 php-composer
barryvdh/reflection-docblock v2.1.1 php-composer
bash 5.2.26-r0 apk
brick/math 0.11.0 php-composer
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r29 apk
c-ares 1.28.1-r0 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
carbonphp/carbon-doctrine-types 2.1.0 php-composer
catatonit 0.2.0-r0 apk
clue/stream-filter v1.7.0 php-composer
composer 2.7.7 binary
composer/class-map-generator 1.1.0 php-composer
composer/pcre 3.1.1 php-composer
coreutils 9.5-r1 apk
coreutils-env 9.5-r1 apk
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.8.0-r0 apk
dflydev/dot-access-data v3.0.2 php-composer
doctrine/cache 2.2.0 php-composer
doctrine/dbal 3.8.2 php-composer
doctrine/deprecations 1.1.3 php-composer
doctrine/event-manager 2.0.0 php-composer
doctrine/inflector 2.0.9 php-composer
doctrine/instantiator 2.0.0 php-composer
doctrine/lexer 3.0.1 php-composer
dragonmantank/cron-expression v3.3.3 php-composer
egulias/email-validator 4.0.2 php-composer
fakerphp/faker v1.23.1 php-composer
filp/whoops 2.15.4 php-composer
findutils 4.9.0-r5 apk
fruitcake/php-cors v1.3.0 php-composer
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/github v12.4.0 php-composer
graham-campbell/manager v5.1.0 php-composer
graham-campbell/result-type v1.1.2 php-composer
guzzlehttp/guzzle 7.8.1 php-composer
guzzlehttp/promises 2.0.2 php-composer
guzzlehttp/psr7 2.6.2 php-composer
guzzlehttp/uri-template v1.0.3 php-composer
hamcrest/hamcrest-php v2.0.1 php-composer
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
knplabs/github-api v3.13.0 php-composer
laravel/framework v10.44.0 php-composer
laravel/prompts v0.1.15 php-composer
laravel/serializable-closure v1.3.3 php-composer
laravel/tinker v2.9.0 php-composer
laravel/ui v4.4.0 php-composer
laravelcollective/html v6.4.1 php-composer
lcobucci/jwt 5.2.0 php-composer
league/commonmark 2.4.2 php-composer
league/config v1.2.0 php-composer
league/flysystem 3.24.0 php-composer
league/flysystem-aws-s3-v3 3.24.0 php-composer
league/flysystem-local 3.23.1 php-composer
league/mime-type-detection 1.15.0 php-composer
libacl 2.3.2-r0 apk
libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.3.1-r3 apk
libcurl 8.8.0-r0 apk
libedit 20240517.3.1-r0 apk
libexpat 2.6.2-r0 apk
libgcc 13.2.1_git20240309-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r0 apk
libpq 16.3-r0 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
libssl3 3.3.1-r3 apk
libstdc++ 13.2.1_git20240309-r0 apk
libunistring 1.2-r0 apk
libuuid 2.40.1-r1 apk
libxml2 2.12.7-r0 apk
libzip 1.10.1-r0 apk
linux-pam 1.6.0-r0 apk
logrotate 3.21.0-r1 apk
mockery/mockery 1.6.7 php-composer
monolog/monolog 3.5.0 php-composer
mtdowling/jmespath.php 2.7.0 php-composer
musl 1.2.5-r0 apk
musl-utils 1.2.5-r0 apk
myclabs/deep-copy 1.11.1 php-composer
nano 8.0-r0 apk
ncurses-terminfo-base 6.4_p20240420-r0 apk
nesbot/carbon 2.72.3 php-composer
netcat-openbsd 1.226-r0 apk
nette/schema v1.3.0 php-composer
nette/utils v4.0.4 php-composer
nghttp2-libs 1.62.1-r0 apk
nginx 1.26.1-r0 apk
nikic/php-parser v5.0.0 php-composer
nunomaduro/collision v6.4.0 php-composer
nunomaduro/termwind v1.15.1 php-composer
oniguruma 6.9.9-r0 apk
openssl 3.3.1-r3 apk
pcre 8.45-r3 apk
pcre2 10.43-r0 apk
phar-io/manifest 2.0.3 php-composer
phar-io/version 3.2.1 php-composer
php-http/cache-plugin 1.8.1 php-composer
php-http/client-common 2.7.1 php-composer
php-http/discovery 1.19.2 php-composer
php-http/httplug 2.4.0 php-composer
php-http/message 1.16.0 php-composer
php-http/message-factory 1.1.0 php-composer
php-http/multipart-stream-builder 1.3.0 php-composer
php-http/promise 1.3.0 php-composer
php83 8.3.9-r0 apk
php83-common 8.3.9-r0 apk
php83-ctype 8.3.9-r0 apk
php83-curl 8.3.9-r0 apk
php83-dom 8.3.9-r0 apk
php83-fileinfo 8.3.9-r0 apk
php83-fpm 8.3.9-r0 apk
php83-iconv 8.3.9-r0 apk
php83-intl 8.3.9-r0 apk
php83-mbstring 8.3.9-r0 apk
php83-mysqlnd 8.3.9-r0 apk
php83-opcache 8.3.9-r0 apk
php83-openssl 8.3.9-r0 apk
php83-pdo 8.3.9-r0 apk
php83-pdo_mysql 8.3.9-r0 apk
php83-pdo_pgsql 8.3.9-r0 apk
php83-pdo_sqlite 8.3.9-r0 apk
php83-phar 8.3.9-r0 apk
php83-session 8.3.9-r0 apk
php83-simplexml 8.3.9-r0 apk
php83-tokenizer 8.3.9-r0 apk
php83-xml 8.3.9-r0 apk
php83-xmlwriter 8.3.9-r0 apk
php83-zip 8.3.9-r0 apk
phpdocumentor/reflection-common 2.2.0 php-composer
phpdocumentor/type-resolver 1.8.0 php-composer
phpoption/phpoption 1.9.2 php-composer
phpstan/phpdoc-parser 1.25.0 php-composer
phpunit/php-code-coverage 9.2.30 php-composer
phpunit/php-file-iterator 3.0.6 php-composer
phpunit/php-invoker 3.1.1 php-composer
phpunit/php-text-template 2.0.4 php-composer
phpunit/php-timer 5.0.3 php-composer
phpunit/phpunit 9.6.16 php-composer
popt 1.19-r3 apk
procps-ng 4.0.4-r0 apk
psr/cache 3.0.0 php-composer
psr/clock 1.0.0 php-composer
psr/container 2.0.2 php-composer
psr/event-dispatcher 1.0.0 php-composer
psr/http-client 1.0.3 php-composer
psr/http-factory 1.0.2 php-composer
psr/http-message 2.0 php-composer
psr/log 3.0.0 php-composer
psr/simple-cache 3.0.0 php-composer
psy/psysh v0.12.0 php-composer
ralouphie/getallheaders 3.0.3 php-composer
ramsey/collection 2.0.0 php-composer
ramsey/uuid 4.7.5 php-composer
readline 8.2.10-r0 apk
scanelf 1.3.7-r2 apk
sebastian/cli-parser 1.0.1 php-composer
sebastian/code-unit 1.0.8 php-composer
sebastian/code-unit-reverse-lookup 2.0.3 php-composer
sebastian/comparator 4.0.8 php-composer
sebastian/complexity 2.0.3 php-composer
sebastian/diff 4.0.5 php-composer
sebastian/environment 5.1.5 php-composer
sebastian/exporter 4.0.5 php-composer
sebastian/global-state 5.0.6 php-composer
sebastian/lines-of-code 1.0.4 php-composer
sebastian/object-enumerator 4.0.4 php-composer
sebastian/object-reflector 2.0.4 php-composer
sebastian/recursion-context 4.0.5 php-composer
sebastian/resource-operations 3.0.3 php-composer
sebastian/type 3.2.1 php-composer
sebastian/version 3.0.2 php-composer
shadow 4.15.1-r0 apk
skalibs 2.14.1.1-r0 apk
spatie/backtrace 1.5.3 php-composer
spatie/flare-client-php 1.4.4 php-composer
spatie/ignition 1.12.0 php-composer
spatie/laravel-ignition 2.4.2 php-composer
sqlite-libs 3.45.3-r1 apk
squizlabs/php_codesniffer 3.9.0 php-composer
ssl_client 1.36.1-r29 apk
symfony/cache v6.4.3 php-composer
symfony/cache-contracts v3.4.0 php-composer
symfony/console v6.4.3 php-composer
symfony/css-selector v7.0.3 php-composer
symfony/deprecation-contracts v3.4.0 php-composer
symfony/error-handler v6.4.3 php-composer
symfony/event-dispatcher v7.0.3 php-composer
symfony/event-dispatcher-contracts v3.4.0 php-composer
symfony/finder v6.4.0 php-composer
symfony/http-foundation v6.4.3 php-composer
symfony/http-kernel v6.4.3 php-composer
symfony/mailer v6.4.3 php-composer
symfony/mime v6.4.3 php-composer
symfony/options-resolver v7.0.0 php-composer
symfony/polyfill-ctype v1.29.0 php-composer
symfony/polyfill-intl-grapheme v1.29.0 php-composer
symfony/polyfill-intl-idn v1.29.0 php-composer
symfony/polyfill-intl-normalizer v1.29.0 php-composer
symfony/polyfill-mbstring v1.29.0 php-composer
symfony/polyfill-php72 v1.29.0 php-composer
symfony/polyfill-php80 v1.29.0 php-composer
symfony/polyfill-php83 v1.29.0 php-composer
symfony/polyfill-uuid v1.29.0 php-composer
symfony/process v6.4.3 php-composer
symfony/routing v6.4.3 php-composer
symfony/service-contracts v3.4.1 php-composer
symfony/string v7.0.3 php-composer
symfony/thanks v1.2.10 php-composer
symfony/translation v6.4.3 php-composer
symfony/translation-contracts v3.4.1 php-composer
symfony/uid v6.4.3 php-composer
symfony/var-dumper v6.4.3 php-composer
symfony/var-exporter v7.0.3 php-composer
symfony/yaml v6.4.3 php-composer
theseer/tokenizer 1.2.2 php-composer
tijsverkoyen/css-to-inline-styles v2.2.7 php-composer
tzdata 2024a-r1 apk
utmps-libs 0.1.2.2-r1 apk
vlucas/phpdotenv v5.6.0 php-composer
voku/portable-ascii 2.0.1 php-composer
webmozart/assert 1.11.0 php-composer
xz-libs 5.6.1-r3 apk
zlib 1.3.1-r1 apk
zstd-libs 1.5.6-r0 apk

View File

@@ -28,36 +28,27 @@ common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." }
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
param_usage_include_ports: true
param_ports:
- { external_port: "80", internal_port: "80", port_desc: "http 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
app_setup_block_enabled: true
app_setup_block: |
Access the web gui at http://SERVERIP:PORT
### 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.
# changelog
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: "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: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }

View File

@@ -1,36 +0,0 @@
## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/nginx/site-confs/default.conf.sample
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
include /config/nginx/ssl.conf;
root /app/www/public;
index index.html index.htm index.php;
location / {
# enable for basic auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
try_files $uri $uri/ /index.html /index.php$is_args$args;
}
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
# deny access to .htaccess/.htpasswd files
location ~ /\.ht {
deny all;
}
}

View File

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

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

@@ -1,10 +1,11 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
DEFAULT_CONF="/config/nginx/site-confs/default.conf"
OLD_ROOT="root /var/www/localhost/heimdall/public;"
NEW_ROOT="root /app/www/public;"
if grep -q "${OLD_ROOT}" "${DEFAULT_CONF}" 2>/dev/null; then
if [[ -f "${DEFAULT_CONF}" ]] && grep -q "${OLD_ROOT}" "${DEFAULT_CONF}" 2>/dev/null; then
echo "updating root in ${DEFAULT_CONF}"
sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}"
fi