Compare commits

..

69 Commits

Author SHA1 Message Date
LinuxServer-CI
0278dd45e5 Bot Updating Package Versions 2023-04-28 19:23:35 +00:00
LinuxServer-CI
344d7be01e Bot Updating Templated Files 2023-04-28 19:16:04 +00:00
LinuxServer-CI
cbe03771ab Bot Updating Templated Files 2023-04-28 19:15:03 +00:00
LinuxServer-CI
5478aec8ed Bot Updating Templated Files 2023-04-28 19:14:04 +00:00
aptalca
2f8e00fadb Merge pull request #129 from linuxserver/js-deprecate
deprecate js builds
2023-04-28 15:13:02 -04:00
aptalca
f2e0483944 deprecate js builds 2023-04-28 14:40:54 -04:00
LinuxServer-CI
bf8f621a48 Bot Updating Templated Files 2023-04-28 13:30:45 -05:00
LinuxServer-CI
0955a2d617 Bot Updating Templated Files 2023-04-28 13:28:59 -05:00
LinuxServer-CI
67e1afa136 Bot Updating Package Versions 2023-04-21 20:35:02 +02:00
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
38 changed files with 1444 additions and 1692 deletions

0
.editorconfig Normal file → Executable file
View File

10
.github/CONTRIBUTING.md vendored Normal file → Executable file
View File

@@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
## Common files ## Common files
@@ -24,7 +24,7 @@
## Readme ## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. 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. 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) Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-heimdall)
@@ -105,17 +105,17 @@ docker build \
-t linuxserver/heimdall:latest . -t linuxserver/heimdall:latest .
``` ```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash ```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the changelog ## 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 ```yml
changelogs: changelogs:

0
.github/FUNDING.yml vendored Normal file → Executable file
View File

2
.github/ISSUE_TEMPLATE/config.yml vendored Normal file → Executable file
View File

@@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discord chat support - name: Discord chat support
url: https://linuxserver.io/discord url: https://discord.gg/YWrKVTn
about: Realtime support / chat with the community and the team. about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum - name: Discourse discussion forum

74
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Normal file → Executable file
View File

@@ -4,73 +4,11 @@ description: Create a report to help us improve
title: "[BUG] <title>" title: "[BUG] <title>"
labels: [Bug] labels: [Bug]
body: body:
- type: checkboxes - type: markdown
attributes: attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: | value: |
- OS: # DEPRECATION NOTICE
- How docker service was installed:
render: markdown This image is deprecated. We will not offer support for this image and it will not be updated.
validations:
required: false We recommend switching to the latest tag
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs heimdall"
label: Container logs
placeholder: |
Output of `docker logs heimdall`
render: bash
validations:
required: true

31
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Normal file → Executable file
View File

@@ -4,28 +4,11 @@ description: Suggest an idea for this project
title: "[FEAT] <title>" title: "[FEAT] <title>"
labels: [enhancement] labels: [enhancement]
body: body:
- type: checkboxes - type: markdown
attributes: attributes:
label: Is this a new feature request? value: |
description: Please search to see if a feature request already exists. # DEPRECATION NOTICE
options:
- label: I have searched the existing issues This image is deprecated. We will not offer support for this image and it will not be updated.
required: true
- type: textarea We recommend switching to the latest tag
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

View File

@@ -1,3 +1,8 @@
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
We recommend switching to the latest tag
<!--- Provide a general summary of your changes in the Title above --> <!--- Provide a general summary of your changes in the Title above -->
[linuxserverurl]: https://linuxserver.io [linuxserverurl]: https://linuxserver.io
@@ -21,7 +26,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,19 +0,0 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

View File

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

View File

@@ -1,147 +0,0 @@
name: External Trigger Main
on:
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-development:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/development'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-heimdall\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^heimdall_development_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`heimdall_development_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^heimdall_development" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`heimdall_development\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of development branch. To disable this trigger, add \`heimdall_development\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
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)
echo "Type is \`github_commit\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^heimdall_development_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for heimdall branch development"
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"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/heimdall"
tag="development"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fheimdall%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for heimdall tag development"
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 }}
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
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
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for heimdall tag development is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/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'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--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_SANITIZED}"
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 }}
fi
fi

View File

@@ -1,48 +0,0 @@
name: External Trigger Scheduler
on:
schedule:
- cron: '39 * * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
printf "# External trigger scheduler for docker-heimdall\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-heimdall/actions/workflows/external_trigger.yml/dispatches
else
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done

8
.github/workflows/greetings.yml vendored Normal file → Executable file
View File

@@ -2,18 +2,12 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
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.' 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/development/.github/PULL_REQUEST_TEMPLATE.md)!' 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 }} repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,103 +0,0 @@
name: Package Trigger Scheduler
on:
schedule:
- cron: '14 18 * * 5'
workflow_dispatch:
permissions:
contents: read
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
printf "# Package trigger scheduler for docker-heimdall\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-heimdall/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^heimdall_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`heimdall_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`heimdall_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi
else
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-heimdall/activity/ \n"
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) for heimdall** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

2
.github/workflows/permissions.yml vendored Normal file → Executable file
View File

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

View File

@@ -1,6 +1,4 @@
# syntax=docker/dockerfile:1 FROM ghcr.io/linuxserver/baseimage-alpine:3.13
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,51 +7,46 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
php84-dom \ nodejs \
php84-intl \ npm && \
php84-opcache \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php84/conf.d/00_opcache.ini && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/heimdall && \ /app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ 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='[""]'); \ | awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/heimdall.tar.gz -L \ /tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \ "https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
tar xf \ tar xf \
/tmp/heimdall.tar.gz -C \ /tmp/heimdalljs.tar.gz -C \
/app/www-tmp --strip-components=1 && \ /app/heimdall/ --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \
/tmp/* /tmp/*
# add local files # add local files
COPY root/ / 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:arm64v8-3.13
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,51 +7,46 @@ ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca" LABEL maintainer="aptalca"
# environment settings
ENV \
HOME="/app/heimdall" \
NODE_ENV="production"
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
g++ \
make \
python2 && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache \ apk add --no-cache \
php84-dom \ nodejs \
php84-intl \ npm && \
php84-opcache \
php84-pdo_mysql \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php84/conf.d/00_opcache.ini && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/heimdall && \ /app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ 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='[""]'); \ | awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/heimdall.tar.gz -L \ /tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \ "https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
mkdir -p \
/app/www-tmp && \
tar xf \ tar xf \
/tmp/heimdall.tar.gz -C \ /tmp/heimdalljs.tar.gz -C \
/app/www-tmp --strip-components=1 && \ /app/heimdall/ --strip-components=1 && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ cd /app/heimdall && \
NODE_ENV="development" npm install && \
cp .env.example .env && \
npm run build && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
npm prune --production && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \
/tmp/* /tmp/*
# add local files # add local files
COPY root/ / COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

52
Dockerfile.armhf Normal file
View File

@@ -0,0 +1,52 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.13
# set version label
ARG BUILD_DATE
ARG VERSION
ARG HEIMDALL_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
# environment settings
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 \
nodejs \
npm && \
echo "**** install heimdall ****" && \
mkdir -p \
/app/heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/heimdalljs/commits/master" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
curl -o \
/tmp/heimdalljs.tar.gz -L \
"https://github.com/linuxserver/heimdalljs/archive/${HEIMDALL_RELEASE}.tar.gz" && \
tar xf \
/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/ /

987
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

0
LICENSE Normal file → Executable file
View File

223
README.md
View File

@@ -1,10 +1,12 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read 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) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@@ -19,14 +21,20 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
We recommend switching to the latest tag
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall) # [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages)
@@ -34,22 +42,20 @@ 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) [![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 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) [![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%2Fdevelopment%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/heimdall/development/index.html) [![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. [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. 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.
[![heimdall](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png)](https://heimdall.site) [![heimdall](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png)](https://heimdall.site)
## Supported Architectures ## Supported Architectures
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). 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: The architectures supported by this image are:
@@ -57,6 +63,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> |
## Version Tags ## Version Tags
@@ -65,41 +72,37 @@ This image provides various versions that are available via tags. Please read th
| Tag | Available | Description | | Tag | Available | Description |
| :----: | :----: |--- | | :----: | :----: |--- |
| latest | ✅ | Stable Heimdall releases. | | latest | ✅ | Stable Heimdall releases. |
| development | ✅ | Latest commit from the github 2.x branch. | | development | ✅ | Latest commit from the github master branch. |
## Application Setup ## Application Setup
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection ### Adding password protection
This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. Uncomment the `basic auth` lines in `/config/nginx/site-confs/default.conf` and restart the container. This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file `docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd <username>`. Replace <username> with a username of your choice and you will be asked to enter a password. 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 ## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli. Here are some example snippets to help you get started creating a container.
>[!NOTE]
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml ```yaml
--- ---
version: "2.1"
services: services:
heimdall: heimdall:
image: lscr.io/linuxserver/heimdall:development image: lscr.io/linuxserver/heimdall:js
container_name: heimdall container_name: heimdall
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Etc/UTC - TZ=Etc/UTC
- ALLOW_INTERNAL_REQUESTS=false #optional
volumes: volumes:
- /path/to/heimdall/config:/config - /path/to/appdata/config:/config
ports: ports:
- 80:80 - 3000:3000
- 443:443
restart: unless-stopped restart: unless-stopped
``` ```
@@ -111,27 +114,24 @@ docker run -d \
-e PUID=1000 \ -e PUID=1000 \
-e PGID=1000 \ -e PGID=1000 \
-e TZ=Etc/UTC \ -e TZ=Etc/UTC \
-e ALLOW_INTERNAL_REQUESTS=false `#optional` \ -p 3000:3000 \
-p 80:80 \ -v /path/to/appdata/config:/config \
-p 443:443 \
-v /path/to/heimdall/config:/config \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/heimdall:development lscr.io/linuxserver/heimdall:js
``` ```
## Parameters ## Parameters
Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function | | Parameter | Function |
| :----: | --- | | :----: | --- |
| `-p 80:80` | http gui | | `-p 3000` | http gui |
| `-p 443:443` | https gui |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e ALLOW_INTERNAL_REQUESTS=false` | By default, Heimdall blocks lookup requests to private or reserved IP addresses, if your instance is not exposed to the internet, or is behind some level of authentication, you can set this to `true` to allow requests to private IP addresses. | | `-v /config` | Contains all relevant configuration files. |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@@ -140,10 +140,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example: As an example:
```bash ```bash
-e FILE__MYVAR=/run/secrets/mysecretvariable -e FILE__PASSWORD=/run/secrets/mysecretpassword
``` ```
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file. Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications ## Umask for running applications
@@ -152,20 +152,15 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers ## User / Group Identifiers
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below: In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```bash ```bash
id your_user $ id username
``` uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
``` ```
## Docker Mods ## Docker Mods
@@ -176,101 +171,53 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info ## Support Info
* Shell access whilst the container is running: * Shell access whilst the container is running: `docker exec -it heimdall /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f heimdall`
```bash * container version number
docker exec -it heimdall /bin/bash * `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall`
``` * image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:js`
* To monitor the logs of the container in realtime:
```bash
docker logs -f heimdall
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development
```
## Updating Info ## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update images: * Update all images: `docker-compose pull`
* All images: * or update a single image: `docker-compose pull heimdall`
* Let compose update all containers as necessary: `docker-compose up -d`
```bash * or update a single container: `docker-compose up -d heimdall`
docker-compose pull * You can also remove the old dangling images: `docker image prune`
```
* Single image:
```bash
docker-compose pull heimdall
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d heimdall
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run ### Via Docker Run
* Update the image: * Update the image: `docker pull lscr.io/linuxserver/heimdall:js`
* Stop the running container: `docker stop heimdall`
```bash * Delete the container: `docker rm heimdall`
docker pull lscr.io/linuxserver/heimdall:development
```
* Stop the running container:
```bash
docker stop heimdall
```
* Delete the container:
```bash
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) * 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)
* You can also remove the old dangling images: * You can also remove the old dangling images: `docker image prune`
```bash ### Via Watchtower auto-updater (only use if you don't remember the original parameters)
docker image prune
``` * Pull the latest image at its tag and replace it with the same env variables in one run:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once heimdall
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
>[!TIP] * We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
@@ -282,39 +229,35 @@ cd docker-heimdall
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t lscr.io/linuxserver/heimdall:development . -t lscr.io/linuxserver/heimdall:js .
``` ```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash ```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions ## Versions
* **17.07.25:** - Rebase to Alpine 3.22, enable PHP environment passthrough. * **12.04.21:** - Add experimental `js` tag for v3.
* **27.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **07.03.24:** - Enable the opcache and disable file revalidation.
* **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **13.04.23:** - Move ssl.conf include to default.conf.
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
* **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.
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel. * **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
* **10.02.21:** - Rebasing to alpine 3.13. * **10.02.21:** - Rebasing to alpine 3.13.
* **17.08.20:** - Add php7-curl.
* **01.06.20:** - Rebasing to alpine 3.12. * **01.06.20:** - Rebasing to alpine 3.12.
* **17.01.20:** - Use nginx from baseimage.
* **19.12.19:** - Rebasing to alpine 3.11. * **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. * **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. * **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. * **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. * **04.11.18:** - Add php7-zip.
* **31.10.18:** - Add queue service. * **31.10.18:** - Add queue service.
* **17.10.18:** - Symlink avatars folder. * **17.10.18:** - Symlink avatars folder.
@@ -322,5 +265,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` * **07.10.18:** - Symlink `.env` rather than copy. It now resides under `/config/www`
* **30.09.18:** - Multi-arch image. Move `.env` to `/config`. * **30.09.18:** - Multi-arch image. Move `.env` to `/config`.
* **05.09.18:** - Rebase to alpine linux 3.8. * **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. * **12.02.18:** - Initial Release.

View File

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

View File

@@ -1,245 +1,699 @@
NAME VERSION TYPE NAME VERSION TYPE
Hidden Input 1, 0, 0, 0 binary @mapbox/node-pre-gyp 1.0.3 npm
acl-libs 2.3.2-r1 apk @my-scope/package-a 0.0.0 npm
alpine-baselayout 3.7.0-r0 apk @my-scope/package-b 0.0.0 npm
alpine-baselayout-data 3.7.0-r0 apk @quasar/extras 1.10.2 npm
alpine-keys 2.5-r0 apk @tokenizer/token 0.3.0 npm
alpine-release 3.22.3-r0 apk @types/color-name 1.1.1 npm
apache2-utils 2.4.66-r0 apk @types/node 13.13.4 npm
apk-tools 2.14.9-r3 apk JSONStream 1.3.5 npm
apr 1.7.5-r0 apk abbrev 1.1.1 npm
apr-util 1.6.3-r1 apk accepts 1.3.7 npm
argon2-libs 20190702-r5 apk agent-base 4.2.1 npm
aws/aws-crt-php v1.2.7 php-composer agent-base 4.3.0 npm
aws/aws-sdk-php 3.349.3 php-composer agent-base 6.0.2 npm
barryvdh/laravel-ide-helper v3.5.5 php-composer agentkeepalive 3.5.2 npm
barryvdh/reflection-docblock v2.3.1 php-composer ajv 6.12.6 npm
bash 5.2.37-r0 apk alpine-baselayout 3.2.0-r8 apk
brick/math 0.12.3 php-composer alpine-keys 2.4-r0 apk
brotli-libs 1.1.0-r2 apk ansi-align 2.0.0 npm
busybox 1.37.0-r20 apk ansi-escapes 4.3.1 npm
busybox-binsh 1.37.0-r20 apk ansi-regex 2.1.1 npm
c-ares 1.34.6-r0 apk ansi-regex 3.0.0 npm
ca-certificates 20250911-r0 apk ansi-regex 4.1.0 npm
ca-certificates-bundle 20250911-r0 apk ansi-regex 4.1.1 npm
carbonphp/carbon-doctrine-types 3.2.0 php-composer ansi-regex 5.0.0 npm
catatonit 0.2.1-r0 apk ansi-styles 3.2.1 npm
clue/stream-filter v1.7.0 php-composer ansi-styles 4.2.1 npm
composer 2.9.5 binary ansicolors 0.3.2 npm
composer/class-map-generator 1.6.1 php-composer ansistyles 0.1.3 npm
composer/pcre 3.3.2 php-composer any-promise 1.3.0 npm
coreutils 9.7-r1 apk apk-tools 2.12.7-r0 apk
coreutils-env 9.7-r1 apk append-field 1.0.0 npm
coreutils-fmt 9.7-r1 apk aproba 1.2.0 npm
coreutils-sha512sum 9.7-r1 apk aproba 2.0.0 npm
curl 8.14.1-r2 apk archy 1.0.0 npm
dflydev/dot-access-data v3.0.3 php-composer are-we-there-yet 1.1.4 npm
doctrine/inflector 2.0.10 php-composer are-we-there-yet 1.1.5 npm
doctrine/lexer 3.0.1 php-composer array-flatten 1.1.1 npm
dragonmantank/cron-expression v3.4.0 php-composer asap 2.0.6 npm
egulias/email-validator 4.0.4 php-composer asn1 0.2.4 npm
enshrined/svg-sanitize 0.21.0 php-composer assert-plus 1.0.0 npm
fakerphp/faker v1.24.1 php-composer asynckit 0.4.0 npm
filp/whoops 2.18.3 php-composer aws-sign2 0.7.0 npm
findutils 4.10.0-r0 apk aws4 1.11.0 npm
fruitcake/php-cors v1.3.0 php-composer aws4 1.8.0 npm
git 2.49.1-r0 apk axios 0.21.1 npm
git-init-template 2.49.1-r0 apk balanced-match 1.0.0 npm
graham-campbell/bounded-cache v3.0.0 php-composer base32.js 0.0.1 npm
graham-campbell/github v12.8.0 php-composer base64-js 1.3.1 npm
graham-campbell/manager v5.2.0 php-composer bash 5.1.16-r0 apk
graham-campbell/result-type v1.1.3 php-composer basic-auth 2.0.1 npm
guzzlehttp/guzzle 7.9.3 php-composer bcrypt 5.0.1 npm
guzzlehttp/promises 2.2.0 php-composer bcrypt-pbkdf 1.0.2 npm
guzzlehttp/psr7 2.7.1 php-composer bin-links 1.1.8 npm
guzzlehttp/uri-template v1.0.4 php-composer bl 4.0.3 npm
hamcrest/hamcrest-php v2.1.1 php-composer block-stream 0.0.9 npm
icu-data-en 76.1-r1 apk bluebird 3.5.5 npm
icu-libs 76.1-r1 apk bluebird 3.7.2 npm
jq 1.8.1-r0 apk body-parser 1.19.0 npm
knplabs/github-api v3.16.0 php-composer boxen 1.3.0 npm
laravel/framework v11.45.1 php-composer brace-expansion 1.1.11 npm
laravel/prompts v0.3.6 php-composer brotli-libs 1.0.9-r3 apk
laravel/serializable-closure v2.0.4 php-composer buffer 5.4.3 npm
laravel/tinker v2.10.1 php-composer buffer 5.6.0 npm
laravel/ui v4.6.1 php-composer buffer-alloc 1.2.0 npm
lcobucci/jwt 5.5.0 php-composer buffer-alloc-unsafe 1.1.0 npm
league/commonmark 2.7.0 php-composer buffer-equal-constant-time 1.0.1 npm
league/config v1.2.0 php-composer buffer-fill 1.0.0 npm
league/flysystem 3.30.0 php-composer buffer-from 1.0.0 npm
league/flysystem-aws-s3-v3 3.29.0 php-composer buffer-from 1.1.1 npm
league/flysystem-local 3.30.0 php-composer builtins 1.0.3 npm
league/mime-type-detection 1.16.0 php-composer busboy 0.2.14 npm
league/uri 7.5.1 php-composer busybox 1.32.1 binary
league/uri-interfaces 7.5.0 php-composer busybox 1.32.1-r9 apk
libapk2 2.14.9-r3 apk byline 5.0.0 npm
libattr 2.5.2-r2 apk byte-size 5.0.1 npm
libbsd 0.12.2-r0 apk bytes 3.1.0 npm
libbz2 1.0.8-r6 apk c-ares 1.17.2-r0 apk
libcrypto3 3.5.5-r0 apk ca-certificates 20220614-r0 apk
libcurl 8.14.1-r2 apk ca-certificates-bundle 20220614-r0 apk
libedit 20250104.3.1-r1 apk cacache 12.0.3 npm
libexpat 2.7.5-r0 apk call-limit 1.1.1 npm
libgcc 14.2.0-r6 apk camelcase 4.1.0 npm
libidn2 2.3.7-r0 apk camelcase 5.3.1 npm
libintl 0.24.1-r0 apk capture-stack-trace 1.0.0 npm
libmd 1.1.0-r0 apk caseless 0.12.0 npm
libncursesw 6.5_p20250503-r0 apk chalk 2.4.1 npm
libpq 17.9-r0 apk chalk 4.1.0 npm
libproc2 4.0.4-r3 apk chardet 0.7.0 npm
libpsl 0.21.5-r3 apk chownr 1.1.4 npm
libssl3 3.5.5-r0 apk chownr 2.0.0 npm
libstdc++ 14.2.0-r6 apk ci-info 1.6.0 npm
libunistring 1.3-r0 apk ci-info 2.0.0 npm
libuuid 2.41-r9 apk cidr-regex 2.0.10 npm
libxml2 2.13.9-r0 apk cli-boxes 1.0.0 npm
libzip 1.11.4-r0 apk cli-color 1.4.0 npm
linux-pam 1.7.0-r4 apk cli-columns 3.1.2 npm
logrotate 3.21.0-r1 apk cli-cursor 3.1.0 npm
mockery/mockery 1.6.12 php-composer cli-table3 0.5.1 npm
monolog/monolog 3.9.0 php-composer cli-width 3.0.0 npm
mtdowling/jmespath.php 2.8.0 php-composer cliui 5.0.0 npm
musl 1.2.5-r10 apk clone 1.0.4 npm
musl-utils 1.2.5-r10 apk cmd-shim 3.0.3 npm
myclabs/deep-copy 1.13.3 php-composer code-point-at 1.1.0 npm
nano 8.4-r0 apk color-convert 1.9.1 npm
ncurses-terminfo-base 6.5_p20250503-r0 apk color-convert 1.9.3 npm
nesbot/carbon 3.10.1 php-composer color-convert 2.0.1 npm
netcat-openbsd 1.229.1-r0 apk color-name 1.1.3 npm
nette/schema v1.3.2 php-composer color-name 1.1.4 npm
nette/utils v4.0.7 php-composer colors 1.3.3 npm
nghttp2-libs 1.65.0-r0 apk columnify 1.5.4 npm
nginx 1.28.3-r0 apk combined-stream 1.0.6 npm
nikic/php-parser v5.5.0 php-composer combined-stream 1.0.8 npm
nunomaduro/collision v8.5.0 php-composer commander 2.20.3 npm
nunomaduro/termwind v2.3.1 php-composer concat-map 0.0.1 npm
oniguruma 6.9.10-r0 apk concat-stream 1.6.2 npm
openssl 3.5.5-r0 apk config-chain 1.1.12 npm
pcre2 10.46-r0 apk configstore 3.1.5 npm
phar-io/manifest 2.0.4 php-composer console-control-strings 1.1.0 npm
phar-io/version 3.2.1 php-composer content-disposition 0.5.3 npm
php-http/cache-plugin 2.0.1 php-composer content-type 1.0.4 npm
php-http/client-common 2.7.2 php-composer cookie 0.4.0 npm
php-http/discovery 1.20.0 php-composer cookie-parser 1.4.5 npm
php-http/httplug 2.4.1 php-composer cookie-signature 1.0.6 npm
php-http/message 1.16.2 php-composer copy-concurrently 1.0.5 npm
php-http/multipart-stream-builder 1.4.2 php-composer core-js 3.10.1 npm
php-http/promise 1.3.1 php-composer core-util-is 1.0.2 npm
php84 8.4.16-r0 apk coreutils 8.32-r2 apk
php84-common 8.4.16-r0 apk cors 2.8.5 npm
php84-ctype 8.4.16-r0 apk create-error-class 3.0.2 npm
php84-curl 8.4.16-r0 apk cross-spawn 5.1.0 npm
php84-dom 8.4.16-r0 apk crypto-random-string 1.0.0 npm
php84-fileinfo 8.4.16-r0 apk curl 7.79.1-r3 apk
php84-fpm 8.4.16-r0 apk cyclist 0.2.2 npm
php84-iconv 8.4.16-r0 apk d 1.0.1 npm
php84-intl 8.4.16-r0 apk dashdash 1.14.1 npm
php84-mbstring 8.4.16-r0 apk debug 2.6.9 npm
php84-mysqlnd 8.4.16-r0 apk debug 3.1.0 npm
php84-opcache 8.4.16-r0 apk debug 3.2.7 npm
php84-openssl 8.4.16-r0 apk debug 4.3.1 npm
php84-pdo 8.4.16-r0 apk debuglog 1.0.1 npm
php84-pdo_mysql 8.4.16-r0 apk decamelize 1.2.0 npm
php84-pdo_pgsql 8.4.16-r0 apk decode-uri-component 0.2.0 npm
php84-pdo_sqlite 8.4.16-r0 apk deep-extend 0.6.0 npm
php84-phar 8.4.16-r0 apk defaults 1.0.3 npm
php84-session 8.4.16-r0 apk define-properties 1.1.3 npm
php84-simplexml 8.4.16-r0 apk delayed-stream 1.0.0 npm
php84-tokenizer 8.4.16-r0 apk delegates 1.0.0 npm
php84-xml 8.4.16-r0 apk denque 1.5.1 npm
php84-xmlwriter 8.4.16-r0 apk depd 1.1.2 npm
php84-zip 8.4.16-r0 apk depd 2.0.0 npm
phpoption/phpoption 1.9.3 php-composer destroy 1.0.4 npm
phpunit/php-code-coverage 10.1.16 php-composer detect-indent 5.0.0 npm
phpunit/php-file-iterator 4.1.0 php-composer detect-libc 1.0.3 npm
phpunit/php-invoker 4.0.0 php-composer detect-newline 2.1.0 npm
phpunit/php-text-template 3.0.1 php-composer dezalgo 1.0.3 npm
phpunit/php-timer 6.0.0 php-composer dicer 0.2.5 npm
phpunit/phpunit 10.5.47 php-composer dijkstrajs 1.0.1 npm
popt 1.19-r4 apk docker-modem 2.1.4 npm
procps-ng 4.0.4-r3 apk dockerode 3.2.1 npm
psr/cache 3.0.0 php-composer dot-prop 4.2.1 npm
psr/clock 1.0.0 php-composer dotenv 5.0.1 npm
psr/container 2.0.2 php-composer dotenv 8.2.0 npm
psr/event-dispatcher 1.0.0 php-composer dottie 2.0.2 npm
psr/http-client 1.0.3 php-composer duplexer3 0.1.4 npm
psr/http-factory 1.1.0 php-composer duplexify 3.6.0 npm
psr/http-message 2.0 php-composer ecc-jsbn 0.1.2 npm
psr/log 3.0.2 php-composer ecdsa-sig-formatter 1.0.11 npm
psr/simple-cache 3.0.0 php-composer editor 1.0.0 npm
psy/psysh v0.12.9 php-composer editorconfig 0.15.3 npm
ralouphie/getallheaders 3.0.3 php-composer ee-first 1.1.1 npm
ramsey/collection 2.1.1 php-composer emoji-regex 7.0.3 npm
ramsey/uuid 4.9.0 php-composer emoji-regex 8.0.0 npm
readline 8.2.13-r1 apk encodeurl 1.0.2 npm
scanelf 1.3.8-r1 apk encoding 0.1.12 npm
sebastian/cli-parser 2.0.1 php-composer end-of-stream 1.4.1 npm
sebastian/code-unit 2.0.0 php-composer end-of-stream 1.4.4 npm
sebastian/code-unit-reverse-lookup 3.0.0 php-composer env-paths 2.2.0 npm
sebastian/comparator 5.0.3 php-composer err-code 1.1.2 npm
sebastian/complexity 3.2.0 php-composer errno 0.1.7 npm
sebastian/diff 5.1.1 php-composer es-abstract 1.12.0 npm
sebastian/environment 6.1.0 php-composer es-to-primitive 1.2.0 npm
sebastian/exporter 5.1.2 php-composer es5-ext 0.10.53 npm
sebastian/global-state 6.0.2 php-composer es6-iterator 2.0.3 npm
sebastian/lines-of-code 2.0.2 php-composer es6-promise 4.2.8 npm
sebastian/object-enumerator 5.0.0 php-composer es6-promisify 5.0.0 npm
sebastian/object-reflector 3.0.0 php-composer es6-symbol 3.1.3 npm
sebastian/recursion-context 5.0.0 php-composer es6-weak-map 2.0.3 npm
sebastian/type 4.0.0 php-composer escape-html 1.0.3 npm
sebastian/version 4.0.1 php-composer escape-string-regexp 1.0.5 npm
shadow 4.17.3-r0 apk etag 1.8.1 npm
skalibs-libs 2.14.4.0-r0 apk event-emitter 0.3.5 npm
spatie/backtrace 1.7.4 php-composer execa 0.7.0 npm
spatie/error-solutions 1.1.3 php-composer express 4.17.1 npm
spatie/flare-client-php 1.10.1 php-composer ext 1.4.0 npm
spatie/ignition 1.15.1 php-composer extend 3.0.2 npm
spatie/laravel-html 3.12.0 php-composer external-editor 3.1.0 npm
spatie/laravel-ignition 2.9.1 php-composer extsprintf 1.3.0 npm
sqlite-libs 3.49.2-r1 apk fast-deep-equal 3.1.1 npm
squizlabs/php_codesniffer 3.13.2 php-composer fast-deep-equal 3.1.3 npm
ssl_client 1.37.0-r20 apk fast-json-stable-stringify 2.0.0 npm
symfony/cache v7.3.1 php-composer fast-json-stable-stringify 2.1.0 npm
symfony/cache-contracts v3.6.0 php-composer figgy-pudding 3.5.1 npm
symfony/clock v7.3.0 php-composer figures 3.2.0 npm
symfony/console v7.3.1 php-composer file-type 16.5.3 npm
symfony/css-selector v7.3.0 php-composer finalhandler 1.1.2 npm
symfony/deprecation-contracts v3.6.0 php-composer find-npm-prefix 1.0.2 npm
symfony/error-handler v7.3.1 php-composer find-up 3.0.0 npm
symfony/event-dispatcher v7.3.0 php-composer flush-write-stream 1.0.3 npm
symfony/event-dispatcher-contracts v3.6.0 php-composer follow-redirects 1.13.0 npm
symfony/finder v7.3.0 php-composer forever-agent 0.6.1 npm
symfony/http-foundation v7.3.1 php-composer form-data 2.3.2 npm
symfony/http-kernel v7.3.1 php-composer form-data 2.3.3 npm
symfony/mailer v7.3.1 php-composer forwarded 0.1.2 npm
symfony/mime v7.3.0 php-composer fresh 0.5.2 npm
symfony/options-resolver v7.3.0 php-composer from2 1.3.0 npm
symfony/polyfill-ctype v1.32.0 php-composer from2 2.3.0 npm
symfony/polyfill-intl-grapheme v1.32.0 php-composer fs-constants 1.0.0 npm
symfony/polyfill-intl-idn v1.32.0 php-composer fs-extra 7.0.1 npm
symfony/polyfill-intl-normalizer v1.32.0 php-composer fs-minipass 1.2.7 npm
symfony/polyfill-mbstring v1.32.0 php-composer fs-minipass 2.1.0 npm
symfony/polyfill-php80 v1.32.0 php-composer fs-vacuum 1.2.10 npm
symfony/polyfill-php83 v1.32.0 php-composer fs-write-stream-atomic 1.0.10 npm
symfony/polyfill-uuid v1.32.0 php-composer fs.realpath 1.0.0 npm
symfony/process v7.3.0 php-composer fstream 1.0.12 npm
symfony/routing v7.3.0 php-composer function-bind 1.1.1 npm
symfony/service-contracts v3.6.0 php-composer gauge 2.7.4 npm
symfony/string v7.3.0 php-composer generate-function 2.3.1 npm
symfony/thanks v1.4.0 php-composer genfun 5.0.0 npm
symfony/translation v7.3.1 php-composer gentle-fs 2.3.1 npm
symfony/translation-contracts v3.6.0 php-composer get-caller-file 2.0.5 npm
symfony/uid v7.3.1 php-composer get-stream 3.0.0 npm
symfony/var-dumper v7.3.1 php-composer get-stream 4.1.0 npm
symfony/var-exporter v7.3.0 php-composer getpass 0.1.7 npm
symfony/yaml v7.3.1 php-composer glob 7.1.6 npm
theseer/tokenizer 1.2.3 php-composer global-dirs 0.1.1 npm
tijsverkoyen/css-to-inline-styles v2.3.0 php-composer got 6.7.1 npm
tzdata 2026a-r0 apk graceful-fs 4.2.3 npm
utmps-libs 0.1.3.1-r0 apk graceful-fs 4.2.4 npm
vlucas/phpdotenv v5.6.2 php-composer har-schema 2.0.0 npm
voku/portable-ascii 2.0.3 php-composer har-validator 5.1.5 npm
webmozart/assert 1.11.0 php-composer has 1.0.3 npm
xz-libs 5.8.1-r0 apk has-flag 3.0.0 npm
zlib 1.3.1-r2 apk has-flag 4.0.0 npm
zstd-libs 1.5.7-r0 apk 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-r2 apk
musl-utils 1.2.2-r2 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,125 +4,76 @@
project_name: heimdall project_name: heimdall
project_url: "https://heimdall.site" project_url: "https://heimdall.site"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png" project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/heimdall-banner.png"
project_blurb: | 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_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 }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
# supported architectures # supported architectures
available_architectures: available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
project_deprecation_status: true
project_deprecation_message: |
We recommend switching to the latest tag
# development version # development version
development_versions: true development_versions: true
development_versions_items: development_versions_items:
- {tag: "latest", desc: "Stable Heimdall releases."} - { 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 # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"} - { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." }
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- {external_port: "80", internal_port: "80", port_desc: "http gui"} - { external_port: "3000", internal_port: "3000", port_desc: "http gui" }
- {external_port: "443", internal_port: "443", port_desc: "https gui"} param_usage_include_env: true
opt_param_usage_include_env: true param_env_vars:
opt_param_env_vars: - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
- {env_var: "ALLOW_INTERNAL_REQUESTS", env_value: "false", desc: "By default, Heimdall blocks lookup requests to private or reserved IP addresses, if your instance is not exposed to the internet, or is behind some level of authentication, you can set this to `true` to allow requests to private IP addresses."}
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
Access the web gui at http://SERVERIP:PORT Access the web gui at http://SERVERIP:PORT
### Adding password protection
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. ### Adding password protection
# init diagram
init_diagram: | 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.
"heimdall:development": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-nginx-end -> init-config
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-heimdall-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-nginx-end -> init-heimdall-config
init-php -> init-keygen
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-permissions -> init-version-checks
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-php-fpm
svc-php-fpm -> legacy-services
init-services -> svc-queue
svc-queue -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
}
"heimdall:development" <- Base Images
# changelog # changelog
changelogs: changelogs:
- {date: "17.07.25:", desc: "Rebase to Alpine 3.22, enable PHP environment passthrough."} - { date: "12.04.21:", desc: "Add experimental `js` tag for v3." }
- {date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."} - { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." }
- {date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."} - { date: "10.02.21:", desc: "Rebasing to alpine 3.13." }
- {date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."} - { date: "17.08.20:", desc: "Add php7-curl." }
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."} - { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }
- {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."} - { date: "17.01.20:", desc: "Use nginx from baseimage." }
- {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."} - { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."} - { date: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall." }
- {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: "28.06.19:", desc: "Rebasing to alpine 3.10." }
- {date: "04.11.22:", desc: "Build commits to upstream branch 2.x."} - { date: "01.04.19:", desc: "Fix permission detect logic." }
- {date: "13.03.21:", desc: "Make searchproviders.yaml user configurable."} - { date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown." }
- {date: "11.03.21:", desc: "Rebase to alpine 3.14."} - { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- {date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel."} - { date: "15.03.19:", desc: "Clarify docker image tags in readme." }
- {date: "10.02.21:", desc: "Rebasing to alpine 3.13."} - { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
- {date: "01.06.20:", desc: "Rebasing to alpine 3.12."} - { date: "16.01.18:", desc: "Generate random app key in .env for new installs." }
- {date: "19.12.19:", desc: "Rebasing to alpine 3.11."} - { date: "20.11.18:", desc: "Upgrade baseimage packages during build." }
- {date: "15.07.19:", desc: "Save laravel.log to /config, install heimdall during first start."} - { date: "04.11.18:", desc: "Add php7-zip." }
- {date: "28.06.19:", desc: "Rebasing to alpine 3.10."} - { date: "31.10.18:", desc: "Add queue service." }
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."} - { date: "17.10.18:", desc: "Symlink avatars folder." }
- {date: "22.02.19:", desc: "Rebasing to alpine 3.9."} - { date: "16.10.18:", desc: "Updated fastcgi_params for user login support." }
- {date: "04.11.18:", desc: "Add php7-zip."} - { date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`" }
- {date: "31.10.18:", desc: "Add queue service."} - { date: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`." }
- {date: "17.10.18:", desc: "Symlink avatars folder."} - { date: "05.09.18:", desc: "Rebase to alpine linux 3.8." }
- {date: "16.10.18:", desc: "Updated fastcgi_params for user login support."} - { 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: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`"} - { date: "12.02.18:", desc: "Initial Release." }
- {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: "12.02.18:", desc: "Initial Release."}

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

@@ -0,0 +1,18 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
echo '
╔════════════════════════════════════════════════════╗
╠════════════════════════════════════════════════════╣
║ ║
║ This image is deprecated. ║
║ We will not offer support for this image ║
║ and it will not be updated. ║
║ ║
╠════════════════════════════════════════════════════╣
╚════════════════════════════════════════════════════╝
We recommend switching to the latest tag
══════════════════════════════════════════════════════'

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

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>