Compare commits

...

65 Commits

Author SHA1 Message Date
LinuxServer-CI
09d8b7a4e1
Bot Updating Package Versions 2026-01-17 04:57:07 +00:00
LinuxServer-CI
b01eb3400e
Bot Updating Package Versions 2026-01-12 19:46:35 +00:00
LinuxServer-CI
a28f241993
Bot Updating Package Versions 2026-01-09 19:47:11 +00:00
LinuxServer-CI
0a749f992d
Bot Updating Package Versions 2025-12-27 20:26:55 +00:00
LinuxServer-CI
b576c63da2
Bot Updating Package Versions 2025-12-17 19:45:14 +00:00
LinuxServer-CI
5dce046d6a
Bot Updating Package Versions 2025-12-13 20:26:34 +00:00
LinuxServer-CI
21a9776532
Bot Updating Package Versions 2025-12-01 22:47:42 +00:00
LinuxServer-CI
0ffc040498
Bot Updating Package Versions 2025-11-20 02:21:31 +00:00
LinuxServer-CI
0099a5ec1d
Bot Updating Package Versions 2025-11-19 18:54:39 +00:00
LinuxServer-CI
f1390d0729
Bot Updating Templated Files 2025-11-19 18:50:36 +00:00
LinuxServer-CI
02020676c8
Bot Updating Package Versions 2025-11-08 20:22:58 +00:00
LinuxServer-CI
4a8f4ae142
Bot Updating Templated Files 2025-10-25 20:21:51 +00:00
LinuxServer-CI
59758287cf
Bot Updating Package Versions 2025-10-20 20:49:35 +00:00
LinuxServer-CI
35407446e6
Bot Updating Templated Files 2025-10-20 20:45:27 +00:00
LinuxServer-CI
022b13b69c
Bot Updating Package Versions 2025-10-17 20:45:24 +00:00
LinuxServer-CI
71811615a3
Bot Updating Package Versions 2025-10-07 18:53:17 +00:00
LinuxServer-CI
dd44d039a9
Bot Updating Package Versions 2025-10-04 20:22:31 +00:00
LinuxServer-CI
364de01076
Bot Updating Package Versions 2025-09-26 22:44:40 +00:00
LinuxServer-CI
b188f00f8b
Bot Updating Package Versions 2025-09-19 19:43:19 +00:00
LinuxServer-CI
9a24cfbba8
Bot Updating Package Versions 2025-09-15 23:11:16 +00:00
LinuxServer-CI
4484b11aaf
Bot Updating Package Versions 2025-09-13 20:23:15 +00:00
LinuxServer-CI
748dbf9082
Bot Updating Package Versions 2025-08-25 23:44:59 +00:00
LinuxServer-CI
9cb5782e8a
Bot Updating Package Versions 2025-08-16 02:27:25 +00:00
aptalca
f49c8f0fe6
Merge pull request #179 from linuxserver/ipv6
listen on both ipv4 and ipv6
2025-08-12 22:35:43 -04:00
LinuxServer-CI
6c2a4014a1
Bot Updating Package Versions 2025-08-12 22:48:32 +00:00
thespad
236e751721
Merge branch 'master' into ipv6 2025-08-10 11:39:04 +01:00
thespad
e9f4337417
Fix changelog date 2025-08-10 11:37:23 +01:00
LinuxServer-CI
7a2065c171
Bot Updating Package Versions 2025-08-09 20:25:42 +00:00
LinuxServer-CI
ca3c2c9cf7
Bot Updating Package Versions 2025-07-31 04:31:52 +00:00
LinuxServer-CI
300e85d3e2
Bot Updating Package Versions 2025-07-24 22:52:28 +00:00
LinuxServer-CI
b5d20f6114
Bot Updating Package Versions 2025-07-17 21:47:24 +00:00
LinuxServer-CI
fca71a0de1
Bot Updating Package Versions 2025-07-17 04:16:53 +00:00
LinuxServer-CI
6a9f6ebcb5
Bot Updating Package Versions 2025-07-12 20:26:23 +00:00
LinuxServer-CI
b94352e411
Bot Updating Package Versions 2025-07-05 20:28:23 +00:00
LinuxServer-CI
cfa4070fea
Bot Updating Templated Files 2025-07-05 20:24:17 +00:00
LinuxServer-CI
5779273123
Bot Updating Templated Files 2025-07-05 20:22:28 +00:00
LinuxServer-CI
0479e81563
Bot Updating Package Versions 2025-06-25 21:46:38 +00:00
LinuxServer-CI
e204bcaef6
Bot Updating Package Versions 2025-06-21 03:36:10 +00:00
LinuxServer-CI
0e1e48d5cd
Bot Updating Package Versions 2025-06-20 21:44:33 +00:00
LinuxServer-CI
455407219e
Bot Updating Package Versions 2025-06-14 20:26:33 +00:00
LinuxServer-CI
9d79e61c06
Bot Updating Templated Files 2025-06-14 20:22:00 +00:00
LinuxServer-CI
87f961f038
Bot Updating Package Versions 2025-06-07 20:23:08 +00:00
LinuxServer-CI
6bd0ebb31e
Bot Updating Package Versions 2025-06-03 21:44:23 +00:00
LinuxServer-CI
9d95aadf89
Bot Updating Templated Files 2025-06-03 13:43:26 +00:00
Roxedus
8c14b46231
Merge pull request #200 from ajain-93/add-pwa-name 2025-06-03 15:41:54 +02:00
Arnav Jain
8c12be9378
Update readme-vars.yml 2025-06-03 15:27:13 +02:00
Arnav Jain
a0a1ba58ee
add support for changing PWA name
if environment variable `PWA_APPNAME` is set, then this value is used for the name of the PWA app.
2025-06-03 15:22:45 +02:00
LinuxServer-CI
f58e3ebccc
Bot Updating Package Versions 2025-05-31 20:22:57 +00:00
LinuxServer-CI
eeb8afd54d
Bot Updating Package Versions 2025-05-24 20:26:55 +00:00
LinuxServer-CI
c0b66f3246
Bot Updating Templated Files 2025-05-17 20:21:28 +00:00
LinuxServer-CI
9f8ec8013e
Bot Updating Package Versions 2025-05-15 23:44:54 +00:00
LinuxServer-CI
2a36656096
Bot Updating Package Versions 2025-05-14 18:52:15 +00:00
LinuxServer-CI
e92931416b
Bot Updating Package Versions 2025-05-12 18:53:12 +00:00
Adam
6b64e1e967
Merge pull request #199 from linuxserver/ro-non-root 2025-05-12 17:04:31 +01:00
thespad
a7294dfb09
Don't try and enable sudo if ro/non-root even if set 2025-05-11 14:36:04 +01:00
thespad
a7e2b20ca2
Support ro/non-root 2025-05-11 14:33:51 +01:00
LinuxServer-CI
badac0c5f0
Bot Updating Package Versions 2025-05-02 18:54:43 +00:00
LinuxServer-CI
e14c470234
Bot Updating Package Versions 2025-04-26 20:21:55 +00:00
LinuxServer-CI
ab481ce6bc
Bot Updating Package Versions 2025-04-17 18:51:55 +00:00
LinuxServer-CI
94234a1ca5
Bot Updating Package Versions 2025-04-11 18:53:40 +00:00
LinuxServer-CI
86f281df7f
Bot Updating Package Versions 2025-04-08 21:43:40 +00:00
LinuxServer-CI
1a7ac378ce
Bot Updating Package Versions 2025-04-08 02:17:06 +00:00
LinuxServer-CI
18bb3a0a15
Bot Updating Package Versions 2025-04-05 20:22:01 +00:00
LinuxServer-CI
872ad28cf9
Bot Updating Package Versions 2025-03-29 20:21:31 +00:00
aptalca
7929311233
listen on both ipv4 and ipv6 2024-04-21 10:15:27 -04:00
20 changed files with 758 additions and 644 deletions

0
.editorconfig Executable file → Normal file
View File

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

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

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

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

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

3
.github/workflows/call_issue_pr_tracker.yml vendored Executable file → Normal file
View File

@ -8,6 +8,9 @@ on:
pull_request_review: pull_request_review:
types: [submitted,edited,dismissed] types: [submitted,edited,dismissed]
permissions:
contents: read
jobs: jobs:
manage-project: manage-project:
permissions: permissions:

3
.github/workflows/call_issues_cron.yml vendored Executable file → Normal file
View File

@ -4,6 +4,9 @@ on:
- cron: '31 1 * * *' - cron: '31 1 * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
stale: stale:
permissions: permissions:

View File

@ -3,6 +3,9 @@ name: External Trigger Main
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-master: external-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -43,8 +46,8 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/code-server" image="linuxserver/code-server"
tag="latest" tag="latest"
@ -100,8 +103,8 @@ jobs:
exit 1 exit 1
fi fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/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 echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
@ -116,7 +119,7 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY 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 echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi fi
@ -136,7 +139,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit" --data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****" echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for code-server tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" TRIGGER_REASON="A version change was detected for code-server tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, 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"}], "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View File

@ -5,6 +5,9 @@ on:
- cron: '32 * * * *' - cron: '32 * * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest

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

@ -2,8 +2,14 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1

View File

@ -5,6 +5,9 @@ on:
- cron: '0 20 * * 6' - cron: '0 20 * * 6'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest

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

107
Jenkinsfile vendored
View File

@ -94,7 +94,11 @@ pipeline {
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml' env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
if ( env.SYFT_IMAGE_TAG == null ) {
env.SYFT_IMAGE_TAG = 'latest'
} }
}
echo "Using syft image tag ${SYFT_IMAGE_TAG}"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{ script{
@ -204,6 +208,7 @@ pipeline {
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
env.CITEST_IMAGETAG = 'latest'
} }
} }
} }
@ -229,6 +234,7 @@ pipeline {
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
env.CITEST_IMAGETAG = 'develop'
} }
} }
} }
@ -254,6 +260,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
env.CITEST_IMAGETAG = 'develop'
} }
} }
} }
@ -276,7 +283,7 @@ pipeline {
-v ${WORKSPACE}:/mnt \ -v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache python3 && \ apk add --no-cache python3 && \
python3 -m venv /lsiopy && \ python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \ pip install --no-cache-dir -U pip && \
@ -611,13 +618,16 @@ pipeline {
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then if [[ "${PACKAGE_CHECK}" != "true" ]]; then
declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE" IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
pids[$!]="$i"
done done
for p in $(jobs -p); do for p in "${!pids[@]}"; do
wait "$p" || { echo "job $p failed" >&2; exit 1; } wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
done done
fi fi
''' '''
@ -677,13 +687,16 @@ pipeline {
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then if [[ "${PACKAGE_CHECK}" != "true" ]]; then
declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE" IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
pids[$!]="$i"
done done
for p in $(jobs -p); do for p in "${!pids[@]}"; do
wait "$p" || { echo "job $p failed" >&2; exit 1; } wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
done done
fi fi
''' '''
@ -737,12 +750,14 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then if [[ "${PACKAGE_CHECK}" != "true" ]]; then
declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE" IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do for i in "${CACHE[@]}"; do
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
pids[$!]="$i"
done done
for p in $(jobs -p); do for p in "${!pids[@]}"; do
wait "$p" || { echo "job $p failed" >&2; exit 1; } wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
done done
fi fi
''' '''
@ -780,7 +795,7 @@ pipeline {
docker run --rm \ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \ -v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:latest \ ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@ -867,7 +882,7 @@ pipeline {
CI_DOCKERENV="LSIO_FIRST_PARTY=true" CI_DOCKERENV="LSIO_FIRST_PARTY=true"
fi fi
fi fi
docker pull ghcr.io/linuxserver/ci:latest docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG}
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
@ -890,7 +905,10 @@ pipeline {
-e WEB_AUTH=\"${CI_AUTH}\" \ -e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \ -e NODE_NAME=\"${NODE_NAME}\" \
-t ghcr.io/linuxserver/ci:latest \ -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
-e COMMIT_SHA=\"${COMMIT_SHA}\" \
-e BUILD_NUMBER=\"${BUILD_NUMBER}\" \
-t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \
python3 test_build.py''' python3 test_build.py'''
} }
} }
@ -916,9 +934,11 @@ pipeline {
CACHEIMAGE=${i} CACHEIMAGE=${i}
fi fi
done done
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
fi fi
done done
''' '''
@ -943,20 +963,27 @@ pipeline {
CACHEIMAGE=${i} CACHEIMAGE=${i}
fi fi
done done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
fi fi
done done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
fi fi
done done
''' '''
@ -974,23 +1001,41 @@ pipeline {
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
sh '''#! /bin/bash
echo "Auto-generating release notes"
if [ "$(git tag --points-at HEAD)" != "" ]; then
echo "Existing tag points to current commit, suggesting no new LS changes"
AUTO_RELEASE_NOTES="No changes"
else
AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \
-d '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master"}' \
| jq -r '.body' | sed 's|## What.s Changed||')
fi
echo "Pushing New tag for current commit ${META_TAG}" echo "Pushing New tag for current commit ${META_TAG}"
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\ -d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\ jq -n \
"target_commitish": "master",\ --arg tag_name "$META_TAG" \
"name": "'${META_TAG}'",\ --arg target_commitish "master" \
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start --arg ci_url "${CI_URL:-N/A}" \
printf '","draft": false,"prerelease": false}' >> releasebody.json --arg ls_notes "$AUTO_RELEASE_NOTES" \
paste -d'\\0' start releasebody.json > releasebody.json.done --arg remote_notes "$(cat releasebody.json)" \
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' '{
"tag_name": $tag_name,
"target_commitish": $target_commitish,
"name": $tag_name,
"body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes),
"draft": false,
"prerelease": false }' > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done
'''
} }
} }
// Add protection to the release branch // Add protection to the release branch

0
LICENSE Executable file → Normal file
View File

View File

@ -5,7 +5,6 @@
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@ -22,7 +21,6 @@ Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
@ -61,7 +59,6 @@ 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 | ❌ | |
## Application Setup ## Application Setup
@ -78,6 +75,23 @@ git config --global user.email "email address"
How to create the [hashed password](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#can-i-store-my-password-hashed). How to create the [hashed password](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#can-i-store-my-password-hashed).
## Read-Only Operation
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
### Caveats
* `/tmp` must be mounted to tmpfs
* `sudo` will not be available
## Non-Root Operation
This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/).
### Caveats
* `sudo` will not be available
## Usage ## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli. To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@ -103,6 +117,7 @@ services:
- SUDO_PASSWORD_HASH= #optional - SUDO_PASSWORD_HASH= #optional
- PROXY_DOMAIN=code-server.my.domain #optional - PROXY_DOMAIN=code-server.my.domain #optional
- DEFAULT_WORKSPACE=/config/workspace #optional - DEFAULT_WORKSPACE=/config/workspace #optional
- PWA_APPNAME=code-server #optional
volumes: volumes:
- /path/to/code-server/config:/config - /path/to/code-server/config:/config
ports: ports:
@ -124,6 +139,7 @@ docker run -d \
-e SUDO_PASSWORD_HASH= `#optional` \ -e SUDO_PASSWORD_HASH= `#optional` \
-e PROXY_DOMAIN=code-server.my.domain `#optional` \ -e PROXY_DOMAIN=code-server.my.domain `#optional` \
-e DEFAULT_WORKSPACE=/config/workspace `#optional` \ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \
-e PWA_APPNAME=code-server `#optional` \
-p 8443:8443 \ -p 8443:8443 \
-v /path/to/code-server/config:/config \ -v /path/to/code-server/config:/config \
--restart unless-stopped \ --restart unless-stopped \
@ -146,7 +162,10 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e SUDO_PASSWORD_HASH=` | Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`. | | `-e SUDO_PASSWORD_HASH=` | Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`. |
| `-e PROXY_DOMAIN=code-server.my.domain` | If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain) | | `-e PROXY_DOMAIN=code-server.my.domain` | If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain) |
| `-e DEFAULT_WORKSPACE=/config/workspace` | If this optional variable is set, code-server will open this directory by default | | `-e DEFAULT_WORKSPACE=/config/workspace` | If this optional variable is set, code-server will open this directory by default |
| `-e PWA_APPNAME=code-server` | If this optional variable is set, the PWA app will the specified name. |
| `-v /config` | Contains all relevant configuration files. | | `-v /config` | Contains all relevant configuration files. |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@ -310,6 +329,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **10.08.25:** - Let server listen on both ipv4 and ipv6.
* **03.06.25:** - Allow setting PWA name using env var `PWA_APPNAME`.
* **13.10.24:** - Only chown config folder when change to ownership or new install is detected. * **13.10.24:** - Only chown config folder when change to ownership or new install is detected.
* **09.10.24:** - Manage permissions in /config/.ssh according to file type * **09.10.24:** - Manage permissions in /config/.ssh according to file type
* **19.08.24:** - Rebase to Ubuntu Noble. * **19.08.24:** - Rebase to Ubuntu Noble.

View File

@ -1,5 +1,5 @@
NAME VERSION TYPE NAME VERSION TYPE
@babel/runtime 7.25.7 npm @babel/runtime 7.27.6 npm
@coder/logger 3.0.1 npm @coder/logger 3.0.1 npm
@mapbox/node-pre-gyp 1.0.11 npm @mapbox/node-pre-gyp 1.0.11 npm
@microsoft/1ds-core-js 3.2.13 npm @microsoft/1ds-core-js 3.2.13 npm
@ -7,47 +7,47 @@ NAME VERSION TYPE
@microsoft/applicationinsights-core-js 2.8.15 npm @microsoft/applicationinsights-core-js 2.8.15 npm
@microsoft/applicationinsights-shims 2.0.2 npm @microsoft/applicationinsights-shims 2.0.2 npm
@microsoft/dynamicproto-js 1.1.9 npm @microsoft/dynamicproto-js 1.1.9 npm
@parcel/watcher 2.5.1 npm
@parcel/watcher-linux-x64-glibc 2.5.1 npm
@parcel/watcher-linux-x64-musl 2.5.1 npm
@phc/format 1.0.0 npm @phc/format 1.0.0 npm
@tootallnate/once 3.0.0 npm @tootallnate/once 3.0.0 npm
@tootallnate/quickjs-emscripten 0.23.0 npm @tootallnate/quickjs-emscripten 0.23.0 npm
@vscode/deviceid 0.1.1 npm @vscode/deviceid 0.1.1 npm
@vscode/iconv-lite-umd 0.7.0 npm @vscode/iconv-lite-umd 0.7.1 npm
@vscode/proxy-agent 0.32.0 npm @vscode/proxy-agent 0.36.0 npm
@vscode/ripgrep 1.15.10 npm @vscode/ripgrep 1.15.14 npm
@vscode/spdlog 0.15.1 npm @vscode/spdlog 0.15.4 npm
@vscode/tree-sitter-wasm 0.1.3 npm @vscode/tree-sitter-wasm 0.3.0 npm
@vscode/vscode-languagedetection 1.0.21 npm @vscode/vscode-languagedetection 1.0.21 npm
@vscode/windows-process-tree 0.6.0 npm @vscode/watcher 2.5.1-vscode npm
@vscode/windows-registry 1.1.0 npm @vscode/windows-process-tree 0.6.2 npm
@xterm/addon-clipboard 0.2.0-beta.81 npm @vscode/windows-registry 1.1.2 npm
@xterm/addon-image 0.9.0-beta.98 npm @xterm/addon-clipboard 0.3.0-beta.91 npm
@xterm/addon-ligatures 0.10.0-beta.98 npm @xterm/addon-image 0.10.0-beta.91 npm
@xterm/addon-progress 0.2.0-beta.4 npm @xterm/addon-ligatures 0.11.0-beta.91 npm
@xterm/addon-search 0.16.0-beta.98 npm @xterm/addon-progress 0.3.0-beta.91 npm
@xterm/addon-serialize 0.14.0-beta.98 npm @xterm/addon-search 0.17.0-beta.91 npm
@xterm/addon-unicode11 0.9.0-beta.98 npm @xterm/addon-serialize 0.15.0-beta.91 npm
@xterm/addon-webgl 0.19.0-beta.98 npm @xterm/addon-unicode11 0.10.0-beta.91 npm
@xterm/headless 5.6.0-beta.98 npm @xterm/addon-webgl 0.20.0-beta.101 npm
@xterm/xterm 5.6.0-beta.98 npm @xterm/headless 6.1.0-beta.91 npm
OpenConsole.exe 1.22.250204002 dotnet (+1 duplicate) @xterm/xterm 6.1.0-beta.104 npm
ConPTY Interface Library 1.23.251008001 binary (+1 duplicate)
Console Window and PTY Host (Open Source) 1.23.251008001 binary (+1 duplicate)
abbrev 1.1.1 npm abbrev 1.1.1 npm
accepts 2.0.0 npm accepts 2.0.0 npm
adduser 3.137ubuntu1 deb adduser 3.137ubuntu1 deb
agent-base 6.0.2 npm agent-base 6.0.2 npm
agent-base 7.1.1 npm (+4 duplicates) agent-base 7.1.1 npm
agent-base 7.1.3 npm (+3 duplicates)
ansi-regex 5.0.1 npm ansi-regex 5.0.1 npm
aproba 2.0.0 npm aproba 2.0.0 npm
apt 2.7.14build2 deb apt 2.8.3 deb
apt-utils 2.7.14build2 deb apt-utils 2.8.3 deb
are-we-there-yet 2.0.0 npm are-we-there-yet 2.0.0 npm
argon2 0.31.2 npm argon2 0.31.2 npm
argparse 2.0.1 npm argparse 2.0.1 npm
ast-types 0.13.4 npm ast-types 0.13.4 npm
balanced-match 1.0.2 npm balanced-match 1.0.2 npm
base-files 13ubuntu10.2 deb base-files 13ubuntu10.3 deb
base-passwd 3.6.3build1 deb base-passwd 3.6.3build1 deb
base64-js 1.5.1 npm base64-js 1.5.1 npm
bash 5.2.21-2ubuntu4 deb bash 5.2.21-2ubuntu4 deb
@ -56,10 +56,10 @@ bat 1.0.0 npm
beep-boop 1.2.3 npm beep-boop 1.2.3 npm
bindings 1.5.0 npm bindings 1.5.0 npm
bl 4.1.0 npm bl 4.1.0 npm
body-parser 2.1.0 npm body-parser 2.2.0 npm
brace-expansion 1.1.11 npm brace-expansion 1.1.12 npm
braces 3.0.3 npm braces 3.0.3 npm
bsdutils 1:2.39.3-9ubuntu6.2 deb bsdutils 1:2.39.3-9ubuntu6.4 deb
buffer 5.7.1 npm buffer 5.7.1 npm
buffer-alloc 1.2.0 npm buffer-alloc 1.2.0 npm
buffer-alloc-unsafe 1.1.0 npm buffer-alloc-unsafe 1.1.0 npm
@ -75,24 +75,23 @@ charenc 0.0.2 npm
chownr 1.1.4 npm chownr 1.1.4 npm
chownr 2.0.0 npm chownr 2.0.0 npm
clojure 1.0.0 npm clojure 1.0.0 npm
code-server 1.98.2 npm code-server 1.108.1 npm
code-server 4.98.2 npm code-server 4.108.1 npm
coffeescript 1.0.0 npm coffeescript 1.0.0 npm
color-support 1.1.3 npm color-support 1.1.3 npm
commander 8.3.0 npm
compressible 2.0.18 npm compressible 2.0.18 npm
compression 1.8.0 npm compression 1.8.1 npm
concat-map 0.0.1 npm concat-map 0.0.1 npm
configuration-editing 1.0.0 npm configuration-editing 1.0.0 npm
conpty.dll 1.22.250204002 dotnet (+1 duplicate)
console-control-strings 1.1.0 npm console-control-strings 1.1.0 npm
content-disposition 1.0.0 npm content-disposition 1.0.0 npm
content-type 1.0.5 npm content-type 1.0.5 npm
cookie 0.7.1 npm
cookie 0.7.2 npm (+1 duplicate) cookie 0.7.2 npm (+1 duplicate)
cookie-parser 1.4.7 npm cookie-parser 1.4.7 npm
cookie-signature 1.0.6 npm cookie-signature 1.0.6 npm
cookie-signature 1.2.2 npm cookie-signature 1.2.2 npm
coreutils 9.4-3ubuntu6 deb coreutils 9.4-3ubuntu6.1 deb
cpp 1.0.0 npm cpp 1.0.0 npm
cron 3.0pl1-184ubuntu2 deb cron 3.0pl1-184ubuntu2 deb
cron-daemon-common 3.0pl1-184ubuntu2 deb cron-daemon-common 3.0pl1-184ubuntu2 deb
@ -108,8 +107,7 @@ debconf 1.5.86ubuntu1 deb
debianutils 5.17build1 deb debianutils 5.17build1 deb
debug 2.6.9 npm debug 2.6.9 npm
debug 4.3.4 npm debug 4.3.4 npm
debug 4.3.6 npm debug 4.4.1 npm
debug 4.4.0 npm
debug-auto-launch 1.0.0 npm debug-auto-launch 1.0.0 npm
debug-server-ready 1.0.0 npm debug-server-ready 1.0.0 npm
decompress-response 6.0.0 npm decompress-response 6.0.0 npm
@ -117,15 +115,14 @@ deep-extend 0.6.0 npm
degenerator 5.0.1 npm degenerator 5.0.1 npm
delegates 1.0.0 npm delegates 1.0.0 npm
depd 2.0.0 npm depd 2.0.0 npm
destroy 1.2.0 npm
detect-libc 1.0.3 npm
detect-libc 2.0.1 npm
detect-libc 2.0.3 npm detect-libc 2.0.3 npm
detect-libc 2.0.4 npm
diff 1.0.0 npm diff 1.0.0 npm
diffutils 1:3.10-1build1 deb diffutils 1:3.10-1build1 deb
dirmngr 2.4.4-2ubuntu17 deb dirmngr 2.4.4-2ubuntu17.4 deb
docker 1.0.0 npm docker 1.0.0 npm
dpkg 1.22.6ubuntu6.1 deb dotenv 1.0.0 npm
dpkg 1.22.6ubuntu6.5 deb
dunder-proto 1.0.1 npm dunder-proto 1.0.1 npm
e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb
ee-first 1.1.1 npm ee-first 1.1.1 npm
@ -146,7 +143,7 @@ esutils 2.0.3 npm
etag 1.8.1 npm etag 1.8.1 npm
eventemitter3 4.0.7 npm eventemitter3 4.0.7 npm
expand-template 2.0.3 npm expand-template 2.0.3 npm
express 5.0.1 npm express 5.1.0 npm
extension-editing 1.0.0 npm extension-editing 1.0.0 npm
fd-slicer 1.1.0 npm fd-slicer 1.1.0 npm
file-uri-to-path 1.0.0 npm file-uri-to-path 1.0.0 npm
@ -154,13 +151,10 @@ fill-range 7.1.1 npm
finalhandler 2.1.0 npm finalhandler 2.1.0 npm
findutils 4.9.0-5build1 deb findutils 4.9.0-5build1 deb
follow-redirects 1.15.9 npm follow-redirects 1.15.9 npm
font-finder 1.1.0 npm
font-ligatures 1.4.1 npm
forwarded 0.2.0 npm forwarded 0.2.0 npm
fresh 0.5.2 npm
fresh 2.0.0 npm fresh 2.0.0 npm
fs-constants 1.0.0 npm fs-constants 1.0.0 npm
fs-extra 11.2.0 npm (+1 duplicate) fs-extra 11.2.0 npm
fs-minipass 2.1.0 npm fs-minipass 2.1.0 npm
fs.realpath 1.0.0 npm fs.realpath 1.0.0 npm
fsharp 1.0.0 npm fsharp 1.0.0 npm
@ -169,33 +163,32 @@ gauge 3.0.2 npm
gcc-14-base 14.2.0-4ubuntu2~24.04 deb gcc-14-base 14.2.0-4ubuntu2~24.04 deb
get-intrinsic 1.3.0 npm get-intrinsic 1.3.0 npm
get-proto 1.0.1 npm get-proto 1.0.1 npm
get-system-fonts 2.0.2 npm get-uri 6.0.4 npm
get-uri 6.0.3 npm
git 1.0.0 npm git 1.0.0 npm
git 1:2.43.0-1ubuntu7.2 deb git 1:2.43.0-1ubuntu7.3 deb
git-base 1.0.0 npm git-base 1.0.0 npm
git-man 1:2.43.0-1ubuntu7.2 deb git-man 1:2.43.0-1ubuntu7.3 deb
github 0.0.1 npm github 0.0.1 npm
github-authentication 0.0.2 npm github-authentication 0.0.2 npm
github-from-package 0.0.0 npm github-from-package 0.0.0 npm
glob 7.2.3 npm glob 7.2.3 npm
gnupg 2.4.4-2ubuntu17 deb gnupg 2.4.4-2ubuntu17.4 deb
gnupg-l10n 2.4.4-2ubuntu17 deb gnupg-l10n 2.4.4-2ubuntu17.4 deb
gnupg-utils 2.4.4-2ubuntu17 deb gnupg-utils 2.4.4-2ubuntu17.4 deb
go 1.0.0 npm go 1.0.0 npm
gopd 1.2.0 npm gopd 1.2.0 npm
gpg 2.4.4-2ubuntu17 deb gpg 2.4.4-2ubuntu17.4 deb
gpg-agent 2.4.4-2ubuntu17 deb gpg-agent 2.4.4-2ubuntu17.4 deb
gpg-wks-client 2.4.4-2ubuntu17 deb gpg-wks-client 2.4.4-2ubuntu17.4 deb
gpgconf 2.4.4-2ubuntu17 deb gpgconf 2.4.4-2ubuntu17.4 deb
gpgsm 2.4.4-2ubuntu17 deb gpgsm 2.4.4-2ubuntu17.4 deb
gpgv 2.4.4-2ubuntu17 deb gpgv 2.4.4-2ubuntu17.4 deb
graceful-fs 4.2.11 npm (+1 duplicate) graceful-fs 4.2.11 npm
grep 3.11-4build1 deb grep 3.11-4build1 deb
groovy 1.0.0 npm groovy 1.0.0 npm
grunt 1.0.0 npm grunt 1.0.0 npm
gulp 1.0.0 npm gulp 1.0.0 npm
gzip 1.12-1ubuntu3 deb gzip 1.12-1ubuntu3.1 deb
handlebars 1.0.0 npm handlebars 1.0.0 npm
has-symbols 1.1.0 npm has-symbols 1.1.0 npm
has-unicode 2.0.1 npm has-unicode 2.0.1 npm
@ -211,10 +204,10 @@ http-proxy-agent 7.0.2 npm
httpolyglot 0.1.2 npm httpolyglot 0.1.2 npm
https-proxy-agent 5.0.1 npm https-proxy-agent 5.0.1 npm
https-proxy-agent 7.0.2 npm https-proxy-agent 7.0.2 npm
https-proxy-agent 7.0.5 npm (+1 duplicate) https-proxy-agent 7.0.6 npm (+1 duplicate)
i18next 23.16.4 npm i18next 25.3.0 npm
iconv-lite 0.5.2 npm
iconv-lite 0.6.3 npm iconv-lite 0.6.3 npm
iconv-lite 0.7.0 npm
ieee754 1.2.1 npm ieee754 1.2.1 npm
inflight 1.0.6 npm inflight 1.0.6 npm
inherits 2.0.4 npm (+1 duplicate) inherits 2.0.4 npm (+1 duplicate)
@ -234,38 +227,39 @@ isexe 2.0.0 npm
jake 1.0.0 npm jake 1.0.0 npm
java 1.0.0 npm java 1.0.0 npm
javascript 1.0.0 npm javascript 1.0.0 npm
jq 1.7.1-3build1 deb jq 1.7.1-3ubuntu0.24.04.1 deb
js-base64 3.7.7 npm js-base64 3.7.7 npm
js-debug 1.97.1 npm js-debug 1.105.0 npm
js-debug-companion 1.1.3 npm js-debug-companion 1.1.3 npm
js-yaml 4.1.0 npm js-yaml 4.1.0 npm
jsbn 1.1.0 npm (+1 duplicate) jsbn 1.1.0 npm (+1 duplicate)
jschardet 3.1.4 npm jschardet 3.1.4 npm
json 1.0.0 npm json 1.0.0 npm
json-language-features 1.0.0 npm json-language-features 1.0.0 npm
jsonfile 6.1.0 npm (+1 duplicate) jsonfile 6.1.0 npm
julia 1.0.0 npm julia 1.0.0 npm
just-performance 4.3.0 npm just-performance 4.3.0 npm
katex 0.16.22 npm
kerberos 2.1.1 npm kerberos 2.1.1 npm
keyboxd 2.4.4-2ubuntu17 deb keyboxd 2.4.4-2ubuntu17.4 deb
krb5-locales 1.20.1-6ubuntu2.5 deb krb5-locales 1.20.1-6ubuntu2.6 deb
latex 1.0.0 npm latex 1.0.0 npm
less 1.0.0 npm less 1.0.0 npm
less 590-2ubuntu2.1 deb less 590-2ubuntu2.1 deb
libacl1 2.3.2-1build1.1 deb libacl1 2.3.2-1build1.1 deb
libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.3 deb libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.5 deb
libapt-pkg6.0t64 2.7.14build2 deb libapt-pkg6.0t64 2.8.3 deb
libassuan0 2.5.6-1build1 deb libassuan0 2.5.6-1build1 deb
libatomic1 14.2.0-4ubuntu2~24.04 deb libatomic1 14.2.0-4ubuntu2~24.04 deb
libattr1 1:2.5.2-1build1.1 deb libattr1 1:2.5.2-1build1.1 deb
libaudit-common 1:3.1.2-2.1build1.1 deb libaudit-common 1:3.1.2-2.1build1.1 deb
libaudit1 1:3.1.2-2.1build1.1 deb libaudit1 1:3.1.2-2.1build1.1 deb
libblkid1 2.39.3-9ubuntu6.2 deb libblkid1 2.39.3-9ubuntu6.4 deb
libbrotli1 1.1.0-2build2 deb libbrotli1 1.1.0-2build2 deb
libbsd0 0.12.1-1build1.1 deb libbsd0 0.12.1-1build1.1 deb
libbz2-1.0 1.0.8-5.1build0.1 deb libbz2-1.0 1.0.8-5.1build0.1 deb
libc-bin 2.39-0ubuntu8.4 deb libc-bin 2.39-0ubuntu8.6 deb
libc6 2.39-0ubuntu8.4 deb libc6 2.39-0ubuntu8.6 deb
libcap-ng0 0.8.4-2build2 deb libcap-ng0 0.8.4-2build2 deb
libcap2 1:2.66-5ubuntu2.2 deb libcap2 1:2.66-5ubuntu2.2 deb
libcbor0.10 0.10.2-1.2ubuntu2 deb libcbor0.10 0.10.2-1.2ubuntu2 deb
@ -277,7 +271,7 @@ libdb5.3t64 5.3.28+dfsg2-7 deb
libdebconfclient0 0.271ubuntu3 deb libdebconfclient0 0.271ubuntu3 deb
libedit2 3.1-20230828-1build1 deb libedit2 3.1-20230828-1build1 deb
liberror-perl 0.17029-2 deb liberror-perl 0.17029-2 deb
libexpat1 2.6.1-2ubuntu0.2 deb libexpat1 2.6.1-2ubuntu0.3 deb
libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb
libffi8 3.4.6-1build1 deb libffi8 3.4.6-1build1 deb
libfido2-1 1.14.0-1build3 deb libfido2-1 1.14.0-1build3 deb
@ -286,35 +280,35 @@ libgcrypt20 1.10.3-2build1 deb
libgdbm-compat4t64 1.23-5.1build1 deb libgdbm-compat4t64 1.23-5.1build1 deb
libgdbm6t64 1.23-5.1build1 deb libgdbm6t64 1.23-5.1build1 deb
libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb
libgnutls30t64 3.8.3-1.1ubuntu3.3 deb libgnutls30t64 3.8.3-1.1ubuntu3.4 deb
libgpg-error0 1.47-3build2.1 deb libgpg-error0 1.47-3build2.1 deb
libgssapi-krb5-2 1.20.1-6ubuntu2.5 deb libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb
libhogweed6t64 3.9.1-2.2build1.1 deb libhogweed6t64 3.9.1-2.2build1.1 deb
libidn2-0 2.3.7-2build1.1 deb libidn2-0 2.3.7-2build1.1 deb
libjq1 1.7.1-3build1 deb libjq1 1.7.1-3ubuntu0.24.04.1 deb
libk5crypto3 1.20.1-6ubuntu2.5 deb libk5crypto3 1.20.1-6ubuntu2.6 deb
libkeyutils1 1.6.3-3build1 deb libkeyutils1 1.6.3-3build1 deb
libkrb5-3 1.20.1-6ubuntu2.5 deb libkrb5-3 1.20.1-6ubuntu2.6 deb
libkrb5support0 1.20.1-6ubuntu2.5 deb libkrb5support0 1.20.1-6ubuntu2.6 deb
libksba8 1.6.6-1build1 deb libksba8 1.6.6-1build1 deb
libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb
libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb
liblz4-1 1.9.4-1build1.1 deb liblz4-1 1.9.4-1build1.1 deb
liblzma5 5.6.1+really5.4.5-1build0.1 deb liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb
libmd0 1.1.0-2build1.1 deb libmd0 1.1.0-2build1.1 deb
libmount1 2.39.3-9ubuntu6.2 deb libmount1 2.39.3-9ubuntu6.4 deb
libncursesw6 6.4+20240113-1ubuntu2 deb libncursesw6 6.4+20240113-1ubuntu2 deb
libnettle8t64 3.9.1-2.2build1.1 deb libnettle8t64 3.9.1-2.2build1.1 deb
libnghttp2-14 1.59.0-1ubuntu0.2 deb libnghttp2-14 1.59.0-1ubuntu0.2 deb
libnpth0t64 1.6-3.1build1 deb libnpth0t64 1.6-3.1build1 deb
libonig5 6.9.9-1build1 deb libonig5 6.9.9-1build1 deb
libp11-kit0 0.25.3-4ubuntu2.1 deb libp11-kit0 0.25.3-4ubuntu2.1 deb
libpam-modules 1.5.3-5ubuntu5.1 deb libpam-modules 1.5.3-5ubuntu5.5 deb
libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-modules-bin 1.5.3-5ubuntu5.5 deb
libpam-runtime 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.5 deb
libpam0g 1.5.3-5ubuntu5.1 deb libpam0g 1.5.3-5ubuntu5.5 deb
libpcre2-8-0 10.42-4ubuntu2.1 deb libpcre2-8-0 10.42-4ubuntu2.1 deb
libperl5.38t64 5.38.2-3.2build2.1 deb libperl5.38t64 5.38.2-3.2ubuntu0.2 deb
libproc2-0 2:4.0.4-4ubuntu3.2 deb libproc2-0 2:4.0.4-4ubuntu3.2 deb
libpsl5t64 0.21.2-1.1build1 deb libpsl5t64 0.21.2-1.1build1 deb
libreadline8t64 8.2-4build1 deb libreadline8t64 8.2-4build1 deb
@ -327,18 +321,18 @@ libselinux1 3.5-2ubuntu2.1 deb
libsemanage-common 3.5-1build5 deb libsemanage-common 3.5-1build5 deb
libsemanage2 3.5-1build5 deb libsemanage2 3.5-1build5 deb
libsepol2 3.5-2build1 deb libsepol2 3.5-2build1 deb
libsmartcols1 2.39.3-9ubuntu6.2 deb libsmartcols1 2.39.3-9ubuntu6.4 deb
libsqlite3-0 3.45.1-1ubuntu2.1 deb libsqlite3-0 3.45.1-1ubuntu2.5 deb
libss2 1.47.0-2.4~exp1ubuntu4.1 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb
libssh-4 0.10.6-2build2 deb libssh-4 0.10.6-2ubuntu0.2 deb
libssl3t64 3.0.13-0ubuntu3.5 deb libssl3t64 3.0.13-0ubuntu3.6 deb
libstdc++6 14.2.0-4ubuntu2~24.04 deb libstdc++6 14.2.0-4ubuntu2~24.04 deb
libsystemd0 255.4-1ubuntu8.6 deb libsystemd0 255.4-1ubuntu8.12 deb
libtasn1-6 4.19.0-3ubuntu0.24.04.1 deb libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb
libtinfo6 6.4+20240113-1ubuntu2 deb libtinfo6 6.4+20240113-1ubuntu2 deb
libudev1 255.4-1ubuntu8.6 deb libudev1 255.4-1ubuntu8.12 deb
libunistring5 1.1-2build1.1 deb libunistring5 1.1-2build1.1 deb
libuuid1 2.39.3-9ubuntu6.2 deb libuuid1 2.39.3-9ubuntu6.4 deb
libx11-6 2:1.8.7-1build1 deb libx11-6 2:1.8.7-1build1 deb
libx11-data 2:1.8.7-1build1 deb libx11-data 2:1.8.7-1build1 deb
libxau6 1:1.0.9-1build6 deb libxau6 1:1.0.9-1build6 deb
@ -349,7 +343,7 @@ libxmuu1 2:1.1.3-3build2 deb
libxxhash0 0.8.2-2build1 deb libxxhash0 0.8.2-2build1 deb
libzstd1 1.5.5+dfsg2-2build1.1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb
limiter 2.1.0 npm limiter 2.1.0 npm
locales 2.39-0ubuntu8.4 deb locales 2.39-0ubuntu8.6 deb
log 1.0.0 npm log 1.0.0 npm
login 1:4.13+dfsg1-4ubuntu3.2 deb login 1:4.13+dfsg1-4ubuntu3.2 deb
logsave 1.47.0-2.4~exp1ubuntu4.1 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb
@ -368,24 +362,22 @@ media-preview 1.0.0 npm
media-typer 1.1.0 npm media-typer 1.1.0 npm
merge-conflict 1.0.0 npm merge-conflict 1.0.0 npm
merge-descriptors 2.0.0 npm merge-descriptors 2.0.0 npm
methods 1.1.2 npm mermaid-chat-features 1.0.0 npm
micromatch 4.0.8 npm micromatch 4.0.8 npm
microsoft-authentication 0.0.1 npm microsoft-authentication 0.0.1 npm
mime-db 1.52.0 npm mime-db 1.54.0 npm
mime-db 1.53.0 npm mime-types 3.0.1 npm
mime-types 2.1.35 npm
mime-types 3.0.0 npm
mimic-response 3.1.0 npm mimic-response 3.1.0 npm
minimatch 3.1.2 npm minimatch 3.1.2 npm
minimist 1.2.6 npm minimist 1.2.8 npm
minipass 3.3.6 npm (+1 duplicate) minipass 3.3.6 npm (+1 duplicate)
minipass 5.0.0 npm minipass 5.0.0 npm
minizlib 2.1.2 npm minizlib 2.1.2 npm
mkdirp 1.0.4 npm (+1 duplicate) mkdirp 1.0.4 npm (+1 duplicate)
mkdirp-classic 0.5.3 npm mkdirp-classic 0.5.3 npm
mount 2.39.3-9ubuntu6.2 deb mount 2.39.3-9ubuntu6.4 deb
ms 2.0.0 npm ms 2.0.0 npm
ms 2.1.2 npm (+1 duplicate) ms 2.1.2 npm
ms 2.1.3 npm ms 2.1.3 npm
nano 7.2-2ubuntu0.1 deb nano 7.2-2ubuntu0.1 deb
napi-build-utils 1.0.2 npm napi-build-utils 1.0.2 npm
@ -394,16 +386,16 @@ ncurses-base 6.4+20240113-1ubuntu2 deb
ncurses-bin 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb
negotiator 0.6.4 npm negotiator 0.6.4 npm
negotiator 1.0.0 npm negotiator 1.0.0 npm
net-tools 2.10-0.1ubuntu4 deb net-tools 2.10-0.1ubuntu4.4 deb
netbase 6.4 deb netbase 6.4 deb
netcat-openbsd 1.226-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb
netmask 2.0.2 npm netmask 2.0.2 npm
node 20.18.2 binary node 22.21.1 binary
node-abi 3.8.0 npm node-abi 3.8.0 npm
node-addon-api 7.1.0 npm node-addon-api 7.1.0 npm
node-addon-api 7.1.1 npm node-addon-api 7.1.1 npm
node-fetch 2.7.0 npm node-fetch 2.7.0 npm
node-pty 1.1.0-beta31 npm node-pty 1.1.0-beta43 npm
nopt 5.0.0 npm nopt 5.0.0 npm
npm 1.0.1 npm npm 1.0.1 npm
npmlog 5.0.1 npm npmlog 5.0.1 npm
@ -412,25 +404,25 @@ object-assign 4.1.1 npm
object-inspect 1.13.4 npm object-inspect 1.13.4 npm
objective-c 1.0.0 npm objective-c 1.0.0 npm
on-finished 2.4.1 npm on-finished 2.4.1 npm
on-headers 1.0.2 npm on-headers 1.1.0 npm
once 1.4.0 npm (+1 duplicate) once 1.4.0 npm (+1 duplicate)
openssh-client 1:9.6p1-3ubuntu13.8 deb openssh-client 1:9.6p1-3ubuntu13.14 deb
openssl 3.0.13-0ubuntu3.5 deb openssl 3.0.13-0ubuntu3.6 deb
opentype.js 0.8.0 npm opentype.js 0.8.0 npm
os-tmpdir 1.0.2 npm os-tmpdir 1.0.2 npm
pac-proxy-agent 7.0.2 npm pac-proxy-agent 7.2.0 npm
pac-resolver 7.0.1 npm pac-resolver 7.0.1 npm
parseurl 1.3.3 npm parseurl 1.3.3 npm
passwd 1:4.13+dfsg1-4ubuntu3.2 deb passwd 1:4.13+dfsg1-4ubuntu3.2 deb
patch 2.7.6-7build3 deb patch 2.7.6-7build3 deb
path-is-absolute 1.0.1 npm path-is-absolute 1.0.1 npm
path-to-regexp 8.2.0 npm path-to-regexp 8.3.0 npm
pem 1.14.8 npm pem 1.14.8 npm
pend 1.2.0 npm pend 1.2.0 npm
perl 1.0.0 npm perl 1.0.0 npm
perl 5.38.2-3.2build2.1 deb perl 5.38.2-3.2ubuntu0.2 deb
perl-base 5.38.2-3.2build2.1 deb perl-base 5.38.2-3.2ubuntu0.2 deb
perl-modules-5.38 5.38.2-3.2build2.1 deb perl-modules-5.38 5.38.2-3.2ubuntu0.2 deb
php 1.0.0 npm php 1.0.0 npm
php-language-features 1.0.0 npm php-language-features 1.0.0 npm
picomatch 2.3.1 npm picomatch 2.3.1 npm
@ -438,31 +430,29 @@ pinentry-curses 1.2.1-3ubuntu5 deb
powershell 1.0.0 npm powershell 1.0.0 npm
prebuild-install 7.1.2 npm prebuild-install 7.1.2 npm
procps 2:4.0.4-4ubuntu3.2 deb procps 2:4.0.4-4ubuntu3.2 deb
promise-stream-reader 1.0.1 npm prompt 1.0.0 npm
proxy-addr 2.0.7 npm proxy-addr 2.0.7 npm
proxy-agent 6.4.0 npm proxy-agent 6.5.0 npm
proxy-from-env 1.1.0 npm (+1 duplicate) proxy-from-env 1.1.0 npm (+1 duplicate)
publicsuffix 20231001.0357-0.1 deb publicsuffix 20231001.0357-0.1 deb
pug 1.0.0 npm pug 1.0.0 npm
pump 3.0.0 npm pump 3.0.0 npm
python 1.0.0 npm python 1.0.0 npm
qs 6.13.0 npm
qs 6.14.0 npm qs 6.14.0 npm
r 1.0.0 npm r 1.0.0 npm
range-parser 1.2.1 npm range-parser 1.2.1 npm
raw-body 3.0.0 npm raw-body 3.0.1 npm
razor 1.0.0 npm razor 1.0.0 npm
rc 1.2.8 npm rc 1.2.8 npm
readable-stream 3.6.0 npm readable-stream 3.6.0 npm
readable-stream 3.6.2 npm readable-stream 3.6.2 npm
readline-common 8.2-4build1 deb readline-common 8.2-4build1 deb
references-view 1.0.0 npm references-view 1.0.0 npm
regenerator-runtime 0.14.1 npm
requires-port 1.0.0 npm requires-port 1.0.0 npm
restructuredtext 1.0.0 npm restructuredtext 1.0.0 npm
rimraf 3.0.2 npm rimraf 3.0.2 npm
rotating-file-stream 3.2.5 npm rotating-file-stream 3.2.5 npm
router 2.1.0 npm router 2.2.0 npm
ruby 1.0.0 npm ruby 1.0.0 npm
rust 1.0.0 npm rust 1.0.0 npm
safe-buffer 5.2.1 npm (+1 duplicate) safe-buffer 5.2.1 npm (+1 duplicate)
@ -474,9 +464,9 @@ sed 4.9-2build1 deb
semver 6.3.1 npm semver 6.3.1 npm
semver 7.5.4 npm semver 7.5.4 npm
semver 7.7.1 npm semver 7.7.1 npm
send 1.1.0 npm send 1.2.0 npm
sensible-utils 0.0.22 deb sensible-utils 0.0.22 deb
serve-static 2.1.0 npm serve-static 2.2.0 npm
set-blocking 2.0.0 npm set-blocking 2.0.0 npm
setprototypeof 1.2.0 npm setprototypeof 1.2.0 npm
shaderlab 1.0.0 npm shaderlab 1.0.0 npm
@ -490,8 +480,10 @@ simple-browser 1.0.0 npm
simple-concat 1.0.1 npm simple-concat 1.0.1 npm
simple-get 4.0.1 npm simple-get 4.0.1 npm
smart-buffer 4.2.0 npm (+1 duplicate) smart-buffer 4.2.0 npm (+1 duplicate)
socks 2.8.3 npm (+1 duplicate) socks 2.8.3 npm
socks-proxy-agent 8.0.4 npm (+1 duplicate) socks 2.8.4 npm
socks-proxy-agent 8.0.4 npm
socks-proxy-agent 8.0.5 npm
source-map 0.6.1 npm source-map 0.6.1 npm
sprintf-js 1.1.3 npm (+1 duplicate) sprintf-js 1.1.3 npm (+1 duplicate)
sql 1.0.0 npm sql 1.0.0 npm
@ -500,15 +492,15 @@ string-width 4.2.3 npm
string_decoder 1.3.0 npm (+1 duplicate) string_decoder 1.3.0 npm (+1 duplicate)
strip-ansi 6.0.1 npm strip-ansi 6.0.1 npm
strip-json-comments 2.0.1 npm strip-json-comments 2.0.1 npm
sudo 1.9.15p5-3ubuntu5 deb sudo 1.9.15p5-3ubuntu5.24.04.1 deb
swift 1.0.0 npm swift 1.0.0 npm
systemd-standalone-sysusers 255.4-1ubuntu8.6 deb systemd-standalone-sysusers 255.4-1ubuntu8.12 deb
sysvinit-utils 3.08-6ubuntu3 deb sysvinit-utils 3.08-6ubuntu3 deb
tar 1.35+dfsg-3build1 deb tar 1.35+dfsg-3build1 deb
tar 6.2.1 npm tar 6.2.1 npm
tar-fs 2.1.1 npm tar-fs 2.1.4 npm
tar-stream 2.2.0 npm tar-stream 2.2.0 npm
tas-client-umd 0.2.0 npm tas-client 0.3.1 npm
terminal-suggest 1.0.1 npm terminal-suggest 1.0.1 npm
theme-abyss 1.0.0 npm theme-abyss 1.0.0 npm
theme-defaults 1.0.0 npm theme-defaults 1.0.0 npm
@ -528,19 +520,19 @@ tslib 2.7.0 npm
tslib 2.8.1 npm tslib 2.8.1 npm
tunnel-agent 0.6.0 npm tunnel-agent 0.6.0 npm
tunnel-forwarding 1.0.0 npm tunnel-forwarding 1.0.0 npm
type-is 2.0.0 npm type-is 2.0.1 npm
typescript 1.0.0 npm typescript 1.0.0 npm
typescript 5.8.2 npm typescript 5.8.3 npm
typescript 5.9.3 npm
typescript-language-features 1.0.0 npm typescript-language-features 1.0.0 npm
tzdata 2024b-0ubuntu0.24.04.1 deb tzdata 2025b-0ubuntu0.24.04.1 deb
ubuntu-keyring 2023.11.28.1 deb ubuntu-keyring 2023.11.28.1 deb
undici 7.3.0 npm undici 7.9.0 npm
universalify 2.0.1 npm (+1 duplicate) universalify 2.0.1 npm
unminimize 0.2.1 deb unminimize 0.2.1 deb
unpipe 1.0.0 npm unpipe 1.0.0 npm
util-deprecate 1.0.2 npm (+1 duplicate) util-deprecate 1.0.2 npm (+1 duplicate)
util-linux 2.39.3-9ubuntu6.2 deb util-linux 2.39.3-9ubuntu6.4 deb
utils-merge 1.0.1 npm
uuid 9.0.1 npm uuid 9.0.1 npm
vary 1.1.2 npm vary 1.1.2 npm
vb 1.0.0 npm vb 1.0.0 npm
@ -551,7 +543,7 @@ vscode-js-profile-table 1.0.10 npm
vscode-json-languageserver 1.3.4 npm vscode-json-languageserver 1.3.4 npm
vscode-oniguruma 1.7.0 npm vscode-oniguruma 1.7.0 npm
vscode-regexpp 3.1.0 npm vscode-regexpp 3.1.0 npm
vscode-textmate 9.2.0 npm vscode-textmate 9.3.0 npm
vscode-theme-seti 1.0.0 npm vscode-theme-seti 1.0.0 npm
webidl-conversions 3.0.1 npm webidl-conversions 3.0.1 npm
whatwg-url 5.0.0 npm whatwg-url 5.0.0 npm

View File

@ -36,6 +36,14 @@ opt_param_env_vars:
- {env_var: "SUDO_PASSWORD_HASH", env_value: "", desc: "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`."} - {env_var: "SUDO_PASSWORD_HASH", env_value: "", desc: "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`."}
- {env_var: "PROXY_DOMAIN", env_value: "code-server.my.domain", desc: "If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain)"} - {env_var: "PROXY_DOMAIN", env_value: "code-server.my.domain", desc: "If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain)"}
- {env_var: "DEFAULT_WORKSPACE", env_value: "/config/workspace", desc: "If this optional variable is set, code-server will open this directory by default"} - {env_var: "DEFAULT_WORKSPACE", env_value: "/config/workspace", desc: "If this optional variable is set, code-server will open this directory by default"}
- {env_var: "PWA_APPNAME", env_value: "code-server", desc: "If this optional variable is set, the PWA app will the specified name."}
readonly_supported: true
readonly_message: |
* `/tmp` must be mounted to tmpfs
* `sudo` will not be available
nonroot_supported: true
nonroot_message: |
* `sudo` will not be available
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
@ -73,12 +81,14 @@ init_diagram: |
init-crontab-config -> init-config-end init-crontab-config -> init-config-end
init-config -> init-crontab-config init-config -> init-crontab-config
init-mods-end -> init-custom-files init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile base -> init-envfile
base -> init-migrations base -> init-migrations
init-config-end -> init-mods init-config-end -> init-mods
init-mods-package-install -> init-mods-end init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install init-mods -> init-mods-package-install
init-adduser -> init-os-end init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end init-envfile -> init-os-end
init-custom-files -> init-services init-custom-files -> init-services
init-services -> svc-code-server init-services -> svc-code-server
@ -92,6 +102,8 @@ init_diagram: |
"code-server:latest" <- Base Images "code-server:latest" <- Base Images
# changelog # changelog
changelogs: changelogs:
- {date: "10.08.25:", desc: "Let server listen on both ipv4 and ipv6."}
- {date: "03.06.25:", desc: "Allow setting PWA name using env var `PWA_APPNAME`."}
- {date: "13.10.24:", desc: "Only chown config folder when change to ownership or new install is detected."} - {date: "13.10.24:", desc: "Only chown config folder when change to ownership or new install is detected."}
- {date: "09.10.24:", desc: "Manage permissions in /config/.ssh according to file type"} - {date: "09.10.24:", desc: "Manage permissions in /config/.ssh according to file type"}
- {date: "19.08.24:", desc: "Rebase to Ubuntu Noble."} - {date: "19.08.24:", desc: "Rebase to Ubuntu Noble."}

View File

@ -3,7 +3,8 @@
mkdir -p /config/{extensions,data,workspace,.ssh} mkdir -p /config/{extensions,data,workspace,.ssh}
if [[ -n "${SUDO_PASSWORD}" ]] || [[ -n "${SUDO_PASSWORD_HASH}" ]]; then if [[ -z ${LSIO_NON_ROOT_USER} ]] && [[ -z ${LSIO_READ_ONLY_FS} ]]; then
if [[ -n "${SUDO_PASSWORD}" ]] || [[ -n "${SUDO_PASSWORD_HASH}" ]]; then
echo "setting up sudo access" echo "setting up sudo access"
if ! grep -q 'abc' /etc/sudoers; then if ! grep -q 'abc' /etc/sudoers; then
echo "adding abc to sudoers" echo "adding abc to sudoers"
@ -16,6 +17,7 @@ if [[ -n "${SUDO_PASSWORD}" ]] || [[ -n "${SUDO_PASSWORD_HASH}" ]]; then
echo "setting sudo password using SUDO_PASSWORD env var" echo "setting sudo password using SUDO_PASSWORD env var"
echo -e "${SUDO_PASSWORD}\n${SUDO_PASSWORD}" | passwd abc echo -e "${SUDO_PASSWORD}\n${SUDO_PASSWORD}" | passwd abc
fi fi
fi
fi fi
if [[ ! -f /config/.bashrc ]]; then if [[ ! -f /config/.bashrc ]]; then
@ -26,17 +28,19 @@ if [[ ! -f /config/.profile ]]; then
cp /root/.profile /config/.profile cp /root/.profile /config/.profile
fi fi
# fix permissions (ignore contents of workspace) if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
PUID=${PUID:-911} # fix permissions (ignore contents of workspace)
if [[ ! "$(stat -c %u /config/.profile)" == "${PUID}" ]]; then PUID=${PUID:-911}
if [[ ! "$(stat -c %u /config/.profile)" == "${PUID}" ]]; then
echo "Change in ownership or new install detected, please be patient while we chown existing files" echo "Change in ownership or new install detected, please be patient while we chown existing files"
echo "This could take some time" echo "This could take some time"
find /config -path "/config/workspace" -prune -o -exec lsiown abc:abc {} + find /config -path "/config/workspace" -prune -o -exec lsiown abc:abc {} +
lsiown abc:abc /config/workspace lsiown abc:abc /config/workspace
fi fi
chmod 700 /config/.ssh chmod 700 /config/.ssh
if [[ -n "$(ls -A /config/.ssh)" ]]; then if [[ -n "$(ls -A /config/.ssh)" ]]; then
find /config/.ssh/ -type d -exec chmod 700 '{}' \; find /config/.ssh/ -type d -exec chmod 700 '{}' \;
find /config/.ssh/ -type f -exec chmod 600 '{}' \; find /config/.ssh/ -type f -exec chmod 600 '{}' \;
find /config/.ssh/ -type f -iname '*.pub' -exec chmod 644 '{}' \; find /config/.ssh/ -type f -iname '*.pub' -exec chmod 644 '{}' \;
fi
fi fi

View File

@ -14,7 +14,12 @@ else
PROXY_DOMAIN_ARG="--proxy-domain=${PROXY_DOMAIN}" PROXY_DOMAIN_ARG="--proxy-domain=${PROXY_DOMAIN}"
fi fi
exec \ if [[ -z ${PWA_APPNAME} ]]; then
PWA_APPNAME="code-server"
fi
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8443" \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8443" \
s6-setuidgid abc \ s6-setuidgid abc \
/app/code-server/bin/code-server \ /app/code-server/bin/code-server \
@ -23,5 +28,19 @@ exec \
--extensions-dir /config/extensions \ --extensions-dir /config/extensions \
--disable-telemetry \ --disable-telemetry \
--auth "${AUTH}" \ --auth "${AUTH}" \
--app-name "${PWA_APPNAME}" \
"${PROXY_DOMAIN_ARG}" \ "${PROXY_DOMAIN_ARG}" \
"${DEFAULT_WORKSPACE:-/config/workspace}" "${DEFAULT_WORKSPACE:-/config/workspace}"
else
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8443" \
/app/code-server/bin/code-server \
--bind-addr "[::]:8443" \
--user-data-dir /config/data \
--extensions-dir /config/extensions \
--disable-telemetry \
--auth "${AUTH}" \
--app-name "${PWA_APPNAME}" \
"${PROXY_DOMAIN_ARG}" \
"${DEFAULT_WORKSPACE:-/config/workspace}"
fi