Merge remote-tracking branch 'origin/main' into replace-placeholers-in-proeprties

This commit is contained in:
sturman 2024-03-20 12:20:41 +02:00
commit 41b367182a
9 changed files with 526 additions and 502 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

336
Jenkinsfile vendored
View file

@ -245,9 +245,11 @@ 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.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \ apk add --no-cache python3 && \
pip install s3cmd && \ python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \
pip install --no-cache-dir s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
} }
} }
@ -262,150 +264,176 @@ pipeline {
} }
} }
steps { steps {
withCredentials([ sh '''#! /bin/bash
[ set -e
$class: 'UsernamePasswordMultiBinding', TEMPDIR=$(mktemp -d)
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', docker pull ghcr.io/linuxserver/jenkins-builder:latest
usernameVariable: 'DOCKERUSER', # Cloned repo paths for templating:
passwordVariable: 'DOCKERPASS' # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch main of ${LS_USER}/${LS_REPO} for running the jenkins builder on
] # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch main of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
]) { # ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
sh '''#! /bin/bash # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
set -e # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
TEMPDIR=$(mktemp -d) git clone --branch main --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=main -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest echo "Starting Stage 1 - Jenkinsfile update"
# Stage 1 - Jenkinsfile update if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then mkdir -p ${TEMPDIR}/repo
mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} git checkout -f main
git checkout -f main cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ git add Jenkinsfile
git add Jenkinsfile git commit -m 'Bot Updating Templated Files'
git commit -m 'Bot Updating Templated Files' git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
echo "Updating Jenkinsfile" rm -Rf ${TEMPDIR}
rm -Rf ${TEMPDIR} exit 0
exit 0 else
else echo "Jenkinsfile is up to date."
echo "Jenkinsfile is up to date." fi
echo "Starting Stage 2 - Delete old templates"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
fi fi
# Stage 2 - Delete old templates done
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
for i in ${OLD_TEMPLATES}; do mkdir -p ${TEMPDIR}/repo
if [[ -f "${i}" ]]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" cd ${TEMPDIR}/repo/${LS_REPO}
fi git checkout -f main
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then git commit -m 'Bot Updating Templated Files'
mkdir -p ${TEMPDIR}/repo git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
cd ${TEMPDIR}/repo/${LS_REPO} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git checkout -f main echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
for i in ${TEMPLATES_TO_DELETE}; do rm -Rf ${TEMPDIR}
git rm "${i}" exit 0
done else
git commit -m 'Bot Updating Templated Files' echo "No templates to delete"
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main echo "Starting Stage 3 - Update templates"
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
echo "Deleting old and deprecated templates" cd ${TEMPDIR}/docker-${CONTAINER_NAME}
rm -Rf ${TEMPDIR} NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
exit 0 if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
else mkdir -p ${TEMPDIR}/repo
echo "No templates to delete" git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
fi cd ${TEMPDIR}/repo/${LS_REPO}
# Stage 3 - Update templates git checkout -f main
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
mkdir -p ${TEMPDIR}/repo cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}/
git checkout -f main if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
cd ${TEMPDIR}/docker-${CONTAINER_NAME} echo ".jenkins-external" >> .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows git add .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE fi
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : git add readme-vars.yml ${TEMPLATED_FILES}
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : git commit -m 'Bot Updating Templated Files'
cd ${TEMPDIR}/repo/${LS_REPO}/ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
echo ".jenkins-external" >> .gitignore echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git add .gitignore echo "Updating templates and exiting build, new one will trigger based on commit"
fi rm -Rf ${TEMPDIR}
git add readme-vars.yml ${TEMPLATED_FILES} exit 0
git commit -m 'Bot Updating Templated Files' else
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main echo "No templates to update"
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
else
echo "Docs update not needed, skipping"
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi fi
mkdir -p ${TEMPDIR}/docs git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then (MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ sleep $((RANDOM % MAXWAIT)) && \
cd ${TEMPDIR}/docs/docker-documentation git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
git add docs/images/docker-${CONTAINER_NAME}.md else
git commit -m 'Bot Updating Documentation' echo "No updates to Unraid template needed, skipping"
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi fi
mkdir -p ${TEMPDIR}/unraid if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}
fi
# Stage 4 - Sync Readme to Docker Hub
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi
DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \ curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \ -H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-X PATCH \ -X POST \
-d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ -d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : https://hub.docker.com/v2/repositories/ || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi fi
rm -Rf ${TEMPDIR}''' DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
script{ curl -s \
env.FILES_UPDATED = sh( -H "Authorization: JWT ${DH_TOKEN}" \
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', -H "Content-Type: application/json" \
returnStdout: true).trim() -X PATCH \
} -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
} }
} }
} }
@ -455,14 +483,16 @@ pipeline {
} }
steps{ steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \ sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\ -d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'", "name":"'${LS_REPO}'",
"mirror":true,\ "mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\ "issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\ "merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\ "repository_access_level":"enabled",\
"visibility":"public"}' ''' "visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
} }
} }
/* ############### /* ###############
@ -703,12 +733,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@ -719,7 +743,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $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
@ -750,12 +774,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@ -766,7 +784,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $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

View file

@ -64,7 +64,7 @@ After setup, the web UI is available at https://ip:8443. The application can be
### Setting Up Your External Database ### Setting Up Your External Database
Formally only mongodb 3.6 through 4.4 are supported, however, it has been reported that newer versions will work. If you choose to use a newer version be aware that you will not be operating a supported configuration. Starting with version 8.1 of Unifi Network Application, mongodb 3.6 through 7.0 are supported.
**Make sure you pin your database image version and do not use `latest`, as mongodb does not support automatic upgrades between major versions.** **Make sure you pin your database image version and do not use `latest`, as mongodb does not support automatic upgrades between major versions.**
@ -155,7 +155,7 @@ services:
- MONGO_TLS= #optional - MONGO_TLS= #optional
- MONGO_AUTHSOURCE= #optional - MONGO_AUTHSOURCE= #optional
volumes: volumes:
- /path/to/data:/config - /path/to/unifi-network-application/data:/config
ports: ports:
- 8443:8443 - 8443:8443
- 3478:3478/udp - 3478:3478/udp
@ -195,7 +195,7 @@ docker run -d \
-p 8880:8880 `#optional` \ -p 8880:8880 `#optional` \
-p 6789:6789 `#optional` \ -p 6789:6789 `#optional` \
-p 5514:5514/udp `#optional` \ -p 5514:5514/udp `#optional` \
-v /path/to/data:/config \ -v /path/to/unifi-network-application/data:/config \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/unifi-network-application:latest lscr.io/linuxserver/unifi-network-application:latest
``` ```
@ -227,7 +227,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e MEM_STARTUP=1024` | Optionally change the Java initial/minimum memory (in Megabytes). Set to `default` to reset to default | | `-e MEM_STARTUP=1024` | Optionally change the Java initial/minimum memory (in Megabytes). Set to `default` to reset to default |
| `-e MONGO_TLS=` | Mongodb enable [TLS](https://www.mongodb.com/docs/manual/reference/connection-string/#mongodb-urioption-urioption.tls). Only evaluated on first run. | | `-e MONGO_TLS=` | Mongodb enable [TLS](https://www.mongodb.com/docs/manual/reference/connection-string/#mongodb-urioption-urioption.tls). Only evaluated on first run. |
| `-e MONGO_AUTHSOURCE=` | Mongodb [authSource](https://www.mongodb.com/docs/manual/reference/connection-string/#mongodb-urioption-urioption.authSource). For Atlas set to `admin`.Defaults to `MONGO_DBNAME`.Only evaluated on first run. | | `-e MONGO_AUTHSOURCE=` | Mongodb [authSource](https://www.mongodb.com/docs/manual/reference/connection-string/#mongodb-urioption-urioption.authSource). For Atlas set to `admin`.Defaults to `MONGO_DBNAME`.Only evaluated on first run. |
| `-v /config` | All Unifi data stored here | | `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)

View file

@ -1,46 +1,47 @@
NAME VERSION TYPE NAME VERSION TYPE
ace java-archive ace java-archive
activation 1.1.1 java-archive
adduser 3.118ubuntu5 deb adduser 3.118ubuntu5 deb
analytics-api 1.3.1 java-archive analytics-api 2.0.0 java-archive
analytics-client 1.3.1 java-archive analytics-client 2.0.0 java-archive
analytics-privacy 1.3.1 java-archive analytics-privacy 2.0.0 java-archive
annotations 3.0.1 java-archive annotations 3.0.1 java-archive
antlr4-runtime 4.5.3 java-archive antlr4-runtime 4.5.3 java-archive
api-common 1.7.0 java-archive api-common 1.7.0 java-archive
apigateway-generic-java-sdk 1.3 java-archive apigateway-generic-java-sdk 1.3 java-archive
apt 2.4.11 deb apt 2.4.11 deb
apt-utils 2.4.11 deb apt-utils 2.4.11 deb
asn-one 0.6.0 java-archive
aws-iot-device-sdk-java 1.2.0 java-archive aws-iot-device-sdk-java 1.2.0 java-archive
aws-java-sdk-core 1.11.409 java-archive aws-java-sdk-core 1.11.409 java-archive
aws-java-sdk-s3 1.11.409 java-archive aws-java-sdk-s3 1.11.409 java-archive
base-files 12ubuntu4.3 deb base-files 12ubuntu4.6 deb
base-passwd 3.5.52build1 deb base-passwd 3.5.52build1 deb
bash 5.1-6ubuntu1 deb bash 5.1-6ubuntu1.1 deb
bash 5.1.16 binary bash 5.1.16 binary
bcpkix-jdk15on 1.60 java-archive bcpkix-jdk18on 1.75 java-archive
bcprov-jdk15on 1.60 java-archive bcprov-jdk18on 1.75 java-archive
bcutil-jdk18on 1.75 java-archive
bsdutils 1:2.37.2-4ubuntu3 deb bsdutils 1:2.37.2-4ubuntu3 deb
bson 4.6.1 java-archive bson 4.11.1 java-archive
bson-record-codec 4.6.1 java-archive bson-record-codec 4.11.1 java-archive
ca-certificates 20230311ubuntu0.22.04.1 deb ca-certificates 20230311ubuntu0.22.04.1 deb
ca-certificates-java java-archive ca-certificates-java java-archive
ca-certificates-java 20190909ubuntu1.2 deb ca-certificates-java 20190909ubuntu1.2 deb
checker-qual 3.12.0 java-archive checker-qual 3.12.0 java-archive
classmate 1.5.1 java-archive classmate 1.6.0 java-archive
coloring 1.0 java-archive coloring 1.0 java-archive
commons-beanutils 1.9.2 java-archive commons-beanutils 1.9.4 java-archive
commons-cli 1.4 java-archive commons-cli 1.4 java-archive
commons-codec 1.15 java-archive commons-codec 1.16.0 java-archive
commons-daemon 1.0.15 java-archive commons-daemon 1.0.15 java-archive
commons-io 2.11.0 java-archive commons-io 2.11.0 java-archive
commons-lang3 3.12.0 java-archive commons-lang3 3.13.0 java-archive
commons-logging 1.2 java-archive commons-logging 1.2 java-archive
commons-net 3.8.0 java-archive commons-net 3.10.0 java-archive
commons-text 1.10.0 java-archive commons-text 1.11.0 java-archive
commons-validator 1.6 java-archive commons-validator 1.7 java-archive
compiler 0.9.6 java-archive compiler 0.9.6 java-archive
coreutils 8.32-4.1ubuntu1 deb coreutils 8.32-4.1ubuntu1.1 deb
cron 3.0pl1-137ubuntu3 deb cron 3.0pl1-137ubuntu3 deb
cron4j 2.2.5 java-archive cron4j 2.2.5 java-archive
curl 7.81.0-1ubuntu1.15 deb curl 7.81.0-1ubuntu1.15 deb
@ -50,17 +51,17 @@ debianutils 5.5-1ubuntu2
diffutils 1:3.8-0ubuntu2 deb diffutils 1:3.8-0ubuntu2 deb
dirmngr 2.2.27-3ubuntu2.1 deb dirmngr 2.2.27-3ubuntu2.1 deb
dom4j 1.6.1 java-archive dom4j 1.6.1 java-archive
dpkg 1.21.1ubuntu2.2 deb dpkg 1.21.1ubuntu2.3 deb
e2fsprogs 1.46.5-2ubuntu1.1 deb e2fsprogs 1.46.5-2ubuntu1.1 deb
ecj 3.18.0 java-archive ecj 3.33.0 java-archive
eddsa 0.2.0 java-archive eddsa 0.3.0 java-archive
error_prone_annotations 2.7.1 java-archive error_prone_annotations 2.7.1 java-archive
failureaccess 1.0.1 java-archive failureaccess 1.0.1 java-archive
findutils 4.8.0-1ubuntu3 deb findutils 4.8.0-1ubuntu3 deb
fontconfig-config 2.13.1-4.2ubuntu5 deb fontconfig-config 2.13.1-4.2ubuntu5 deb
fonts-dejavu-core 2.37-2build1 deb fonts-dejavu-core 2.37-2build1 deb
gax 1.31.0 java-archive gax 1.31.0 java-archive
gcc-12-base 12.1.0-2ubuntu1~22.04 deb gcc-12-base 12.3.0-1ubuntu1~22.04 deb
gnupg 2.2.27-3ubuntu2.1 deb gnupg 2.2.27-3ubuntu2.1 deb
gnupg-l10n 2.2.27-3ubuntu2.1 deb gnupg-l10n 2.2.27-3ubuntu2.1 deb
gnupg-utils 2.2.27-3ubuntu2.1 deb gnupg-utils 2.2.27-3ubuntu2.1 deb
@ -92,35 +93,39 @@ grep 3.7-1build1
gson 2.9.0 java-archive gson 2.9.0 java-archive
guava 31.0.1-jre java-archive guava 31.0.1-jre java-archive
gzip 1.10-4ubuntu4.1 deb gzip 1.10-4ubuntu4.1 deb
hibernate-validator 6.2.3.Final java-archive hibernate-validator 8.0.1.Final java-archive
hostname 3.23ubuntu2 deb hostname 3.23ubuntu2 deb
httpclient 4.5.13 java-archive httpclient 4.5.5 java-archive
httpcore 4.4.15 java-archive httpclient5 5.2.3 java-archive
httpmime 4.5.13 java-archive httpcore 4.4.16 java-archive
httpcore5 5.2.4 java-archive
httpcore5-h2 5.2.4 java-archive
init-system-helpers 1.62 deb init-system-helpers 1.62 deb
istack-commons-runtime 3.0.5 java-archive istack-commons-runtime 3.0.5 java-archive
j2objc-annotations 1.3 java-archive j2objc-annotations 1.3 java-archive
jackson-annotations 2.13.3 java-archive jackson-annotations 2.15.3 java-archive
jackson-core 2.13.3 java-archive jackson-core 2.15.3 java-archive
jackson-databind 2.13.3 java-archive jackson-databind 2.15.3 java-archive
jackson-datatype-jdk8 2.13.3 java-archive jackson-datatype-jdk8 2.15.3 java-archive
jackson-datatype-jsr310 2.13.3 java-archive jackson-datatype-jsr310 2.15.3 java-archive
jackson-module-parameter-names 2.13.3 java-archive jackson-module-parameter-names 2.15.3 java-archive
jakarta.annotation-api 1.3.5 java-archive jakarta.activation 2.0.1 java-archive
jakarta.validation-api 2.0.2 java-archive jakarta.annotation-api 2.1.1 java-archive
java-binme 1.0 java-archive jakarta.mail 2.0.1 java-archive
jakarta.validation-api 3.0.2 java-archive
java-binme 2.0.0 java-archive
java-common 0.72build2 deb java-common 0.72build2 deb
java-ipv6 0.17 java-archive java-ipv6 0.17 java-archive
java-semver 0.9.0 java-archive java-semver 0.9.0 java-archive
java-ucp 1.1 java-archive java-ucp 1.1 java-archive
java-uuid-generator 4.0.1 java-archive java-uuid-generator 4.0.1 java-archive
javax.mail 1.6.2 java-archive
jaxb-api 2.3.0 java-archive jaxb-api 2.3.0 java-archive
jaxb-core 2.3.0.1 java-archive jaxb-core 2.3.0.1 java-archive
jaxb-impl 2.3.0.1 java-archive jaxb-impl 2.3.0.1 java-archive
jaxb-runtime 2.3.0.1 java-archive jaxb-runtime 2.3.0.1 java-archive
jboss-logging 3.4.3.Final java-archive jbcrypt 0.4 java-archive
jcl-over-slf4j 1.7.36 java-archive jboss-logging 3.5.3.Final java-archive
jcl-over-slf4j 2.0.11 java-archive
jenetics 4.2.0 java-archive jenetics 4.2.0 java-archive
jgrapht-core 1.0.1 java-archive jgrapht-core 1.0.1 java-archive
jgrapht-ext 1.0.1 java-archive jgrapht-ext 1.0.1 java-archive
@ -129,14 +134,14 @@ jmdns 3.4.1
jna 5.9.0 java-archive jna 5.9.0 java-archive
joda-time 2.10.4 java-archive joda-time 2.10.4 java-archive
jq 1.6-2.1ubuntu3 deb jq 1.6-2.1ubuntu3 deb
jrt-fs 17.0.9 java-archive jrt-fs 17.0.10 java-archive
json 20190722 java-archive json 20190722 java-archive
jsr305 3.0.1 java-archive jsr305 3.0.1 java-archive
jsr305 3.0.2 java-archive jsr305 3.0.2 java-archive
jstl 1.2 java-archive jstl 1.2 java-archive
jstun 0.7.4 java-archive jstun 0.7.4 java-archive
jsvc 1.0.15-8 deb jsvc 1.0.15-8 deb
jul-to-slf4j 1.7.36 java-archive jul-to-slf4j 2.0.11 java-archive
lazysodium-java 5.1.2 java-archive lazysodium-java 5.1.2 java-archive
libacl1 2.3.1-1 deb libacl1 2.3.1-1 deb
libapt-pkg6.0 2.4.11 deb libapt-pkg6.0 2.4.11 deb
@ -153,45 +158,45 @@ libblkid1 2.37.2-4ubuntu3
libbrotli1 1.0.9-2build6 deb libbrotli1 1.0.9-2build6 deb
libbsd0 0.11.5-1 deb libbsd0 0.11.5-1 deb
libbz2-1.0 1.0.8-5build1 deb libbz2-1.0 1.0.8-5build1 deb
libc-bin 2.35-0ubuntu3.1 deb libc-bin 2.35-0ubuntu3.6 deb
libc6 2.35-0ubuntu3.1 deb libc6 2.35-0ubuntu3.6 deb
libcap-ng0 0.7.9-2.2build3 deb libcap-ng0 0.7.9-2.2build3 deb
libcap2 1:2.44-1ubuntu0.22.04.1 deb libcap2 1:2.44-1ubuntu0.22.04.1 deb
libcom-err2 1.46.5-2ubuntu1.1 deb libcom-err2 1.46.5-2ubuntu1.1 deb
libcommons-daemon-java 1.0.15-8 deb libcommons-daemon-java 1.0.15-8 deb
libcrypt1 1:4.4.27-1 deb libcrypt1 1:4.4.27-1 deb
libcups2 2.4.1op1-1ubuntu4.7 deb libcups2 2.4.1op1-1ubuntu4.8 deb
libcurl4 7.81.0-1ubuntu1.15 deb libcurl4 7.81.0-1ubuntu1.15 deb
libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
libdbus-1-3 1.12.20-2ubuntu4.1 deb libdbus-1-3 1.12.20-2ubuntu4.1 deb
libdebconfclient0 0.261ubuntu1 deb libdebconfclient0 0.261ubuntu1 deb
libexpat1 2.4.7-1ubuntu0.2 deb libexpat1 2.4.7-1ubuntu0.3 deb
libext2fs2 1.46.5-2ubuntu1.1 deb libext2fs2 1.46.5-2ubuntu1.1 deb
libffi8 3.4.2-4 deb libffi8 3.4.2-4 deb
libfontconfig1 2.13.1-4.2ubuntu5 deb libfontconfig1 2.13.1-4.2ubuntu5 deb
libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb
libgcc-s1 12.1.0-2ubuntu1~22.04 deb libgcc-s1 12.3.0-1ubuntu1~22.04 deb
libgcrypt20 1.9.4-3ubuntu3 deb libgcrypt20 1.9.4-3ubuntu3 deb
libglib2.0-0 2.72.4-0ubuntu2.2 deb libglib2.0-0 2.72.4-0ubuntu2.2 deb
libgmp10 2:6.2.1+dfsg-3ubuntu1 deb libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
libgnutls30 3.7.3-4ubuntu1.2 deb libgnutls30 3.7.3-4ubuntu1.4 deb
libgpg-error0 1.43-3 deb libgpg-error0 1.43-3 deb
libgraphite2-3 1.3.14-1build2 deb libgraphite2-3 1.3.14-1build2 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.2 deb libgssapi-krb5-2 1.19.2-2ubuntu0.3 deb
libharfbuzz0b 2.7.4-1ubuntu3.1 deb libharfbuzz0b 2.7.4-1ubuntu3.1 deb
libhogweed6 3.7.3-1build2 deb libhogweed6 3.7.3-1build2 deb
libidn2-0 2.3.2-2build1 deb libidn2-0 2.3.2-2build1 deb
libjpeg-turbo8 2.1.2-0ubuntu1 deb libjpeg-turbo8 2.1.2-0ubuntu1 deb
libjpeg8 8c-2ubuntu10 deb libjpeg8 8c-2ubuntu10 deb
libjq1 1.6-2.1ubuntu3 deb libjq1 1.6-2.1ubuntu3 deb
libk5crypto3 1.19.2-2ubuntu0.2 deb libk5crypto3 1.19.2-2ubuntu0.3 deb
libkeyutils1 1.6.1-2ubuntu3 deb libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.2 deb libkrb5-3 1.19.2-2ubuntu0.3 deb
libkrb5support0 1.19.2-2ubuntu0.2 deb libkrb5support0 1.19.2-2ubuntu0.3 deb
libksba8 1.6.0-2ubuntu0.2 deb libksba8 1.6.0-2ubuntu0.2 deb
liblcms2-2 2.12~rc1-2build2 deb liblcms2-2 2.12~rc1-2build2 deb
libldap-2.5-0 2.5.16+dfsg-0ubuntu0.22.04.2 deb libldap-2.5-0 2.5.17+dfsg-0ubuntu0.22.04.1 deb
libldap-common 2.5.16+dfsg-0ubuntu0.22.04.2 deb libldap-common 2.5.17+dfsg-0ubuntu0.22.04.1 deb
liblz4-1 1.9.3-2build2 deb liblz4-1 1.9.3-2build2 deb
liblzma5 5.2.5-2ubuntu1 deb liblzma5 5.2.5-2ubuntu1 deb
libmd0 1.0.4-1build1 deb libmd0 1.0.4-1build1 deb
@ -206,16 +211,16 @@ libnspr4 2:4.32-3build1
libnss3 2:3.68.2-0ubuntu1.2 deb libnss3 2:3.68.2-0ubuntu1.2 deb
libonig5 6.9.7.1-2build1 deb libonig5 6.9.7.1-2build1 deb
libp11-kit0 0.24.0-6build1 deb libp11-kit0 0.24.0-6build1 deb
libpam-modules 1.4.0-11ubuntu2.3 deb libpam-modules 1.4.0-11ubuntu2.4 deb
libpam-modules-bin 1.4.0-11ubuntu2.3 deb libpam-modules-bin 1.4.0-11ubuntu2.4 deb
libpam-runtime 1.4.0-11ubuntu2.3 deb libpam-runtime 1.4.0-11ubuntu2.4 deb
libpam0g 1.4.0-11ubuntu2.3 deb libpam0g 1.4.0-11ubuntu2.4 deb
libpcre2-8-0 10.39-3ubuntu0.1 deb libpcre2-8-0 10.39-3ubuntu0.1 deb
libpcre3 2:8.39-13ubuntu0.22.04.1 deb libpcre3 2:8.39-13ubuntu0.22.04.1 deb
libpcsclite1 1.9.5-3ubuntu1 deb libpcsclite1 1.9.5-3ubuntu1 deb
libpng16-16 1.6.37-3build5 deb libpng16-16 1.6.37-3build5 deb
libpopt0 1.18-3build1 deb libpopt0 1.18-3build1 deb
libprocps8 2:3.3.17-6ubuntu2 deb libprocps8 2:3.3.17-6ubuntu2.1 deb
libpsl5 0.21.0-1.2build2 deb libpsl5 0.21.0-1.2build2 deb
libreadline8 8.1.2-1 deb libreadline8 8.1.2-1 deb
librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb
@ -231,47 +236,49 @@ libsmartcols1 2.37.2-4ubuntu3
libsqlite3-0 3.37.2-2ubuntu0.3 deb libsqlite3-0 3.37.2-2ubuntu0.3 deb
libss2 1.46.5-2ubuntu1.1 deb libss2 1.46.5-2ubuntu1.1 deb
libssh-4 0.9.6-2ubuntu0.22.04.3 deb libssh-4 0.9.6-2ubuntu0.22.04.3 deb
libssl3 3.0.2-0ubuntu1.10 deb libssl3 3.0.2-0ubuntu1.15 deb
libstdc++6 12.1.0-2ubuntu1~22.04 deb libstdc++6 12.3.0-1ubuntu1~22.04 deb
libsystemd0 249.11-0ubuntu3.9 deb libsystemd0 249.11-0ubuntu3.12 deb
libtasn1-6 4.18.0-4build1 deb libtasn1-6 4.18.0-4build1 deb
libtinfo6 6.3-2ubuntu0.1 deb libtinfo6 6.3-2ubuntu0.1 deb
libtirpc-common 1.3.2-2ubuntu0.1 deb libtirpc-common 1.3.2-2ubuntu0.1 deb
libtirpc3 1.3.2-2ubuntu0.1 deb libtirpc3 1.3.2-2ubuntu0.1 deb
libudev1 249.11-0ubuntu3.9 deb libudev1 249.11-0ubuntu3.12 deb
libunistring2 1.0-1 deb libunistring2 1.0-1 deb
libuuid1 2.37.2-4ubuntu3 deb libuuid1 2.37.2-4ubuntu3 deb
libxxhash0 0.8.1-1 deb libxxhash0 0.8.1-1 deb
libzstd1 1.4.8+dfsg-3build1 deb libzstd1 1.4.8+dfsg-3build1 deb
locales 2.35-0ubuntu3.6 deb locales 2.35-0ubuntu3.6 deb
log4j-api 2.17.2 java-archive log4j-api 2.21.1 java-archive
log4j-to-slf4j 2.17.2 java-archive log4j-to-slf4j 2.21.1 java-archive
logback-access 1.2.11 java-archive logback-access 1.4.14 java-archive
logback-classic 1.2.11 java-archive logback-classic 1.4.14 java-archive
logback-core 1.2.11 java-archive logback-core 1.4.14 java-archive
login 1:4.8.1-2ubuntu2.1 deb login 1:4.8.1-2ubuntu2.2 deb
logrotate 3.19.0-1ubuntu1.1 deb logrotate 3.19.0-1ubuntu1.1 deb
logsave 1.46.5-2ubuntu1.1 deb logsave 1.46.5-2ubuntu1.1 deb
lsb-base 11.1.0ubuntu4 deb lsb-base 11.1.0ubuntu4 deb
mawk 1.3.4.20200120-3 deb mawk 1.3.4.20200120-3 deb
micrometer-commons 1.12.2 java-archive
micrometer-observation 1.12.2 java-archive
minimal-json 0.9.5 java-archive minimal-json 0.9.5 java-archive
mongodb-driver-core 4.6.1 java-archive mongodb-driver-core 4.11.1 java-archive
mongodb-driver-legacy 4.6.1 java-archive mongodb-driver-legacy 4.11.1 java-archive
mongodb-driver-sync 4.6.1 java-archive mongodb-driver-sync 4.11.1 java-archive
mount 2.37.2-4ubuntu3 deb mount 2.37.2-4ubuntu3 deb
ncurses-base 6.3-2ubuntu0.1 deb ncurses-base 6.3-2ubuntu0.1 deb
ncurses-bin 6.3-2ubuntu0.1 deb ncurses-bin 6.3-2ubuntu0.1 deb
netcat 1.218-4ubuntu1 deb netcat 1.218-4ubuntu1 deb
netcat-openbsd 1.218-4ubuntu1 deb netcat-openbsd 1.218-4ubuntu1 deb
openjdk-17-jre-headless 17.0.9+9-1~22.04 deb openjdk-17-jre-headless 17.0.10+7-1~22.04.1 deb
openssh 1.0 java-archive openssh 1.0 java-archive
openssl 3.0.2-0ubuntu1.14 deb openssl 3.0.2-0ubuntu1.15 deb
org.eclipse.paho.client.mqttv3 1.1.0 java-archive org.eclipse.paho.client.mqttv3 1.1.0 java-archive
owasp-java-html-sanitizer 20190503.1 java-archive owasp-java-html-sanitizer 20190503.1 java-archive
passwd 1:4.8.1-2ubuntu2.1 deb passwd 1:4.8.1-2ubuntu2.2 deb
perl-base 5.34.0-3ubuntu1.2 deb perl-base 5.34.0-3ubuntu1.3 deb
pinentry-curses 1.1.1-1build2 deb pinentry-curses 1.1.1-1build2 deb
procps 2:3.3.17-6ubuntu2 deb procps 2:3.3.17-6ubuntu2.1 deb
proto-google-common-protos 1.12.0 java-archive proto-google-common-protos 1.12.0 java-archive
proto-google-iam-v1 0.12.0 java-archive proto-google-iam-v1 0.12.0 java-archive
protobuf-java 3.6.0 java-archive protobuf-java 3.6.0 java-archive
@ -279,51 +286,50 @@ protobuf-java-util 3.6.0
publicsuffix 20211207.1025-1 deb publicsuffix 20211207.1025-1 deb
radclient4 4.0 java-archive radclient4 4.0 java-archive
reactive-streams 1.0.4 java-archive reactive-streams 1.0.4 java-archive
reactor-core 3.4.21 java-archive reactor-core 3.6.2 java-archive
readline-common 8.1.2-1 deb readline-common 8.1.2-1 deb
resource-loader 2.0.2 java-archive resource-loader 2.0.2 java-archive
sed 4.8-1ubuntu2 deb sed 4.8-1ubuntu2 deb
sensible-utils 0.0.17 deb sensible-utils 0.0.17 deb
slf4j-api 1.7.36 java-archive slf4j-api 2.0.11 java-archive
snakeyaml 1.30 java-archive snakeyaml 2.2 java-archive
snappy-java 1.1.8.4 java-archive snappy-java 1.1.10.5 java-archive
spring-aop 5.3.22 java-archive spring-aop 6.1.3 java-archive
spring-beans 5.3.22 java-archive spring-beans 6.1.3 java-archive
spring-boot 2.7.2 java-archive spring-boot 3.2.2 java-archive
spring-boot-autoconfigure 2.7.2 java-archive spring-boot-autoconfigure 3.2.2 java-archive
spring-boot-starter 2.7.2 java-archive spring-boot-starter 3.2.2 java-archive
spring-boot-starter-data-mongodb 2.7.2 java-archive spring-boot-starter-data-mongodb 3.2.2 java-archive
spring-boot-starter-json 2.7.2 java-archive spring-boot-starter-json 3.2.2 java-archive
spring-boot-starter-logging 2.7.2 java-archive spring-boot-starter-logging 3.2.2 java-archive
spring-boot-starter-tomcat 2.7.2 java-archive spring-boot-starter-tomcat 3.2.2 java-archive
spring-boot-starter-validation 2.7.2 java-archive spring-boot-starter-validation 3.2.2 java-archive
spring-boot-starter-web 2.7.2 java-archive spring-boot-starter-web 3.2.2 java-archive
spring-boot-starter-websocket 2.7.2 java-archive spring-boot-starter-websocket 3.2.2 java-archive
spring-context 5.3.22 java-archive spring-context 6.1.3 java-archive
spring-core 5.3.22 java-archive spring-core 6.1.3 java-archive
spring-data-commons 2.7.2 java-archive spring-data-commons 3.2.2 java-archive
spring-data-mongodb 3.4.2 java-archive spring-data-mongodb 4.2.2 java-archive
spring-expression 5.3.22 java-archive spring-expression 6.1.3 java-archive
spring-messaging 5.3.22 java-archive spring-messaging 6.1.3 java-archive
spring-tx 5.3.22 java-archive spring-tx 6.1.3 java-archive
spring-web 5.3.22 java-archive spring-web 6.1.3 java-archive
spring-webmvc 5.3.22 java-archive spring-webmvc 6.1.3 java-archive
spring-websocket 5.3.22 java-archive spring-websocket 6.1.3 java-archive
sshj 0.27.0 java-archive sshj 0.37.0 java-archive
sysvinit-utils 3.01-1ubuntu1 deb sysvinit-utils 3.01-1ubuntu1 deb
tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb tar 1.34+dfsg-1ubuntu0.1.22.04.2 deb
tomcat-annotations-api 9.0.65 java-archive tomcat-annotations-api 10.1.18 java-archive
tomcat-embed-core 9.0.65 java-archive tomcat-embed-core 10.1.18 java-archive
tomcat-embed-el 9.0.65 java-archive tomcat-embed-el 10.1.18 java-archive
tomcat-embed-jasper 9.0.65 java-archive tomcat-embed-jasper 10.1.18 java-archive
tomcat-embed-programmatic 9.0.65 java-archive tomcat-embed-websocket 10.1.18 java-archive
tomcat-embed-websocket 9.0.65 java-archive
txw2 2.3.0.1 java-archive txw2 2.3.0.1 java-archive
tzdata 2023d-0ubuntu0.22.04 deb tzdata 2024a-0ubuntu0.22.04 deb
ubuntu-keyring 2021.03.26 deb ubuntu-keyring 2021.03.26 deb
ucf 3.0043 deb ucf 3.0043 deb
unzip 6.0-26ubuntu3.2 deb unzip 6.0-26ubuntu3.2 deb
urlrewritefilter 4.0.4 java-archive urlrewritefilter 4.0.4.1 java-archive
usrmerge 25ubuntu2 deb usrmerge 25ubuntu2 deb
util-linux 2.37.2-4ubuntu3 deb util-linux 2.37.2-4ubuntu3 deb
zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb

View file

@ -19,7 +19,7 @@ development_versions: false
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/data", desc: "All Unifi data stored here" } - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Persistent config files" }
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
@ -61,7 +61,7 @@ app_setup_block: |
### Setting Up Your External Database ### Setting Up Your External Database
Formally only mongodb 3.6 through 4.4 are supported, however, it has been reported that newer versions will work. If you choose to use a newer version be aware that you will not be operating a supported configuration. Starting with version 8.1 of Unifi Network Application, mongodb 3.6 through 7.0 are supported.
**Make sure you pin your database image version and do not use `latest`, as mongodb does not support automatic upgrades between major versions.** **Make sure you pin your database image version and do not use `latest`, as mongodb does not support automatic upgrades between major versions.**