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
34 changed files with 1423 additions and 1571 deletions

View File

@@ -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:

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

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,16 +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]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

View File

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

View File

@@ -1,136 +0,0 @@
name: External Trigger Main
on:
workflow_dispatch:
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 "> [!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 [ -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=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $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}" == "${IMAGE_VERSION}" ]; then
echo "Version \`${EXT_RELEASE}\` 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 version \`${EXT_RELEASE}\` 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}"
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,45 +0,0 @@
name: External Trigger Scheduler
on:
schedule:
- cron: '39 * * * *'
workflow_dispatch:
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

View File

@@ -9,5 +9,5 @@ jobs:
- 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,100 +0,0 @@
name: Package Trigger Scheduler
on:
schedule:
- cron: '14 18 * * 5'
workflow_dispatch:
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

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.20
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,47 +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 \
php83-dom \ nodejs \
php83-intl \ npm && \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php83/conf.d/00_opcache.ini && \
echo "**** install heimdall ****" && \ 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.20
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -9,47 +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 \
php83-dom \ nodejs \
php83-intl \ npm && \
php83-opcache \
php83-pdo_mysql \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-tokenizer && \
echo "**** configure nginx ****" && \
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
/etc/nginx/fastcgi_params && \
echo "**** configure php opcache ****" && \
echo 'opcache.validate_timestamps=0' >> \
/etc/php83/conf.d/00_opcache.ini && \
echo "**** install heimdall ****" && \ 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/ /

889
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

214
README.md
View File

@@ -1,5 +1,6 @@
<!-- 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!")
@@ -26,9 +27,14 @@ Find us at:
* [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)
@@ -36,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:
@@ -59,7 +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 | | | | armhf | | arm32v7-\<version tag\> |
## Version Tags ## Version Tags
@@ -68,40 +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 flaged 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
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
``` ```
@@ -113,25 +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 \
-p 80:80 \ -p 3000:3000 \
-p 443:443 \ -v /path/to/appdata/config:/config \
-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). |
| `-v /config` | Persistent config files | | `-v /config` | Contains all relevant configuration 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,38 +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
* **27.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings. * **12.04.21:** - Add experimental `js` tag for v3.
* **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.
@@ -321,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,252 +1,699 @@
NAME VERSION TYPE NAME VERSION TYPE
Hidden Input 1, 0, 0, 0 dotnet @mapbox/node-pre-gyp 1.0.3 npm
alpine-baselayout 3.6.5-r0 apk @my-scope/package-a 0.0.0 npm
alpine-baselayout-data 3.6.5-r0 apk @my-scope/package-b 0.0.0 npm
alpine-keys 2.4-r1 apk @quasar/extras 1.10.2 npm
alpine-release 3.20.5-r0 apk @tokenizer/token 0.3.0 npm
apache2-utils 2.4.62-r0 apk @types/color-name 1.1.1 npm
apk-tools 2.14.4-r1 apk @types/node 13.13.4 npm
apr 1.7.5-r0 apk JSONStream 1.3.5 npm
apr-util 1.6.3-r1 apk abbrev 1.1.1 npm
argon2-libs 20190702-r5 apk accepts 1.3.7 npm
aws/aws-crt-php v1.2.4 php-composer agent-base 4.2.1 npm
aws/aws-sdk-php 3.299.1 php-composer agent-base 4.3.0 npm
barryvdh/laravel-ide-helper v2.15.1 php-composer agent-base 6.0.2 npm
barryvdh/reflection-docblock v2.1.1 php-composer agentkeepalive 3.5.2 npm
bash 5.2.26-r0 apk ajv 6.12.6 npm
brick/math 0.11.0 php-composer alpine-baselayout 3.2.0-r8 apk
brotli-libs 1.1.0-r2 apk alpine-keys 2.4-r0 apk
busybox 1.36.1-r29 apk ansi-align 2.0.0 npm
busybox-binsh 1.36.1-r29 apk ansi-escapes 4.3.1 npm
c-ares 1.33.1-r0 apk ansi-regex 2.1.1 npm
ca-certificates 20241121-r1 apk ansi-regex 3.0.0 npm
ca-certificates-bundle 20241121-r1 apk ansi-regex 4.1.0 npm
carbonphp/carbon-doctrine-types 2.1.0 php-composer ansi-regex 4.1.1 npm
catatonit 0.2.0-r0 apk ansi-regex 5.0.0 npm
clue/stream-filter v1.7.0 php-composer ansi-styles 3.2.1 npm
composer 2.8.4 binary ansi-styles 4.2.1 npm
composer/class-map-generator 1.1.0 php-composer ansicolors 0.3.2 npm
composer/pcre 3.1.1 php-composer ansistyles 0.1.3 npm
coreutils 9.5-r2 apk any-promise 1.3.0 npm
coreutils-env 9.5-r2 apk apk-tools 2.12.7-r0 apk
coreutils-fmt 9.5-r2 apk append-field 1.0.0 npm
coreutils-sha512sum 9.5-r2 apk aproba 1.2.0 npm
curl 8.11.1-r0 apk aproba 2.0.0 npm
dflydev/dot-access-data v3.0.2 php-composer archy 1.0.0 npm
doctrine/cache 2.2.0 php-composer are-we-there-yet 1.1.4 npm
doctrine/dbal 3.8.2 php-composer are-we-there-yet 1.1.5 npm
doctrine/deprecations 1.1.3 php-composer array-flatten 1.1.1 npm
doctrine/event-manager 2.0.0 php-composer asap 2.0.6 npm
doctrine/inflector 2.0.9 php-composer asn1 0.2.4 npm
doctrine/instantiator 2.0.0 php-composer assert-plus 1.0.0 npm
doctrine/lexer 3.0.1 php-composer asynckit 0.4.0 npm
dragonmantank/cron-expression v3.3.3 php-composer aws-sign2 0.7.0 npm
egulias/email-validator 4.0.2 php-composer aws4 1.11.0 npm
fakerphp/faker v1.23.1 php-composer aws4 1.8.0 npm
filp/whoops 2.15.4 php-composer axios 0.21.1 npm
findutils 4.9.0-r5 apk balanced-match 1.0.0 npm
fruitcake/php-cors v1.3.0 php-composer base32.js 0.0.1 npm
git 2.45.3-r0 apk base64-js 1.3.1 npm
git-init-template 2.45.3-r0 apk bash 5.1.16-r0 apk
gmp 6.3.0-r1 apk basic-auth 2.0.1 npm
graham-campbell/bounded-cache v2.2.0 php-composer bcrypt 5.0.1 npm
graham-campbell/github v12.4.0 php-composer bcrypt-pbkdf 1.0.2 npm
graham-campbell/manager v5.1.0 php-composer bin-links 1.1.8 npm
graham-campbell/result-type v1.1.2 php-composer bl 4.0.3 npm
guzzlehttp/guzzle 7.8.1 php-composer block-stream 0.0.9 npm
guzzlehttp/promises 2.0.2 php-composer bluebird 3.5.5 npm
guzzlehttp/psr7 2.6.2 php-composer bluebird 3.7.2 npm
guzzlehttp/uri-template v1.0.3 php-composer body-parser 1.19.0 npm
hamcrest/hamcrest-php v2.0.1 php-composer boxen 1.3.0 npm
icu-data-en 74.2-r0 apk brace-expansion 1.1.11 npm
icu-libs 74.2-r0 apk brotli-libs 1.0.9-r3 apk
jq 1.7.1-r0 apk buffer 5.4.3 npm
knplabs/github-api v3.13.0 php-composer buffer 5.6.0 npm
laravel/framework v10.44.0 php-composer buffer-alloc 1.2.0 npm
laravel/prompts v0.1.15 php-composer buffer-alloc-unsafe 1.1.0 npm
laravel/serializable-closure v1.3.3 php-composer buffer-equal-constant-time 1.0.1 npm
laravel/tinker v2.9.0 php-composer buffer-fill 1.0.0 npm
laravel/ui v4.4.0 php-composer buffer-from 1.0.0 npm
laravelcollective/html v6.4.1 php-composer buffer-from 1.1.1 npm
lcobucci/jwt 5.2.0 php-composer builtins 1.0.3 npm
league/commonmark 2.4.2 php-composer busboy 0.2.14 npm
league/config v1.2.0 php-composer busybox 1.32.1 binary
league/flysystem 3.24.0 php-composer busybox 1.32.1-r9 apk
league/flysystem-aws-s3-v3 3.24.0 php-composer byline 5.0.0 npm
league/flysystem-local 3.23.1 php-composer byte-size 5.0.1 npm
league/mime-type-detection 1.15.0 php-composer bytes 3.1.0 npm
libacl 2.3.2-r0 apk c-ares 1.17.2-r0 apk
libattr 2.5.2-r0 apk ca-certificates 20220614-r0 apk
libbsd 0.12.2-r0 apk ca-certificates-bundle 20220614-r0 apk
libbz2 1.0.8-r6 apk cacache 12.0.3 npm
libcrypto3 3.3.2-r1 apk call-limit 1.1.1 npm
libcurl 8.11.1-r0 apk camelcase 4.1.0 npm
libedit 20240517.3.1-r0 apk camelcase 5.3.1 npm
libexpat 2.6.4-r0 apk capture-stack-trace 1.0.0 npm
libgcc 13.2.1_git20240309-r0 apk caseless 0.12.0 npm
libidn2 2.3.7-r0 apk chalk 2.4.1 npm
libintl 0.22.5-r0 apk chalk 4.1.0 npm
libmd 1.1.0-r0 apk chardet 0.7.0 npm
libncursesw 6.4_p20240420-r2 apk chownr 1.1.4 npm
libpq 16.6-r0 apk chownr 2.0.0 npm
libproc2 4.0.4-r0 apk ci-info 1.6.0 npm
libpsl 0.21.5-r1 apk ci-info 2.0.0 npm
libssl3 3.3.2-r1 apk cidr-regex 2.0.10 npm
libstdc++ 13.2.1_git20240309-r0 apk cli-boxes 1.0.0 npm
libunistring 1.2-r0 apk cli-color 1.4.0 npm
libuuid 2.40.1-r1 apk cli-columns 3.1.2 npm
libxml2 2.12.7-r0 apk cli-cursor 3.1.0 npm
libzip 1.10.1-r0 apk cli-table3 0.5.1 npm
linux-pam 1.6.0-r0 apk cli-width 3.0.0 npm
logrotate 3.21.0-r1 apk cliui 5.0.0 npm
mockery/mockery 1.6.7 php-composer clone 1.0.4 npm
monolog/monolog 3.5.0 php-composer cmd-shim 3.0.3 npm
mtdowling/jmespath.php 2.7.0 php-composer code-point-at 1.1.0 npm
musl 1.2.5-r0 apk color-convert 1.9.1 npm
musl-utils 1.2.5-r0 apk color-convert 1.9.3 npm
myclabs/deep-copy 1.11.1 php-composer color-convert 2.0.1 npm
nano 8.0-r0 apk color-name 1.1.3 npm
ncurses-terminfo-base 6.4_p20240420-r2 apk color-name 1.1.4 npm
nesbot/carbon 2.72.3 php-composer colors 1.3.3 npm
netcat-openbsd 1.226-r0 apk columnify 1.5.4 npm
nette/schema v1.3.0 php-composer combined-stream 1.0.6 npm
nette/utils v4.0.4 php-composer combined-stream 1.0.8 npm
nghttp2-libs 1.62.1-r0 apk commander 2.20.3 npm
nginx 1.26.2-r0 apk concat-map 0.0.1 npm
nikic/php-parser v5.0.0 php-composer concat-stream 1.6.2 npm
nunomaduro/collision v6.4.0 php-composer config-chain 1.1.12 npm
nunomaduro/termwind v1.15.1 php-composer configstore 3.1.5 npm
oniguruma 6.9.9-r0 apk console-control-strings 1.1.0 npm
openssl 3.3.2-r1 apk content-disposition 0.5.3 npm
pcre 8.45-r3 apk content-type 1.0.4 npm
pcre2 10.43-r0 apk cookie 0.4.0 npm
phar-io/manifest 2.0.3 php-composer cookie-parser 1.4.5 npm
phar-io/version 3.2.1 php-composer cookie-signature 1.0.6 npm
php-http/cache-plugin 1.8.1 php-composer copy-concurrently 1.0.5 npm
php-http/client-common 2.7.1 php-composer core-js 3.10.1 npm
php-http/discovery 1.19.2 php-composer core-util-is 1.0.2 npm
php-http/httplug 2.4.0 php-composer coreutils 8.32-r2 apk
php-http/message 1.16.0 php-composer cors 2.8.5 npm
php-http/message-factory 1.1.0 php-composer create-error-class 3.0.2 npm
php-http/multipart-stream-builder 1.3.0 php-composer cross-spawn 5.1.0 npm
php-http/promise 1.3.0 php-composer crypto-random-string 1.0.0 npm
php83 8.3.15-r0 apk curl 7.79.1-r3 apk
php83-common 8.3.15-r0 apk cyclist 0.2.2 npm
php83-ctype 8.3.15-r0 apk d 1.0.1 npm
php83-curl 8.3.15-r0 apk dashdash 1.14.1 npm
php83-dom 8.3.15-r0 apk debug 2.6.9 npm
php83-fileinfo 8.3.15-r0 apk debug 3.1.0 npm
php83-fpm 8.3.15-r0 apk debug 3.2.7 npm
php83-iconv 8.3.15-r0 apk debug 4.3.1 npm
php83-intl 8.3.15-r0 apk debuglog 1.0.1 npm
php83-mbstring 8.3.15-r0 apk decamelize 1.2.0 npm
php83-mysqlnd 8.3.15-r0 apk decode-uri-component 0.2.0 npm
php83-opcache 8.3.15-r0 apk deep-extend 0.6.0 npm
php83-openssl 8.3.15-r0 apk defaults 1.0.3 npm
php83-pdo 8.3.15-r0 apk define-properties 1.1.3 npm
php83-pdo_mysql 8.3.15-r0 apk delayed-stream 1.0.0 npm
php83-pdo_pgsql 8.3.15-r0 apk delegates 1.0.0 npm
php83-pdo_sqlite 8.3.15-r0 apk denque 1.5.1 npm
php83-phar 8.3.15-r0 apk depd 1.1.2 npm
php83-session 8.3.15-r0 apk depd 2.0.0 npm
php83-simplexml 8.3.15-r0 apk destroy 1.0.4 npm
php83-tokenizer 8.3.15-r0 apk detect-indent 5.0.0 npm
php83-xml 8.3.15-r0 apk detect-libc 1.0.3 npm
php83-xmlwriter 8.3.15-r0 apk detect-newline 2.1.0 npm
php83-zip 8.3.15-r0 apk dezalgo 1.0.3 npm
phpdocumentor/reflection-common 2.2.0 php-composer dicer 0.2.5 npm
phpdocumentor/type-resolver 1.8.0 php-composer dijkstrajs 1.0.1 npm
phpoption/phpoption 1.9.2 php-composer docker-modem 2.1.4 npm
phpstan/phpdoc-parser 1.25.0 php-composer dockerode 3.2.1 npm
phpunit/php-code-coverage 9.2.30 php-composer dot-prop 4.2.1 npm
phpunit/php-file-iterator 3.0.6 php-composer dotenv 5.0.1 npm
phpunit/php-invoker 3.1.1 php-composer dotenv 8.2.0 npm
phpunit/php-text-template 2.0.4 php-composer dottie 2.0.2 npm
phpunit/php-timer 5.0.3 php-composer duplexer3 0.1.4 npm
phpunit/phpunit 9.6.16 php-composer duplexify 3.6.0 npm
popt 1.19-r3 apk ecc-jsbn 0.1.2 npm
procps-ng 4.0.4-r0 apk ecdsa-sig-formatter 1.0.11 npm
psr/cache 3.0.0 php-composer editor 1.0.0 npm
psr/clock 1.0.0 php-composer editorconfig 0.15.3 npm
psr/container 2.0.2 php-composer ee-first 1.1.1 npm
psr/event-dispatcher 1.0.0 php-composer emoji-regex 7.0.3 npm
psr/http-client 1.0.3 php-composer emoji-regex 8.0.0 npm
psr/http-factory 1.0.2 php-composer encodeurl 1.0.2 npm
psr/http-message 2.0 php-composer encoding 0.1.12 npm
psr/log 3.0.0 php-composer end-of-stream 1.4.1 npm
psr/simple-cache 3.0.0 php-composer end-of-stream 1.4.4 npm
psy/psysh v0.12.0 php-composer env-paths 2.2.0 npm
ralouphie/getallheaders 3.0.3 php-composer err-code 1.1.2 npm
ramsey/collection 2.0.0 php-composer errno 0.1.7 npm
ramsey/uuid 4.7.5 php-composer es-abstract 1.12.0 npm
readline 8.2.10-r0 apk es-to-primitive 1.2.0 npm
scanelf 1.3.7-r2 apk es5-ext 0.10.53 npm
sebastian/cli-parser 1.0.1 php-composer es6-iterator 2.0.3 npm
sebastian/code-unit 1.0.8 php-composer es6-promise 4.2.8 npm
sebastian/code-unit-reverse-lookup 2.0.3 php-composer es6-promisify 5.0.0 npm
sebastian/comparator 4.0.8 php-composer es6-symbol 3.1.3 npm
sebastian/complexity 2.0.3 php-composer es6-weak-map 2.0.3 npm
sebastian/diff 4.0.5 php-composer escape-html 1.0.3 npm
sebastian/environment 5.1.5 php-composer escape-string-regexp 1.0.5 npm
sebastian/exporter 4.0.5 php-composer etag 1.8.1 npm
sebastian/global-state 5.0.6 php-composer event-emitter 0.3.5 npm
sebastian/lines-of-code 1.0.4 php-composer execa 0.7.0 npm
sebastian/object-enumerator 4.0.4 php-composer express 4.17.1 npm
sebastian/object-reflector 2.0.4 php-composer ext 1.4.0 npm
sebastian/recursion-context 4.0.5 php-composer extend 3.0.2 npm
sebastian/resource-operations 3.0.3 php-composer external-editor 3.1.0 npm
sebastian/type 3.2.1 php-composer extsprintf 1.3.0 npm
sebastian/version 3.0.2 php-composer fast-deep-equal 3.1.1 npm
shadow 4.15.1-r0 apk fast-deep-equal 3.1.3 npm
skalibs 2.14.1.1-r0 apk fast-json-stable-stringify 2.0.0 npm
spatie/backtrace 1.5.3 php-composer fast-json-stable-stringify 2.1.0 npm
spatie/flare-client-php 1.4.4 php-composer figgy-pudding 3.5.1 npm
spatie/ignition 1.12.0 php-composer figures 3.2.0 npm
spatie/laravel-ignition 2.4.2 php-composer file-type 16.5.3 npm
sqlite-libs 3.45.3-r1 apk finalhandler 1.1.2 npm
squizlabs/php_codesniffer 3.9.0 php-composer find-npm-prefix 1.0.2 npm
ssl_client 1.36.1-r29 apk find-up 3.0.0 npm
symfony/cache v6.4.3 php-composer flush-write-stream 1.0.3 npm
symfony/cache-contracts v3.4.0 php-composer follow-redirects 1.13.0 npm
symfony/console v6.4.3 php-composer forever-agent 0.6.1 npm
symfony/css-selector v7.0.3 php-composer form-data 2.3.2 npm
symfony/deprecation-contracts v3.4.0 php-composer form-data 2.3.3 npm
symfony/error-handler v6.4.3 php-composer forwarded 0.1.2 npm
symfony/event-dispatcher v7.0.3 php-composer fresh 0.5.2 npm
symfony/event-dispatcher-contracts v3.4.0 php-composer from2 1.3.0 npm
symfony/finder v6.4.0 php-composer from2 2.3.0 npm
symfony/http-foundation v6.4.3 php-composer fs-constants 1.0.0 npm
symfony/http-kernel v6.4.3 php-composer fs-extra 7.0.1 npm
symfony/mailer v6.4.3 php-composer fs-minipass 1.2.7 npm
symfony/mime v6.4.3 php-composer fs-minipass 2.1.0 npm
symfony/options-resolver v7.0.0 php-composer fs-vacuum 1.2.10 npm
symfony/polyfill-ctype v1.29.0 php-composer fs-write-stream-atomic 1.0.10 npm
symfony/polyfill-intl-grapheme v1.29.0 php-composer fs.realpath 1.0.0 npm
symfony/polyfill-intl-idn v1.29.0 php-composer fstream 1.0.12 npm
symfony/polyfill-intl-normalizer v1.29.0 php-composer function-bind 1.1.1 npm
symfony/polyfill-mbstring v1.29.0 php-composer gauge 2.7.4 npm
symfony/polyfill-php72 v1.29.0 php-composer generate-function 2.3.1 npm
symfony/polyfill-php80 v1.29.0 php-composer genfun 5.0.0 npm
symfony/polyfill-php83 v1.29.0 php-composer gentle-fs 2.3.1 npm
symfony/polyfill-uuid v1.29.0 php-composer get-caller-file 2.0.5 npm
symfony/process v6.4.3 php-composer get-stream 3.0.0 npm
symfony/routing v6.4.3 php-composer get-stream 4.1.0 npm
symfony/service-contracts v3.4.1 php-composer getpass 0.1.7 npm
symfony/string v7.0.3 php-composer glob 7.1.6 npm
symfony/thanks v1.2.10 php-composer global-dirs 0.1.1 npm
symfony/translation v6.4.3 php-composer got 6.7.1 npm
symfony/translation-contracts v3.4.1 php-composer graceful-fs 4.2.3 npm
symfony/uid v6.4.3 php-composer graceful-fs 4.2.4 npm
symfony/var-dumper v6.4.3 php-composer har-schema 2.0.0 npm
symfony/var-exporter v7.0.3 php-composer har-validator 5.1.5 npm
symfony/yaml v6.4.3 php-composer has 1.0.3 npm
theseer/tokenizer 1.2.2 php-composer has-flag 3.0.0 npm
tijsverkoyen/css-to-inline-styles v2.2.7 php-composer has-flag 4.0.0 npm
tzdata 2024b-r0 apk has-symbols 1.0.0 npm
utmps-libs 0.1.2.2-r1 apk has-unicode 2.0.1 npm
vlucas/phpdotenv v5.6.0 php-composer heimdall 3.0.0 npm
voku/portable-ascii 2.0.1 php-composer hosted-git-info 2.8.9 npm
webmozart/assert 1.11.0 php-composer http-cache-semantics 3.8.1 npm
xz-libs 5.6.2-r0 apk http-errors 1.7.2 npm
zlib 1.3.1-r1 apk http-proxy-agent 2.1.0 npm
zstd-libs 1.5.6-r0 apk 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,124 +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
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
# 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-heimdall-config -> init-config-end
init-os-end -> init-crontab-config
init-mods-end -> init-custom-files
base -> init-envfile
init-os-end -> init-folders
init-nginx-end -> init-heimdall-config
init-php -> init-keygen
base -> init-migrations
base -> init-mods
init-config-end -> init-mods
init-version-checks -> init-mods
init-mods -> init-mods-end
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-samples -> init-nginx
init-permissions -> init-nginx-end
base -> init-os-end
init-adduser -> init-os-end
init-envfile -> init-os-end
init-migrations -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-mods-end -> init-services
init-config-end -> 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.20" <- "baseimage-alpine:3.20"
}
"heimdall:development" <- Base Images
# changelog # changelog
changelogs: changelogs:
- {date: "27.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."} - { date: "12.04.21:", desc: "Add experimental `js` tag for v3." }
- {date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."} - { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." }
- {date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."} - { date: "10.02.21:", desc: "Rebasing to alpine 3.13." }
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."} - { date: "17.08.20:", desc: "Add php7-curl." }
- {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."} - { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }
- {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."} - { date: "17.01.20:", desc: "Use nginx from baseimage." }
- {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."} - { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
- {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: "16.07.19:", desc: "Save laravel.log to /config/log/heimdall." }
- {date: "04.11.22:", desc: "Build commits to upstream branch 2.x."} - { date: "28.06.19:", desc: "Rebasing to alpine 3.10." }
- {date: "13.03.21:", desc: "Make searchproviders.yaml user configurable."} - { date: "01.04.19:", desc: "Fix permission detect logic." }
- {date: "11.03.21:", desc: "Rebase to alpine 3.14."} - { date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown." }
- {date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel."} - { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- {date: "10.02.21:", desc: "Rebasing to alpine 3.13."} - { date: "15.03.19:", desc: "Clarify docker image tags in readme." }
- {date: "01.06.20:", desc: "Rebasing to alpine 3.12."} - { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
- {date: "19.12.19:", desc: "Rebasing to alpine 3.11."} - { date: "16.01.18:", desc: "Generate random app key in .env for new installs." }
- {date: "15.07.19:", desc: "Save laravel.log to /config, install heimdall during first start."} - { date: "20.11.18:", desc: "Upgrade baseimage packages during build." }
- {date: "28.06.19:", desc: "Rebasing to alpine 3.10."} - { date: "04.11.18:", desc: "Add php7-zip." }
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."} - { date: "31.10.18:", desc: "Add queue service." }
- {date: "22.02.19:", desc: "Rebasing to alpine 3.9."} - { date: "17.10.18:", desc: "Symlink avatars folder." }
- {date: "04.11.18:", desc: "Add php7-zip."} - { date: "16.10.18:", desc: "Updated fastcgi_params for user login support." }
- {date: "31.10.18:", desc: "Add queue service."} - { date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`" }
- {date: "17.10.18:", desc: "Symlink avatars folder."} - { date: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`." }
- {date: "16.10.18:", desc: "Updated fastcgi_params for user login support."} - { date: "05.09.18:", desc: "Rebase to alpine linux 3.8." }
- {date: "07.10.18:", desc: "Symlink `.env` rather than copy. It now resides under `/config/www`"} - { 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: "30.09.18:", desc: "Multi-arch image. Move `.env` to `/config`."} - { date: "12.02.18:", desc: "Initial Release." }
- {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>