Compare commits

..

60 Commits

Author SHA1 Message Date
LinuxServer-CI
c3f32495f0 Bot Updating Templated Files 2023-04-02 10:00:54 +02:00
LinuxServer-CI
01e3907bf4 Bot Updating Templated Files 2023-04-02 09:59:12 +02:00
LinuxServer-CI
078e14b364 Bot Updating Templated Files 2023-04-02 09:57:36 +02:00
LinuxServer-CI
5be9ac628e Bot Updating Package Versions 2023-03-05 02:05:50 -06:00
LinuxServer-CI
4affd0d62c Bot Updating Templated Files 2023-03-05 01:57:21 -06:00
LinuxServer-CI
335bcf8341 Bot Updating Templated Files 2023-02-12 08:58:31 +01:00
LinuxServer-CI
9d6a33a016 Bot Updating Templated Files 2023-02-12 08:57:13 +01:00
LinuxServer-CI
ec7a36b9f3 Bot Updating Templated Files 2022-12-04 02:00:12 -06:00
LinuxServer-CI
74bd847b3d Bot Updating Templated Files 2022-12-04 01:58:46 -06:00
LinuxServer-CI
41aa6f10b3 Bot Updating Templated Files 2022-12-04 08:57:22 +01:00
LinuxServer-CI
d457f2be3f Bot Updating Package Versions 2022-11-13 02:05:38 -06:00
LinuxServer-CI
3e30842078 Bot Updating Templated Files 2022-11-13 01:57:15 -06:00
LinuxServer-CI
069e3aa6d1 Bot Updating Package Versions 2022-10-09 03:02:03 -05:00
LinuxServer-CI
ccbb8d8dc0 Bot Updating Templated Files 2022-09-18 02:57:19 -05:00
LinuxServer-CI
2ab82cba59 Bot Updating Package Versions 2022-09-04 03:01:42 -05:00
LinuxServer-CI
91583d6728 Bot Updating Package Versions 2022-08-28 03:01:06 -05:00
LinuxServer-CI
6e19a94f0f Bot Updating Package Versions 2022-08-21 10:02:32 +02:00
LinuxServer-CI
1b68b9036b Bot Updating Package Versions 2022-08-14 03:01:36 -05:00
LinuxServer-CI
2111014149 Bot Updating Package Versions 2022-08-07 10:01:48 +02:00
LinuxServer-CI
2ddc260e34 Bot Updating Package Versions 2022-07-24 03:02:42 -05:00
LinuxServer-CI
02dcbde116 Bot Updating Package Versions 2022-07-17 10:02:06 +02:00
LinuxServer-CI
f32bc7b0b3 Bot Updating Package Versions 2022-07-03 03:01:22 -05:00
LinuxServer-CI
3c321e2dc0 Bot Updating Package Versions 2022-05-22 03:01:24 -05:00
LinuxServer-CI
d78a0a9cbd Bot Updating Templated Files 2022-05-08 02:57:12 -05:00
LinuxServer-CI
5ef18187f9 Bot Updating Templated Files 2022-05-01 02:58:43 -05:00
LinuxServer-CI
48fe16b9fe Bot Updating Templated Files 2022-05-01 02:57:23 -05:00
LinuxServer-CI
3ca9e7e601 Bot Updating Package Versions 2022-04-17 10:02:04 +02:00
LinuxServer-CI
f6439f3f18 Bot Updating Package Versions 2022-04-10 10:02:12 +02:00
LinuxServer-CI
b2acea71de Bot Updating Package Versions 2022-04-03 10:02:35 +02:00
LinuxServer-CI
7e152e0aa3 Bot Updating Package Versions 2022-03-27 10:02:35 +02:00
LinuxServer-CI
67c8e3b1ab Bot Updating Package Versions 2022-02-13 09:00:54 +01:00
LinuxServer-CI
367a8fce2e Bot Updating Package Versions 2022-01-30 09:02:15 +01:00
LinuxServer-CI
198df0f24c Bot Updating Templated Files 2021-12-19 08:58:15 +01:00
LinuxServer-CI
e6fc9f23f5 Bot Updating Templated Files 2021-12-19 08:57:05 +01:00
LinuxServer-CI
81194dfc68 Bot Updating Package Versions 2021-11-21 09:01:07 +01:00
LinuxServer-CI
6a0c2c80eb Bot Updating Package Versions 2021-10-31 09:02:50 +01:00
LinuxServer-CI
c2143f0bba Bot Updating Package Versions 2021-10-24 10:02:15 +02:00
LinuxServer-CI
288a503f60 Bot Updating Package Versions 2021-10-17 10:01:40 +02:00
LinuxServer-CI
ee2af604e8 Bot Updating Package Versions 2021-10-10 10:01:53 +02:00
LinuxServer-CI
1c25f645f9 Bot Updating Package Versions 2021-10-03 10:15:27 +02:00
LinuxServer-CI
aabb572def Bot Updating Templated Files 2021-10-03 09:58:23 +02:00
LinuxServer-CI
3849c6174d Bot Updating Templated Files 2021-10-03 09:57:23 +02:00
LinuxServer-CI
120996c9e9 Bot Updating Package Versions 2021-09-05 10:01:12 +02:00
LinuxServer-CI
497627bf1f Bot Updating Package Versions 2021-08-29 10:05:56 +02:00
LinuxServer-CI
c5600a4a45 Bot Updating Templated Files 2021-08-29 09:57:02 +02:00
LinuxServer-CI
e972541171 Bot Updating Package Versions 2021-08-15 10:12:49 +02:00
LinuxServer-CI
7ffefd21e1 Bot Updating Package Versions 2021-08-08 10:03:57 +02:00
LinuxServer-CI
f6504b0eeb Bot Updating Package Versions 2021-08-01 10:03:44 +02:00
LinuxServer-CI
88d1c5e306 Bot Updating Templated Files 2021-07-04 03:57:58 -04:00
LinuxServer-CI
22f2e1e4e6 Bot Updating Templated Files 2021-07-04 03:56:58 -04:00
LinuxServer-CI
f2087a0f85 Bot Updating Package Versions 2021-06-13 04:40:39 -04:00
LinuxServer-CI
1a85f2a67a Bot Updating Package Versions 2021-04-21 04:19:02 -04:00
LinuxServer-CI
5d1520a133 Bot Updating Templated Files 2021-04-18 03:59:14 -04:00
LinuxServer-CI
675633a635 Bot Updating Templated Files 2021-04-18 07:57:53 +00:00
LinuxServer-CI
047515ff2d Bot Updating Package Versions 2021-04-13 11:12:24 -04:00
aptalca
3f01055d3b Merge pull request #77 from linuxserver/js-dev
Publish js tag
2021-04-13 10:35:35 -04:00
aptalca
da45adac0b run migrate on restart 2021-04-13 09:37:48 -04:00
aptalca
c9751a38e9 fix ci test port 2021-04-12 15:17:00 -04:00
aptalca
71af7141d3 add python2 from node-gyp 2021-04-12 14:19:24 -04:00
aptalca
2425513f79 initial release for v3 on js tag 2021-04-12 12:18:46 -04:00
35 changed files with 1020 additions and 548 deletions

View File

@@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4

View File

@@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-heimdall/edit/development/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-heimdall/edit/js/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-heimdall)
@@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-heimdall/tree/development/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-heimdall/tree/js/root), add an entry to the changelog
```yml
changelogs:

View File

@@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-heimdall/blob/development/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-heimdall/blob/js/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

View File

@@ -1,12 +0,0 @@
name: Comment on invalid interaction
on:
issues:
types:
- labeled
jobs:
add-comment-on-invalid:
if: github.event.label.name == 'invalid'
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1
secrets: inherit

14
.github/workflows/call_issue_pr_tracker.yml vendored Executable file
View File

@@ -0,0 +1,14 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

13
.github/workflows/call_issues_cron.yml vendored Executable file
View File

@@ -0,0 +1,13 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '14 15 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit

View File

@@ -4,24 +4,24 @@ on:
workflow_dispatch:
jobs:
external-trigger-development:
external-trigger-js:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: External Trigger
if: github.ref == 'refs/heads/development'
if: github.ref == 'refs/heads/js'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_HEIMDALL_DEVELOPMENT }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_HEIMDALL_DEVELOPMENT is set; skipping trigger. ****"
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_HEIMDALL_JS }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_HEIMDALL_JS is set; skipping trigger. ****"
exit 0
fi
echo "**** External trigger running off of development branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_HEIMDALL_DEVELOPMENT\". ****"
echo "**** External trigger running off of js branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_HEIMDALL_JS\". ****"
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" | jq -r '. | .sha' | cut -c1-8)
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" | jq -r '. | .sha' | cut -c1-8)
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for heimdall branch development"
FAILURE_REASON="Can't retrieve external version for heimdall branch js"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-heimdall/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
@@ -32,7 +32,7 @@ jobs:
echo "**** External version: ${EXT_RELEASE} ****"
echo "**** Retrieving last pushed version ****"
image="linuxserver/heimdall"
tag="development"
tag="js"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fheimdall%3Apull" \
| jq -r '.token')
@@ -58,7 +58,7 @@ jobs:
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for heimdall tag development"
FAILURE_REASON="Can't retrieve last pushed version for heimdall tag js"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
@@ -68,13 +68,13 @@ jobs:
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/buildWithParameters?PACKAGE_CHECK=false \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
@@ -89,7 +89,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for heimdall tag development. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
TRIGGER_REASON="A version change was detected for heimdall tag js. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View File

@@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-heimdall/blob/development/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-heimdall/blob/development/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-heimdall/blob/development/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-heimdall/blob/js/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -4,25 +4,25 @@ on:
workflow_dispatch:
jobs:
package-trigger-development:
package-trigger-js:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/development'
if: github.ref == 'refs/heads/js'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_HEIMDALL_DEVELOPMENT }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_HEIMDALL_DEVELOPMENT is set; skipping trigger. ****"
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/lastBuild/api/json | jq -r '.building') == "true" ]; then
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of development branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_HEIMDALL_DEVELOPMENT\". ****"
echo "**** Package trigger running off of js branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_HEIMDALL_JS\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/buildWithParameters?PACKAGE_CHECK=true \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"

View File

@@ -2,7 +2,7 @@ name: Package Trigger Scheduler
on:
schedule:
- cron: '54 7 * * 0'
- cron: '14 18 * * 5'
workflow_dispatch:
jobs:

10
.github/workflows/permissions.yml vendored Executable file
View File

@@ -0,0 +1,10 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@@ -1,23 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v6.0.1
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,6 +1,4 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17
FROM ghcr.io/linuxserver/baseimage-alpine:3.13
# set version label
ARG BUILD_DATE
@@ -10,46 +8,45 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
php81-ctype \
php81-curl \
php81-intl \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pdo_mysql \
php81-tokenizer \
php81-zip && \
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 && \
apk add --no-cache \
nodejs \
npm && \
echo "**** install heimdall ****" && \
mkdir -p \
/heimdall && \
/app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdall.tar.gz -L \
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
/tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
tar xf \
/tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \
/tmp/heimdalljs.tar.gz -C \
/app/heimdall/ --strip-components=1 && \
cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@@ -1,6 +1,4 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.13
# set version label
ARG BUILD_DATE
@@ -10,46 +8,45 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
php81-ctype \
php81-curl \
php81-intl \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pdo_mysql \
php81-tokenizer \
php81-zip && \
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 && \
apk add --no-cache \
nodejs \
npm && \
echo "**** install heimdall ****" && \
mkdir -p \
/heimdall && \
/app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdall.tar.gz -L \
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
/tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
tar xf \
/tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \
/tmp/heimdalljs.tar.gz -C \
/app/heimdall/ --strip-components=1 && \
cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

View File

@@ -1,6 +1,4 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.13
# set version label
ARG BUILD_DATE
@@ -10,46 +8,45 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="aptalca"
# environment settings
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
php81-ctype \
php81-curl \
php81-intl \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pdo_mysql \
php81-tokenizer \
php81-zip && \
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 && \
apk add --no-cache \
nodejs \
npm && \
echo "**** install heimdall ****" && \
mkdir -p \
/heimdall && \
/app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdall.tar.gz -L \
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
/tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
tar xf \
/tmp/heimdall.tar.gz -C \
/app/www-tmp --strip-components=1 && \
/tmp/heimdalljs.tar.gz -C \
/app/heimdall/ --strip-components=1 && \
cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

193
Jenkinsfile vendored
View File

@@ -17,9 +17,9 @@ pipeline {
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = '2.x'
EXT_GIT_BRANCH = 'master'
EXT_USER = 'linuxserver'
EXT_REPO = 'Heimdall'
EXT_REPO = 'heimdalljs'
CONTAINER_NAME = 'heimdall'
BUILD_VERSION_ARG = 'HEIMDALL_RELEASE'
LS_USER = 'linuxserver'
@@ -31,7 +31,7 @@ pipeline {
MULTIARCH='true'
CI='true'
CI_WEB='true'
CI_PORT='80'
CI_PORT='3000'
CI_SSL='false'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
@@ -45,7 +45,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':development 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':js 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -59,7 +59,7 @@ pipeline {
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/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
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'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -69,7 +69,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
tagsha=$(git rev-list -n 1 js-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -154,10 +154,10 @@ pipeline {
}
}
}
// If this is a development build use live docker endpoints
// If this is a js build use live docker endpoints
stage("Set ENV live build"){
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -167,20 +167,20 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-js-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-js-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-js-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'js-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'js-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'js-version-' + env.EXT_RELEASE_CLEAN
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "development"}
not {branch "js"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -190,13 +190,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'js-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
@@ -213,13 +213,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.META_TAG = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'development-version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'js-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'js-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
}
@@ -240,24 +240,21 @@ pipeline {
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${S3_SECRET}\" \
-e ACCESS_KEY=\"${S3_KEY}\" \
-t ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest \
python /upload.py'''
-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 && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
}
}
}
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -268,13 +265,13 @@ 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
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=js -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# 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}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f development
git checkout -f js
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
@@ -287,7 +284,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md"
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}"
@@ -297,14 +294,14 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f development
git checkout -f js
for i in ${TEMPLATES_TO_DELETE}; do
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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old templates"
echo "Deleting old and deprecated templates"
rm -Rf ${TEMPDIR}
exit 0
else
@@ -318,7 +315,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f development
git checkout -f js
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@@ -376,7 +373,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -415,7 +412,7 @@ pipeline {
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "development"
branch "js"
environment name: 'EXIT_STATUS', value: ''
}
steps{
@@ -452,7 +449,8 @@ pipeline {
}
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-heimdall/packages\" \
@@ -464,8 +462,8 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--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} \
--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 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -482,7 +480,8 @@ pipeline {
stage('Build X86') {
steps {
echo "Running on node: ${NODE_NAME}"
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-heimdall/packages\" \
@@ -494,8 +493,8 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--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} \
--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 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -509,7 +508,8 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-heimdall/packages\" \
@@ -521,8 +521,8 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--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.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--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.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
@@ -543,7 +543,8 @@ pipeline {
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "docker build \
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-heimdall/packages\" \
@@ -555,8 +556,8 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--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} \
--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 \
--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) {
@@ -572,7 +573,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -585,31 +586,17 @@ pipeline {
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
fi
if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info -v > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi
touch ${TEMPDIR}/package_versions.txt
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f development
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f js
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@@ -633,7 +620,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -654,7 +641,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "development"
branch "js"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -757,12 +744,12 @@ pipeline {
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:js
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:development
docker push ${PUSHIMAGE}:js
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@@ -776,7 +763,7 @@ pipeline {
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:development || :
${DELETEIMAGE}:js || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
@@ -815,19 +802,19 @@ pipeline {
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
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
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-development
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-development
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-development
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-js
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-js
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-js
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
@@ -835,23 +822,23 @@ pipeline {
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-development
docker push ${MANIFESTIMAGE}:arm32v7-development
docker push ${MANIFESTIMAGE}:arm64v8-development
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-js
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-js
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-js
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:development || :
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:js || :
docker manifest create ${MANIFESTIMAGE}:js ${MANIFESTIMAGE}:amd64-js ${MANIFESTIMAGE}:arm32v7-js ${MANIFESTIMAGE}:arm64v8-js
docker manifest annotate ${MANIFESTIMAGE}:js ${MANIFESTIMAGE}:arm32v7-js --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:js ${MANIFESTIMAGE}:arm64v8-js --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
@@ -866,7 +853,7 @@ pipeline {
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
docker manifest push --purge ${MANIFESTIMAGE}:development
docker manifest push --purge ${MANIFESTIMAGE}:js
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@@ -879,13 +866,13 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-development \
${DELETEIMAGE}:amd64-js \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-development \
${DELETEIMAGE}:arm32v7-js \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-development \
${DELETEIMAGE}:arm64v8-js \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
@@ -904,7 +891,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "development"
branch "js"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -916,14 +903,14 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to development",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to js",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/commits/${EXT_RELEASE_CLEAN} | jq '.commit.message' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "development",\
"target_commitish": "js",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json
@@ -987,12 +974,12 @@ pipeline {
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else {
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}

View File

@@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-heimdall/blob/development/.github/CONTRIBUTING.md -->
<!-- Please read the https://github.com/linuxserver/docker-heimdall/blob/js/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@@ -37,13 +37,11 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/heimdall)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-heimdall%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-heimdall%2Fjob%2Fjs%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/js/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fheimdall%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/latest/index.html)
[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.
[![heimdall](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png)](https://heimdall.site)
@@ -52,7 +50,7 @@ Why not use it as your browser start page? It even has the ability to include a
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/heimdall:development` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/heimdall:js` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
@@ -60,7 +58,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> |
## Version Tags
@@ -69,8 +67,7 @@ This image provides various versions that are available via tags. Please read th
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable Heimdall releases. |
| development | ✅ | Latest commit from the github 2.x branch. |
| development | ✅ | Latest commit from the github master branch. |
## Application Setup
Access the web gui at http://SERVERIP:PORT
@@ -78,7 +75,7 @@ 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.
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. New installs will automatically pick it up and implement password protected access. Existing users updating their image can delete their site config at `/config/nginx/site-confs/default` and restart the container after updating the image. A new site config with htpasswd support will be created in its place.
## Usage
@@ -91,17 +88,16 @@ Here are some example snippets to help you get started creating a container.
version: "2.1"
services:
heimdall:
image: lscr.io/linuxserver/heimdall:development
image: lscr.io/linuxserver/heimdall:js
container_name: heimdall
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TZ=Etc/UTC
volumes:
- /path/to/appdata/config:/config
ports:
- 80:80
- 443:443
- 3000:3000
restart: unless-stopped
```
@@ -112,12 +108,12 @@ docker run -d \
--name=heimdall \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 80:80 \
-p 443:443 \
-e TZ=Etc/UTC \
-p 3000:3000 \
-v /path/to/appdata/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/heimdall:development
lscr.io/linuxserver/heimdall:js
```
## Parameters
@@ -126,11 +122,10 @@ Container images are configured using parameters passed at runtime (such as thos
| Parameter | Function |
| :----: | --- |
| `-p 80` | http gui |
| `-p 443` | https gui |
| `-p 3000` | http gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-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. |
## Environment variables from files (Docker secrets)
@@ -176,7 +171,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:js`
## Updating Info
@@ -194,7 +189,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/heimdall:development`
* Update the image: `docker pull lscr.io/linuxserver/heimdall:js`
* Stop the running container: `docker stop heimdall`
* Delete the container: `docker rm heimdall`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@@ -229,7 +224,7 @@ cd docker-heimdall
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/heimdall:development .
-t lscr.io/linuxserver/heimdall:js .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@@ -242,19 +237,22 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **14.11.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **04.11.22:** - Build commits to upstream branch 2.x.
* **13.03.21:** - Make searchproviders.yaml user configurable.
* **11.03.21:** - Rebase to alpine 3.14.
* **12.04.21:** - Add experimental `js` tag for v3.
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
* **10.02.21:** - Rebasing to alpine 3.13.
* **17.08.20:** - Add php7-curl.
* **01.06.20:** - Rebasing to alpine 3.12.
* **17.01.20:** - Use nginx from baseimage.
* **19.12.19:** - Rebasing to alpine 3.11.
* **15.07.19:** - Save laravel.log to /config, install heimdall during first start.
* **16.07.19:** - Save laravel.log to /config/log/heimdall.
* **28.06.19:** - Rebasing to alpine 3.10.
* **01.04.19:** - Fix permission detect logic.
* **26.03.19:** - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown.
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **15.03.19:** - Clarify docker image tags in readme.
* **22.02.19:** - Rebasing to alpine 3.9.
* **16.01.18:** - Generate random app key in .env for new installs.
* **20.11.18:** - Upgrade baseimage packages during build.
* **04.11.18:** - Add php7-zip.
* **31.10.18:** - Add queue service.
* **17.10.18:** - Symlink avatars folder.
@@ -262,5 +260,5 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
* **07.10.18:** - Symlink `.env` rather than copy. It now resides under `/config/www`
* **30.09.18:** - Multi-arch image. Move `.env` to `/config`.
* **05.09.18:** - Rebase to alpine linux 3.8.
* **06.03.18:** - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place
* **06.03.18:** - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default and restart the container, a new default site config with htpasswd support will be created in its place
* **12.02.18:** - Initial Release.

View File

@@ -4,12 +4,12 @@
project_name: docker-heimdall
external_type: github_commit
release_type: prerelease
release_tag: development
ls_branch: development
release_tag: js
ls_branch: js
repo_vars:
- EXT_GIT_BRANCH = '2.x'
- EXT_GIT_BRANCH = 'master'
- EXT_USER = 'linuxserver'
- EXT_REPO = 'Heimdall'
- EXT_REPO = 'heimdalljs'
- CONTAINER_NAME = 'heimdall'
- BUILD_VERSION_ARG = 'HEIMDALL_RELEASE'
- LS_USER = 'linuxserver'
@@ -21,7 +21,7 @@ repo_vars:
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
- CI_PORT='80'
- CI_PORT='3000'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'

View File

@@ -1,85 +1,699 @@
alpine-baselayout-3.4.0-r0
alpine-baselayout-data-3.4.0-r0
alpine-keys-2.4-r1
alpine-release-3.17.1-r0
apache2-utils-2.4.55-r0
apk-tools-2.12.10-r1
apr-1.7.1-r0
apr-util-1.6.1-r14
argon2-libs-20190702-r2
bash-5.2.15-r0
brotli-libs-1.0.9-r9
busybox-1.35.0-r29
busybox-binsh-1.35.0-r29
ca-certificates-20220614-r4
ca-certificates-bundle-20220614-r4
coreutils-9.1-r0
curl-7.87.0-r1
git-2.38.3-r1
icu-data-en-72.1-r1
icu-libs-72.1-r1
jq-1.6-r2
libacl-2.3.1-r1
libattr-2.5.1-r2
libbz2-1.0.8-r4
libc-utils-0.7.2-r3
libcrypto3-3.0.7-r2
libcurl-7.87.0-r1
libedit-20221030.3.1-r0
libexpat-2.5.0-r0
libgcc-12.2.1_git20220924-r4
libintl-0.21.1-r1
libpq-15.1-r0
libproc-3.3.17-r2
libssl3-3.0.7-r2
libstdc++-12.2.1_git20220924-r4
libuuid-2.38.1-r1
libxml2-2.10.3-r1
libzip-1.9.2-r2
linux-pam-1.5.2-r1
logrotate-3.20.1-r3
musl-1.2.3-r4
musl-utils-1.2.3-r4
nano-7.0-r0
ncurses-libs-6.3_p20221119-r0
ncurses-terminfo-base-6.3_p20221119-r0
nghttp2-libs-1.51.0-r0
nginx-1.22.1-r0
oniguruma-6.9.8-r0
openssl-3.0.7-r2
pcre-8.45-r2
pcre2-10.42-r0
php81-8.1.14-r0
php81-common-8.1.14-r0
php81-ctype-8.1.14-r0
php81-curl-8.1.14-r0
php81-fileinfo-8.1.14-r0
php81-fpm-8.1.14-r0
php81-intl-8.1.14-r0
php81-mbstring-8.1.14-r0
php81-mysqlnd-8.1.14-r0
php81-openssl-8.1.14-r0
php81-pdo-8.1.14-r0
php81-pdo_mysql-8.1.14-r0
php81-pdo_pgsql-8.1.14-r0
php81-pdo_sqlite-8.1.14-r0
php81-session-8.1.14-r0
php81-simplexml-8.1.14-r0
php81-tokenizer-8.1.14-r0
php81-xml-8.1.14-r0
php81-xmlwriter-8.1.14-r0
php81-zip-8.1.14-r0
popt-1.19-r0
procps-3.3.17-r2
readline-8.2.0-r0
scanelf-1.3.5-r1
shadow-4.13-r0
skalibs-2.12.0.1-r0
sqlite-libs-3.40.1-r0
ssl_client-1.35.0-r29
tzdata-2022f-r1
utmps-libs-0.1.2.0-r1
xz-5.2.9-r0
xz-libs-5.2.9-r0
zlib-1.2.13-r0
zstd-libs-1.5.2-r9
NAME VERSION TYPE
@mapbox/node-pre-gyp 1.0.3 npm
@my-scope/package-a 0.0.0 npm
@my-scope/package-b 0.0.0 npm
@quasar/extras 1.10.2 npm
@tokenizer/token 0.3.0 npm
@types/color-name 1.1.1 npm
@types/node 13.13.4 npm
JSONStream 1.3.5 npm
abbrev 1.1.1 npm
accepts 1.3.7 npm
agent-base 4.2.1 npm
agent-base 4.3.0 npm
agent-base 6.0.2 npm
agentkeepalive 3.5.2 npm
ajv 6.12.6 npm
alpine-baselayout 3.2.0-r8 apk
alpine-keys 2.4-r0 apk
ansi-align 2.0.0 npm
ansi-escapes 4.3.1 npm
ansi-regex 2.1.1 npm
ansi-regex 3.0.0 npm
ansi-regex 4.1.0 npm
ansi-regex 4.1.1 npm
ansi-regex 5.0.0 npm
ansi-styles 3.2.1 npm
ansi-styles 4.2.1 npm
ansicolors 0.3.2 npm
ansistyles 0.1.3 npm
any-promise 1.3.0 npm
apk-tools 2.12.7-r0 apk
append-field 1.0.0 npm
aproba 1.2.0 npm
aproba 2.0.0 npm
archy 1.0.0 npm
are-we-there-yet 1.1.4 npm
are-we-there-yet 1.1.5 npm
array-flatten 1.1.1 npm
asap 2.0.6 npm
asn1 0.2.4 npm
assert-plus 1.0.0 npm
asynckit 0.4.0 npm
aws-sign2 0.7.0 npm
aws4 1.11.0 npm
aws4 1.8.0 npm
axios 0.21.1 npm
balanced-match 1.0.0 npm
base32.js 0.0.1 npm
base64-js 1.3.1 npm
bash 5.1.16-r0 apk
basic-auth 2.0.1 npm
bcrypt 5.0.1 npm
bcrypt-pbkdf 1.0.2 npm
bin-links 1.1.8 npm
bl 4.0.3 npm
block-stream 0.0.9 npm
bluebird 3.5.5 npm
bluebird 3.7.2 npm
body-parser 1.19.0 npm
boxen 1.3.0 npm
brace-expansion 1.1.11 npm
brotli-libs 1.0.9-r3 apk
buffer 5.4.3 npm
buffer 5.6.0 npm
buffer-alloc 1.2.0 npm
buffer-alloc-unsafe 1.1.0 npm
buffer-equal-constant-time 1.0.1 npm
buffer-fill 1.0.0 npm
buffer-from 1.0.0 npm
buffer-from 1.1.1 npm
builtins 1.0.3 npm
busboy 0.2.14 npm
busybox 1.32.1 binary
busybox 1.32.1-r9 apk
byline 5.0.0 npm
byte-size 5.0.1 npm
bytes 3.1.0 npm
c-ares 1.17.2-r0 apk
ca-certificates 20220614-r0 apk
ca-certificates-bundle 20220614-r0 apk
cacache 12.0.3 npm
call-limit 1.1.1 npm
camelcase 4.1.0 npm
camelcase 5.3.1 npm
capture-stack-trace 1.0.0 npm
caseless 0.12.0 npm
chalk 2.4.1 npm
chalk 4.1.0 npm
chardet 0.7.0 npm
chownr 1.1.4 npm
chownr 2.0.0 npm
ci-info 1.6.0 npm
ci-info 2.0.0 npm
cidr-regex 2.0.10 npm
cli-boxes 1.0.0 npm
cli-color 1.4.0 npm
cli-columns 3.1.2 npm
cli-cursor 3.1.0 npm
cli-table3 0.5.1 npm
cli-width 3.0.0 npm
cliui 5.0.0 npm
clone 1.0.4 npm
cmd-shim 3.0.3 npm
code-point-at 1.1.0 npm
color-convert 1.9.1 npm
color-convert 1.9.3 npm
color-convert 2.0.1 npm
color-name 1.1.3 npm
color-name 1.1.4 npm
colors 1.3.3 npm
columnify 1.5.4 npm
combined-stream 1.0.6 npm
combined-stream 1.0.8 npm
commander 2.20.3 npm
concat-map 0.0.1 npm
concat-stream 1.6.2 npm
config-chain 1.1.12 npm
configstore 3.1.5 npm
console-control-strings 1.1.0 npm
content-disposition 0.5.3 npm
content-type 1.0.4 npm
cookie 0.4.0 npm
cookie-parser 1.4.5 npm
cookie-signature 1.0.6 npm
copy-concurrently 1.0.5 npm
core-js 3.10.1 npm
core-util-is 1.0.2 npm
coreutils 8.32-r2 apk
cors 2.8.5 npm
create-error-class 3.0.2 npm
cross-spawn 5.1.0 npm
crypto-random-string 1.0.0 npm
curl 7.79.1-r3 apk
cyclist 0.2.2 npm
d 1.0.1 npm
dashdash 1.14.1 npm
debug 2.6.9 npm
debug 3.1.0 npm
debug 3.2.7 npm
debug 4.3.1 npm
debuglog 1.0.1 npm
decamelize 1.2.0 npm
decode-uri-component 0.2.0 npm
deep-extend 0.6.0 npm
defaults 1.0.3 npm
define-properties 1.1.3 npm
delayed-stream 1.0.0 npm
delegates 1.0.0 npm
denque 1.5.1 npm
depd 1.1.2 npm
depd 2.0.0 npm
destroy 1.0.4 npm
detect-indent 5.0.0 npm
detect-libc 1.0.3 npm
detect-newline 2.1.0 npm
dezalgo 1.0.3 npm
dicer 0.2.5 npm
dijkstrajs 1.0.1 npm
docker-modem 2.1.4 npm
dockerode 3.2.1 npm
dot-prop 4.2.1 npm
dotenv 5.0.1 npm
dotenv 8.2.0 npm
dottie 2.0.2 npm
duplexer3 0.1.4 npm
duplexify 3.6.0 npm
ecc-jsbn 0.1.2 npm
ecdsa-sig-formatter 1.0.11 npm
editor 1.0.0 npm
editorconfig 0.15.3 npm
ee-first 1.1.1 npm
emoji-regex 7.0.3 npm
emoji-regex 8.0.0 npm
encodeurl 1.0.2 npm
encoding 0.1.12 npm
end-of-stream 1.4.1 npm
end-of-stream 1.4.4 npm
env-paths 2.2.0 npm
err-code 1.1.2 npm
errno 0.1.7 npm
es-abstract 1.12.0 npm
es-to-primitive 1.2.0 npm
es5-ext 0.10.53 npm
es6-iterator 2.0.3 npm
es6-promise 4.2.8 npm
es6-promisify 5.0.0 npm
es6-symbol 3.1.3 npm
es6-weak-map 2.0.3 npm
escape-html 1.0.3 npm
escape-string-regexp 1.0.5 npm
etag 1.8.1 npm
event-emitter 0.3.5 npm
execa 0.7.0 npm
express 4.17.1 npm
ext 1.4.0 npm
extend 3.0.2 npm
external-editor 3.1.0 npm
extsprintf 1.3.0 npm
fast-deep-equal 3.1.1 npm
fast-deep-equal 3.1.3 npm
fast-json-stable-stringify 2.0.0 npm
fast-json-stable-stringify 2.1.0 npm
figgy-pudding 3.5.1 npm
figures 3.2.0 npm
file-type 16.5.3 npm
finalhandler 1.1.2 npm
find-npm-prefix 1.0.2 npm
find-up 3.0.0 npm
flush-write-stream 1.0.3 npm
follow-redirects 1.13.0 npm
forever-agent 0.6.1 npm
form-data 2.3.2 npm
form-data 2.3.3 npm
forwarded 0.1.2 npm
fresh 0.5.2 npm
from2 1.3.0 npm
from2 2.3.0 npm
fs-constants 1.0.0 npm
fs-extra 7.0.1 npm
fs-minipass 1.2.7 npm
fs-minipass 2.1.0 npm
fs-vacuum 1.2.10 npm
fs-write-stream-atomic 1.0.10 npm
fs.realpath 1.0.0 npm
fstream 1.0.12 npm
function-bind 1.1.1 npm
gauge 2.7.4 npm
generate-function 2.3.1 npm
genfun 5.0.0 npm
gentle-fs 2.3.1 npm
get-caller-file 2.0.5 npm
get-stream 3.0.0 npm
get-stream 4.1.0 npm
getpass 0.1.7 npm
glob 7.1.6 npm
global-dirs 0.1.1 npm
got 6.7.1 npm
graceful-fs 4.2.3 npm
graceful-fs 4.2.4 npm
har-schema 2.0.0 npm
har-validator 5.1.5 npm
has 1.0.3 npm
has-flag 3.0.0 npm
has-flag 4.0.0 npm
has-symbols 1.0.0 npm
has-unicode 2.0.1 npm
heimdall 3.0.0 npm
hosted-git-info 2.8.9 npm
http-cache-semantics 3.8.1 npm
http-errors 1.7.2 npm
http-proxy-agent 2.1.0 npm
http-signature 1.2.0 npm
https-proxy-agent 2.2.4 npm
https-proxy-agent 5.0.0 npm
humanize-ms 1.2.1 npm
iconv-lite 0.4.23 npm
iconv-lite 0.4.24 npm
iconv-lite 0.6.3 npm
ieee754 1.2.1 npm
iferr 0.1.5 npm
iferr 1.0.2 npm
ignore-walk 3.0.3 npm
import-lazy 2.1.0 npm
imurmurhash 0.1.4 npm
infer-owner 1.0.4 npm
inflection 1.12.0 npm
inflight 1.0.6 npm
inherits 2.0.3 npm
inherits 2.0.4 npm
ini 1.3.8 npm
init-package-json 1.10.3 npm
inquirer 7.3.3 npm
ip 1.1.5 npm
ip-regex 2.1.0 npm
ipaddr.js 1.9.0 npm
is-callable 1.1.4 npm
is-ci 1.2.1 npm
is-cidr 3.0.0 npm
is-date-object 1.0.1 npm
is-fullwidth-code-point 1.0.0 npm
is-fullwidth-code-point 2.0.0 npm
is-fullwidth-code-point 3.0.0 npm
is-installed-globally 0.1.0 npm
is-npm 1.0.0 npm
is-obj 1.0.1 npm
is-path-inside 1.0.1 npm
is-promise 2.2.2 npm
is-property 1.0.2 npm
is-redirect 1.0.0 npm
is-regex 1.0.4 npm
is-retry-allowed 1.2.0 npm
is-stream 1.1.0 npm
is-symbol 1.0.2 npm
is-typedarray 1.0.0 npm
isarray 0.0.1 npm
isarray 1.0.0 npm
isarray 2.0.5 npm
isexe 2.0.0 npm
isstream 0.1.2 npm
js-beautify 1.13.0 npm
jsbn 0.1.1 npm
json-parse-better-errors 1.0.2 npm
json-schema 0.2.3 npm
json-schema 0.4.0 npm
json-schema-traverse 0.4.1 npm
json-stringify-safe 5.0.1 npm
jsonfile 4.0.0 npm
jsonparse 1.3.1 npm
jsonwebtoken 8.5.1 npm
jsprim 1.4.1 npm
jsprim 1.4.2 npm
jwa 1.4.1 npm
jws 3.2.2 npm
latest-version 3.1.0 npm
lazy-property 1.0.0 npm
libacl 2.2.53-r0 apk
libattr 2.4.48-r0 apk
libc-utils 0.7.2-r3 apk
libcipm 4.0.8 npm
libcrypto1.1 1.1.1s-r0 apk
libcurl 7.79.1-r3 apk
libgcc 10.2.1_pre1-r3 apk
libintl 0.20.2-r2 apk
libnpm 3.0.1 npm
libnpmaccess 3.0.2 npm
libnpmconfig 1.2.1 npm
libnpmhook 5.0.3 npm
libnpmorg 1.0.1 npm
libnpmpublish 1.1.2 npm
libnpmsearch 2.0.2 npm
libnpmteam 1.0.2 npm
libnpx 10.2.4 npm
libproc 3.3.16-r0 apk
libssl1.1 1.1.1s-r0 apk
libstdc++ 10.2.1_pre1-r3 apk
libtls-standalone 2.9.1-r1 apk
linux-pam 1.5.1-r0 apk
locate-path 3.0.0 npm
lock-verify 2.1.0 npm
lockfile 1.0.4 npm
lodash 4.17.21 npm
lodash._baseindexof 3.1.0 npm
lodash._baseuniq 4.6.0 npm
lodash._bindcallback 3.0.1 npm
lodash._cacheindexof 3.0.2 npm
lodash._createcache 3.1.2 npm
lodash._createset 4.0.3 npm
lodash._getnative 3.9.1 npm
lodash._root 3.0.1 npm
lodash.clonedeep 4.5.0 npm
lodash.includes 4.3.0 npm
lodash.isboolean 3.0.3 npm
lodash.isinteger 4.0.4 npm
lodash.isnumber 3.0.3 npm
lodash.isplainobject 4.0.6 npm
lodash.isstring 4.0.1 npm
lodash.once 4.1.1 npm
lodash.restparam 3.6.1 npm
lodash.union 4.6.0 npm
lodash.uniq 4.5.0 npm
lodash.without 4.4.0 npm
long 4.0.0 npm
lowercase-keys 1.0.1 npm
lru-cache 4.1.5 npm
lru-cache 5.1.1 npm
lru-cache 6.0.0 npm
lru-queue 0.1.0 npm
make-dir 1.3.0 npm
make-dir 3.1.0 npm
make-fetch-happen 5.0.2 npm
meant 1.0.2 npm
media-typer 0.3.0 npm
memoizee 0.4.14 npm
merge-descriptors 1.0.1 npm
methods 1.1.2 npm
mime 1.6.0 npm
mime-db 1.35.0 npm
mime-db 1.47.0 npm
mime-types 2.1.19 npm
mime-types 2.1.30 npm
mimic-fn 2.1.0 npm
minimatch 3.0.4 npm
minimist 1.2.5 npm
minimist 1.2.6 npm
minipass 2.9.0 npm
minipass 3.1.3 npm
minizlib 1.3.3 npm
minizlib 2.1.2 npm
mississippi 3.0.0 npm
mkdirp 0.5.5 npm
mkdirp 1.0.4 npm
mkdirp-classic 0.5.3 npm
moment 2.29.1 npm
moment-timezone 0.5.33 npm
monorepo-symlink-test 0.0.0 npm
morgan 1.10.0 npm
move-concurrently 1.0.1 npm
ms 2.0.0 npm
ms 2.1.1 npm
ms 2.1.2 npm
ms 2.1.3 npm
multer 1.4.2 npm
musl 1.2.2-r1 apk
musl-utils 1.2.2-r1 apk
mute-stream 0.0.7 npm
mute-stream 0.0.8 npm
mylib 0.0.0 npm
mysql2 2.3.0 npm
named-placeholders 1.1.2 npm
ncurses-libs 6.2_p20210109-r1 apk
ncurses-terminfo-base 6.2_p20210109-r1 apk
needle 2.6.0 npm
negotiator 0.6.2 npm
next-tick 1.0.0 npm
nghttp2-libs 1.42.0-r1 apk
node 14.20.1 binary
node-addon-api 3.1.0 npm
node-fetch 2.6.1 npm
node-fetch-npm 2.0.2 npm
node-gyp 3.8.0 npm
node-gyp 5.1.0 npm
node-pre-gyp 0.11.0 npm
nodejs 14.20.1-r0 apk
nopt 3.0.6 npm
nopt 4.0.3 npm
nopt 5.0.0 npm
normalize-package-data 2.5.0 npm
npm 14.20.1-r0 apk
npm 6.14.17 npm
npm-audit-report 1.3.3 npm
npm-bundled 1.1.1 npm
npm-cache-filename 1.0.2 npm
npm-init 0.0.0 npm
npm-install-checks 3.0.2 npm
npm-lifecycle 3.1.5 npm
npm-logical-tree 1.2.1 npm
npm-normalize-package-bin 1.0.1 npm
npm-package-arg 6.1.1 npm
npm-packlist 1.4.8 npm
npm-pick-manifest 3.0.2 npm
npm-profile 4.0.4 npm
npm-registry-fetch 4.0.7 npm
npm-run-path 2.0.2 npm
npm-user-validate 1.0.1 npm
npmlog 4.1.2 npm
number-is-nan 1.0.1 npm
nw-pre-gyp-module-test 0.0.1 npm
oauth-sign 0.9.0 npm
object-assign 4.1.1 npm
object-keys 1.0.12 npm
object.getownpropertydescriptors 2.0.3 npm
on-finished 2.3.0 npm
on-headers 1.0.2 npm
once 1.4.0 npm
onetime 5.1.0 npm
opener 1.5.2 npm
os-homedir 1.0.2 npm
os-tmpdir 1.0.2 npm
osenv 0.1.5 npm
p-finally 1.0.0 npm
p-limit 2.2.0 npm
p-limit 2.2.2 npm
p-limit 2.3.0 npm
p-locate 3.0.0 npm
p-try 2.2.0 npm
package-json 4.0.1 npm
pacote 9.5.12 npm
parallel-transform 1.1.0 npm
parseurl 1.3.3 npm
passport 0.4.1 npm
passport-jwt 4.0.0 npm
passport-strategy 1.0.0 npm
path-exists 3.0.0 npm
path-is-absolute 1.0.1 npm
path-is-inside 1.0.2 npm
path-key 2.0.1 npm
path-parse 1.0.6 npm
path-parse 1.0.7 npm
path-to-regexp 0.1.7 npm
pause 0.0.1 npm
peek-readable 4.0.1 npm
performance-now 2.1.0 npm
pify 3.0.0 npm
pngjs 3.4.0 npm
prepend-http 1.0.4 npm
process-nextick-args 2.0.0 npm
process-nextick-args 2.0.1 npm
procps 3.3.16-r0 apk
promise-inflight 1.0.1 npm
promise-retry 1.1.1 npm
promzard 0.3.0 npm
proto-list 1.2.4 npm
protoduck 5.0.1 npm
proxy-addr 2.0.5 npm
prr 1.0.1 npm
pseudomap 1.0.2 npm
psl 1.1.29 npm
psl 1.8.0 npm
pump 2.0.1 npm
pump 3.0.0 npm
pumpify 1.5.1 npm
punycode 1.4.1 npm
punycode 2.1.1 npm
qrcode 1.4.4 npm
qrcode-terminal 0.12.0 npm
qs 6.5.2 npm
qs 6.7.0 npm
quasar 1.15.10 npm
query-string 6.8.2 npm
qw 1.0.1 npm
range-parser 1.2.1 npm
raw-body 2.4.0 npm
rc 1.2.8 npm
read 1.0.7 npm
read-cmd-shim 1.0.5 npm
read-installed 4.0.3 npm
read-package-json 2.1.1 npm
read-package-tree 5.3.1 npm
readable-stream 1.1.14 npm
readable-stream 2.3.6 npm
readable-stream 2.3.7 npm
readable-stream 3.6.0 npm
readable-web-to-node-stream 3.0.2 npm
readdir-scoped-modules 1.1.0 npm
readline 8.1.0-r0 apk
registry-auth-token 3.4.0 npm
registry-url 3.1.0 npm
request 2.88.0 npm
request 2.88.2 npm
require-directory 2.1.1 npm
require-main-filename 2.0.0 npm
resolve 1.10.0 npm
resolve 1.15.1 npm
resolve-from 4.0.0 npm
restore-cursor 3.1.0 npm
retry 0.10.1 npm
retry 0.12.0 npm
retry-as-promised 3.2.0 npm
rimraf 2.7.1 npm
rimraf 3.0.2 npm
run-async 2.4.1 npm
run-queue 1.0.3 npm
rxjs 6.6.2 npm
s6-ipcserver 2.10.0.0-r0 apk
safe-buffer 5.1.2 npm
safe-buffer 5.2.0 npm
safe-buffer 5.2.1 npm
safer-buffer 2.1.2 npm
sax 1.2.4 npm
scanelf 1.2.8-r0 apk
semver 5.3.0 npm
semver 5.7.1 npm
semver 6.3.0 npm
semver 7.3.5 npm
semver-diff 2.1.0 npm
send 0.17.1 npm
seq-queue 0.0.5 npm
sequelize 6.6.2 npm
sequelize-cli 6.2.0 npm
sequelize-pool 6.1.0 npm
serve-static 1.14.1 npm
set-blocking 2.0.0 npm
setprototypeof 1.1.1 npm
sha 3.0.0 npm
shadow 4.8.1-r0 apk
shebang-command 1.2.0 npm
shebang-regex 1.0.0 npm
sigmund 1.0.1 npm
signal-exit 3.0.2 npm
skalibs 2.10.0.0-r0 apk
slide 1.1.6 npm
smart-buffer 4.1.0 npm
socks 2.3.3 npm
socks-proxy-agent 4.0.2 npm
sortablejs 1.10.2 npm
sorted-object 2.0.1 npm
sorted-union-stream 2.1.3 npm
spdx-correct 3.0.0 npm
spdx-exceptions 2.1.0 npm
spdx-expression-parse 3.0.0 npm
spdx-license-ids 3.0.5 npm
speakeasy 2.0.0 npm
split-ca 1.0.1 npm
split-on-first 1.1.0 npm
sqlite3 5.0.2 npm
sqlstring 2.3.2 npm
ssh2 0.8.9 npm
ssh2-streams 0.4.10 npm
sshpk 1.14.2 npm
sshpk 1.16.1 npm
ssl_client 1.32.1-r9 apk
ssri 6.0.2 npm
statuses 1.5.0 npm
stream-each 1.2.2 npm
stream-iterate 1.2.0 npm
stream-shift 1.0.0 npm
streamsearch 0.1.2 npm
strict-uri-encode 2.0.0 npm
string-width 1.0.2 npm
string-width 2.1.1 npm
string-width 3.1.0 npm
string-width 4.2.0 npm
string_decoder 0.10.31 npm
string_decoder 1.1.1 npm
string_decoder 1.3.0 npm
stringify-package 1.0.1 npm
strip-ansi 3.0.1 npm
strip-ansi 4.0.0 npm
strip-ansi 5.2.0 npm
strip-ansi 6.0.0 npm
strip-eof 1.0.0 npm
strip-json-comments 2.0.1 npm
strtok3 6.2.4 npm
supports-color 5.4.0 npm
supports-color 7.2.0 npm
tar 2.2.2 npm
tar 4.4.13 npm
tar 4.4.19 npm
tar 6.1.0 npm
tar-fs 2.0.1 npm
tar-stream 2.1.2 npm
term-size 1.2.0 npm
text-table 0.2.0 npm
through 2.3.8 npm
through2 2.0.3 npm
timed-out 4.0.1 npm
timers-ext 0.1.7 npm
tiny-relative-date 1.3.0 npm
tmp 0.0.33 npm
toidentifier 1.0.0 npm
token-types 4.1.1 npm
toposort-class 1.0.1 npm
tough-cookie 2.4.3 npm
tough-cookie 2.5.0 npm
tslib 1.10.0 npm
tunnel-agent 0.6.0 npm
tweetnacl 0.14.5 npm
type 1.2.0 npm
type 2.1.0 npm
type-fest 0.11.0 npm
type-is 1.6.18 npm
typedarray 0.0.6 npm
tzdata 2022f-r1 apk
uid-number 0.0.6 npm
umask 1.1.0 npm
umzug 2.3.0 npm
unique-filename 1.1.1 npm
unique-slug 2.0.0 npm
unique-string 1.0.0 npm
universalify 0.1.2 npm
unpipe 1.0.0 npm
unzip-response 2.0.1 npm
update-notifier 2.5.0 npm
uri-js 4.2.2 npm
uri-js 4.4.0 npm
url-parse-lax 1.0.0 npm
util-deprecate 1.0.2 npm
util-extend 1.0.3 npm
util-promisify 2.1.0 npm
utils-merge 1.0.1 npm
utmps 0.1.0.0-r0 apk
uuid 3.3.3 npm
uuid 3.4.0 npm
uuid 8.3.2 npm
validate-npm-package-license 3.0.4 npm
validate-npm-package-name 3.0.0 npm
validator 10.11.0 npm
vary 1.1.2 npm
verror 1.10.0 npm
vue-async-computed 3.9.0 npm
vue-i18n 8.24.3 npm
vuedraggable 2.24.3 npm
wcwidth 1.0.1 npm
which 1.3.1 npm
which-module 2.0.0 npm
wide-align 1.1.2 npm
wide-align 1.1.3 npm
widest-line 2.0.1 npm
wkx 0.5.0 npm
worker-farm 1.7.0 npm
wrap-ansi 5.1.0 npm
wrappy 1.0.2 npm
write-file-atomic 2.4.3 npm
xdg-basedir 3.0.0 npm
xtend 4.0.1 npm
xtend 4.0.2 npm
xz 5.2.5-r1 apk
xz-libs 5.2.5-r1 apk
y18n 4.0.1 npm
y18n 4.0.3 npm
yallist 2.1.2 npm
yallist 3.0.3 npm
yallist 3.1.1 npm
yallist 4.0.0 npm
yargs 13.3.0 npm
yargs 14.2.3 npm
yargs-parser 13.1.2 npm
yargs-parser 15.0.1 npm
zlib 1.2.12-r3 apk

View File

@@ -4,12 +4,11 @@
project_name: heimdall
project_url: "https://heimdall.site"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) is a way to organise all those links to your most used web sites and web applications in a simple way.
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) 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.
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.
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."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
# supported architectures
@@ -22,7 +21,7 @@ available_architectures:
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable Heimdall releases." }
- { tag: "development", desc: "Latest commit from the github 2.x branch." }
- { tag: "development", desc: "Latest commit from the github master branch." }
# container parameters
common_param_env_vars_enabled: true
@@ -32,21 +31,11 @@ param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration 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" }
- { external_port: "3000", internal_port: "3000", port_desc: "http 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: |
@@ -55,23 +44,26 @@ app_setup_block: |
### 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. New installs will automatically pick it up and implement password protected access. Existing users updating their image can delete their site config at `/config/nginx/site-confs/default` and restart the container after updating the image. A new site config with htpasswd support will be created in its place.
# changelog
changelogs:
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
- { date: "14.11.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
- { date: "04.11.22:", desc: "Build commits to upstream branch 2.x." }
- { date: "13.03.21:", desc: "Make searchproviders.yaml user configurable." }
- { date: "11.03.21:", desc: "Rebase to alpine 3.14." }
- { date: "12.04.21:", desc: "Add experimental `js` tag for v3." }
- { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." }
- { date: "10.02.21:", desc: "Rebasing to alpine 3.13." }
- { date: "17.08.20:", desc: "Add php7-curl." }
- { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }
- { date: "17.01.20:", desc: "Use nginx from baseimage." }
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- { date: "15.07.19:", desc: "Save laravel.log to /config, install heimdall during first start." }
- { date: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall." }
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }
- { date: "01.04.19:", desc: "Fix permission detect logic." }
- { date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "15.03.19:", desc: "Clarify docker image tags in readme." }
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
- { date: "16.01.18:", desc: "Generate random app key in .env for new installs." }
- { date: "20.11.18:", desc: "Upgrade baseimage packages during build." }
- { date: "04.11.18:", desc: "Add php7-zip." }
- { date: "31.10.18:", desc: "Add queue service." }
- { date: "17.10.18:", desc: "Symlink avatars folder." }
@@ -79,5 +71,5 @@ changelogs:
- { date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`" }
- { date: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`." }
- { date: "05.09.18:", desc: "Rebase to alpine linux 3.8." }
- { date: "06.03.18:", desc: "Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place" }
- { date: "06.03.18:", desc: "Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default and restart the container, a new default site config with htpasswd support will be created in its place" }
- { date: "12.02.18:", desc: "Initial Release." }

View File

@@ -1,34 +0,0 @@
## Version 2022/11/14 - 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 _;
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

@@ -0,0 +1,32 @@
#!/usr/bin/with-contenv bash
mkdir -p /config/uploads
if [ ! -f "/config/env" ]; then
cp /app/heimdall/.env.example /config/env
rm -rf /app/heimdall/.env
ln -sf /config/env /app/heimdall/.env
SECRET_KEY=$(date +%s | sha256sum | base64 | head -c 32)
sed -i 's|JWT_SECRET=CHANGE_ME|JWT_SECRET='${SECRET_KEY}'|g' /config/env
sed -i 's|DB_TYPE=mysql|DB_TYPE=sqlite|g' /config/env
sed -i 's|DB_STORAGE=$|DB_STORAGE=/config/app.db|g' /config/env
sed -i 's|UPLOAD_DIR=$|UPLOAD_DIR=/config/uploads|g' /config/env
echo "Running migrations. . ."
cd /app/heimdall
npm run db:migrate
npm run db:seed
else
cd /app/heimdall
npm run db:migrate
fi
# permissions
echo "Fixing /config permissions. . ."
chown -R abc:abc \
/config
# chown the app directory, but not node_modules
echo "Fixing app permissions. . ."
find /app/heimdall -maxdepth 1 ! -name node_modules ! -name heimdall -exec chown -R abc:abc '{}' \;

View File

@@ -1,59 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make our folders
mkdir -p \
/config/www/{avatars,backgrounds,icons,logs,SupportedApps} \
/config/log/heimdall
# install heimdall if necessary
if [[ -d /app/www-tmp ]]; then
echo "New container detected, installing Heimdall"
mv /app/www-tmp /app/www
cp /app/www/storage/app/searchproviders.yaml /app/www/storage/app/searchproviders.yaml.orig
touch /app/set-perms
fi
# create symlinks
symlinks=(
/app/www/storage/app/public/avatars
/app/www/storage/app/public/backgrounds
/app/www/storage/app/public/icons
/app/www/storage/logs
/app/www/app/SupportedApps
/app/www/database/app.sqlite
/app/www/.env
)
for i in "${symlinks[@]}"; do
if [[ -e "${i}" && ! -L "${i}" ]]; then
rm -rf "${i}"
fi
if [[ ! -L "${i}" ]]; then
ln -s /config/www/"$(basename "${i}")" "${i}"
fi
done
# copy searchproviders if not exists and symlink
if [[ ! -f /config/www/searchproviders.yaml ]]; then
cp /app/www/storage/app/searchproviders.yaml.orig /config/www/searchproviders.yaml
fi
rm -rf /app/www/storage/app/searchproviders.yaml
ln -s /config/www/searchproviders.yaml /app/www/storage/app/searchproviders.yaml
# tidy up install files & set permissions
if [[ -f /app/set-perms ]]; then
rm -rf /app/set-perms
lsiown -R abc:abc \
/app/www \
/config
fi
# copy .env if not exists
if [[ ! -f /config/www/.env ]]; then
install -g abc -o abc /app/www/.env.example /config/www/.env
echo "Creating app key. This may take a while on slower systems"
s6-setuidgid abc php /app/www/artisan key:generate
fi
# set queue driver to database
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env

View File

@@ -1 +0,0 @@
oneshot

View File

@@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/init-heimdall-config/run

View File

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

View File

@@ -1 +0,0 @@
longrun

View File

@@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
cd /app/heimdall || exit
exec \
s6-setuidgid abc npm run server

View File

@@ -1,10 +0,0 @@
#!/usr/bin/with-contenv 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
echo "updating root in ${DEFAULT_CONF}"
sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}"
fi

View File

@@ -1,40 +0,0 @@
<html>
<head>
<title>Upgrade Required!</title>
<style>
body{
font-family: Helvetica, Arial, sans-serif;
}
.message{
width:440px;
padding:20px 40px;
margin:0 auto;
background-color:#f9f9f9;
border:1px solid #ddd;
color: #1e3d62;
}
center{
margin:40px 0;
}
h1{
font-size: 18px;
line-height: 26px;
}
p{
font-size: 12px;
}
a{
color: rgb(207, 48, 139);
}
</style>
</head>
<body>
<div class="message">
<h1>Upgrade Required!</h1>
<p>The application inside this image has been moved to a new folder.</p>
<p>You will need to update your <strong>/config/nginx/nginx.conf</strong> and <strong>/config/nginx/site-confs/default.conf</strong> in order for the application to work.</p>
<p>New config samples are located at <strong>/config/nginx/nginx.conf.sample</strong> and <strong>/config/nginx/site-confs/default.conf.sample</strong></p>
<p>Please review our announcement: <a target="_blank" href="https://info.linuxserver.io/issues/2022-08-20-nginx-base/">Significant changes to nginx based images</a></p>
</div>
</body>
</html>