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
attributes:
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
placeholder: |
Output of `docker logs linuxserver.io`
Output of `docker logs unifi-network-application`
render: bash
validations:
required: true

View file

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

View file

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

View file

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

View file

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

336
Jenkinsfile vendored
View file

@ -245,9 +245,11 @@ pipeline {
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \
pip install s3cmd && \
ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache python3 && \
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" || :'''
}
}
@ -262,150 +264,176 @@ pipeline {
}
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull 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
# Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile"
rm -Rf ${TEMPDIR}
exit 0
else
echo "Jenkinsfile is up to date."
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating:
# ${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
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch main --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
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
# 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
done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old and deprecated templates"
rm -Rf ${TEMPDIR}
exit 0
else
echo "No templates to delete"
fi
# Stage 3 - Update templates
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
git commit -m 'Bot Updating Templated Files'
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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "No templates to delete"
fi
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f main
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
echo ".jenkins-external" >> .gitignore
git add .gitignore
fi
git add readme-vars.yml ${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 push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
echo ".jenkins-external" >> .gitignore
git add .gitignore
fi
git add readme-vars.yml ${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 push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git main
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "No templates to update"
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
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
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
git commit -m 'Bot Updating Documentation'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
else
echo "No updates to Unraid template needed, skipping"
fi
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
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
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')
if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
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')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-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."
-X POST \
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/ || :
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
}
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')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-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{
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}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"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 {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@ -719,7 +743,7 @@ pipeline {
retry(5) {
sh '''#! /bin/bash
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 $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
@ -750,12 +774,6 @@ pipeline {
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@ -766,7 +784,7 @@ pipeline {
retry(5) {
sh '''#! /bin/bash
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 $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --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
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.**
@ -155,7 +155,7 @@ services:
- MONGO_TLS= #optional
- MONGO_AUTHSOURCE= #optional
volumes:
- /path/to/data:/config
- /path/to/unifi-network-application/data:/config
ports:
- 8443:8443
- 3478:3478/udp
@ -195,7 +195,7 @@ docker run -d \
-p 8880:8880 `#optional` \
-p 6789:6789 `#optional` \
-p 5514:5514/udp `#optional` \
-v /path/to/data:/config \
-v /path/to/unifi-network-application/data:/config \
--restart unless-stopped \
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 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. |
| `-v /config` | All Unifi data stored here |
| `-v /config` | Persistent config files |
## Environment variables from files (Docker secrets)

View file

@ -1,329 +1,335 @@
NAME VERSION TYPE
ace java-archive
activation 1.1.1 java-archive
adduser 3.118ubuntu5 deb
analytics-api 1.3.1 java-archive
analytics-client 1.3.1 java-archive
analytics-privacy 1.3.1 java-archive
annotations 3.0.1 java-archive
antlr4-runtime 4.5.3 java-archive
api-common 1.7.0 java-archive
apigateway-generic-java-sdk 1.3 java-archive
apt 2.4.11 deb
apt-utils 2.4.11 deb
aws-iot-device-sdk-java 1.2.0 java-archive
aws-java-sdk-core 1.11.409 java-archive
aws-java-sdk-s3 1.11.409 java-archive
base-files 12ubuntu4.3 deb
base-passwd 3.5.52build1 deb
bash 5.1-6ubuntu1 deb
bash 5.1.16 binary
bcpkix-jdk15on 1.60 java-archive
bcprov-jdk15on 1.60 java-archive
bsdutils 1:2.37.2-4ubuntu3 deb
bson 4.6.1 java-archive
bson-record-codec 4.6.1 java-archive
ca-certificates 20230311ubuntu0.22.04.1 deb
ca-certificates-java java-archive
ca-certificates-java 20190909ubuntu1.2 deb
checker-qual 3.12.0 java-archive
classmate 1.5.1 java-archive
coloring 1.0 java-archive
commons-beanutils 1.9.2 java-archive
commons-cli 1.4 java-archive
commons-codec 1.15 java-archive
commons-daemon 1.0.15 java-archive
commons-io 2.11.0 java-archive
commons-lang3 3.12.0 java-archive
commons-logging 1.2 java-archive
commons-net 3.8.0 java-archive
commons-text 1.10.0 java-archive
commons-validator 1.6 java-archive
compiler 0.9.6 java-archive
coreutils 8.32-4.1ubuntu1 deb
cron 3.0pl1-137ubuntu3 deb
cron4j 2.2.5 java-archive
curl 7.81.0-1ubuntu1.15 deb
dash 0.5.11+git20210903+057cd650a4ed-3build1 deb
debconf 1.5.79ubuntu1 deb
debianutils 5.5-1ubuntu2 deb
diffutils 1:3.8-0ubuntu2 deb
dirmngr 2.2.27-3ubuntu2.1 deb
dom4j 1.6.1 java-archive
dpkg 1.21.1ubuntu2.2 deb
e2fsprogs 1.46.5-2ubuntu1.1 deb
ecj 3.18.0 java-archive
eddsa 0.2.0 java-archive
error_prone_annotations 2.7.1 java-archive
failureaccess 1.0.1 java-archive
findutils 4.8.0-1ubuntu3 deb
fontconfig-config 2.13.1-4.2ubuntu5 deb
fonts-dejavu-core 2.37-2build1 deb
gax 1.31.0 java-archive
gcc-12-base 12.1.0-2ubuntu1~22.04 deb
gnupg 2.2.27-3ubuntu2.1 deb
gnupg-l10n 2.2.27-3ubuntu2.1 deb
gnupg-utils 2.2.27-3ubuntu2.1 deb
google-api-client 1.26.0 java-archive
google-api-services-drive v3-rev20180830-1.26.0 java-archive
google-api-services-drive-v3-rev20180830 1.26.0 java-archive
google-api-services-storage v1-rev135-1.24.1 java-archive
google-api-services-storage-v1-rev135 1.24.1 java-archive
google-auth-library-credentials 0.11.0 java-archive
google-auth-library-oauth2-http 0.11.0 java-archive
google-cloud-core 1.44.0 java-archive
google-cloud-core-http 1.44.0 java-archive
google-cloud-storage 1.44.0 java-archive
google-http-client 1.26.0 java-archive
google-http-client-appengine 1.24.1 java-archive
google-http-client-gson 1.26.0 java-archive
google-http-client-jackson 1.24.1 java-archive
google-http-client-jackson2 1.26.0 java-archive
google-http-client-jdo 1.26.0 java-archive
google-oauth-client 1.26.0 java-archive
gpg 2.2.27-3ubuntu2.1 deb
gpg-agent 2.2.27-3ubuntu2.1 deb
gpg-wks-client 2.2.27-3ubuntu2.1 deb
gpg-wks-server 2.2.27-3ubuntu2.1 deb
gpgconf 2.2.27-3ubuntu2.1 deb
gpgsm 2.2.27-3ubuntu2.1 deb
gpgv 2.2.27-3ubuntu2.1 deb
grep 3.7-1build1 deb
gson 2.9.0 java-archive
guava 31.0.1-jre java-archive
gzip 1.10-4ubuntu4.1 deb
hibernate-validator 6.2.3.Final java-archive
hostname 3.23ubuntu2 deb
httpclient 4.5.13 java-archive
httpcore 4.4.15 java-archive
httpmime 4.5.13 java-archive
init-system-helpers 1.62 deb
istack-commons-runtime 3.0.5 java-archive
j2objc-annotations 1.3 java-archive
jackson-annotations 2.13.3 java-archive
jackson-core 2.13.3 java-archive
jackson-databind 2.13.3 java-archive
jackson-datatype-jdk8 2.13.3 java-archive
jackson-datatype-jsr310 2.13.3 java-archive
jackson-module-parameter-names 2.13.3 java-archive
jakarta.annotation-api 1.3.5 java-archive
jakarta.validation-api 2.0.2 java-archive
java-binme 1.0 java-archive
java-common 0.72build2 deb
java-ipv6 0.17 java-archive
java-semver 0.9.0 java-archive
java-ucp 1.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-core 2.3.0.1 java-archive
jaxb-impl 2.3.0.1 java-archive
jaxb-runtime 2.3.0.1 java-archive
jboss-logging 3.4.3.Final java-archive
jcl-over-slf4j 1.7.36 java-archive
jenetics 4.2.0 java-archive
jgrapht-core 1.0.1 java-archive
jgrapht-ext 1.0.1 java-archive
jgraphx 2.0.0.1 java-archive
jmdns 3.4.1 java-archive
jna 5.9.0 java-archive
joda-time 2.10.4 java-archive
jq 1.6-2.1ubuntu3 deb
jrt-fs 17.0.9 java-archive
json 20190722 java-archive
jsr305 3.0.1 java-archive
jsr305 3.0.2 java-archive
jstl 1.2 java-archive
jstun 0.7.4 java-archive
jsvc 1.0.15-8 deb
jul-to-slf4j 1.7.36 java-archive
lazysodium-java 5.1.2 java-archive
libacl1 2.3.1-1 deb
libapt-pkg6.0 2.4.11 deb
libasound2 1.2.6.1-1ubuntu1 deb
libasound2-data 1.2.6.1-1ubuntu1 deb
libassuan0 2.5.5-1build1 deb
libattr1 1:2.5.1-1build1 deb
libaudit-common 1:3.0.7-1build1 deb
libaudit1 1:3.0.7-1build1 deb
libavahi-client3 0.8-5ubuntu5.2 deb
libavahi-common-data 0.8-5ubuntu5.2 deb
libavahi-common3 0.8-5ubuntu5.2 deb
libblkid1 2.37.2-4ubuntu3 deb
libbrotli1 1.0.9-2build6 deb
libbsd0 0.11.5-1 deb
libbz2-1.0 1.0.8-5build1 deb
libc-bin 2.35-0ubuntu3.1 deb
libc6 2.35-0ubuntu3.1 deb
libcap-ng0 0.7.9-2.2build3 deb
libcap2 1:2.44-1ubuntu0.22.04.1 deb
libcom-err2 1.46.5-2ubuntu1.1 deb
libcommons-daemon-java 1.0.15-8 deb
libcrypt1 1:4.4.27-1 deb
libcups2 2.4.1op1-1ubuntu4.7 deb
libcurl4 7.81.0-1ubuntu1.15 deb
libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
libdbus-1-3 1.12.20-2ubuntu4.1 deb
libdebconfclient0 0.261ubuntu1 deb
libexpat1 2.4.7-1ubuntu0.2 deb
libext2fs2 1.46.5-2ubuntu1.1 deb
libffi8 3.4.2-4 deb
libfontconfig1 2.13.1-4.2ubuntu5 deb
libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb
libgcc-s1 12.1.0-2ubuntu1~22.04 deb
libgcrypt20 1.9.4-3ubuntu3 deb
libglib2.0-0 2.72.4-0ubuntu2.2 deb
libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
libgnutls30 3.7.3-4ubuntu1.2 deb
libgpg-error0 1.43-3 deb
libgraphite2-3 1.3.14-1build2 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.2 deb
libharfbuzz0b 2.7.4-1ubuntu3.1 deb
libhogweed6 3.7.3-1build2 deb
libidn2-0 2.3.2-2build1 deb
libjpeg-turbo8 2.1.2-0ubuntu1 deb
libjpeg8 8c-2ubuntu10 deb
libjq1 1.6-2.1ubuntu3 deb
libk5crypto3 1.19.2-2ubuntu0.2 deb
libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.2 deb
libkrb5support0 1.19.2-2ubuntu0.2 deb
libksba8 1.6.0-2ubuntu0.2 deb
liblcms2-2 2.12~rc1-2build2 deb
libldap-2.5-0 2.5.16+dfsg-0ubuntu0.22.04.2 deb
libldap-common 2.5.16+dfsg-0ubuntu0.22.04.2 deb
liblz4-1 1.9.3-2build2 deb
liblzma5 5.2.5-2ubuntu1 deb
libmd0 1.0.4-1build1 deb
libmount1 2.37.2-4ubuntu3 deb
libncurses6 6.3-2ubuntu0.1 deb
libncursesw6 6.3-2ubuntu0.1 deb
libnettle8 3.7.3-1build2 deb
libnghttp2-14 1.43.0-1ubuntu0.1 deb
libnpth0 1.6-3build2 deb
libnsl2 1.3.0-2build2 deb
libnspr4 2:4.32-3build1 deb
libnss3 2:3.68.2-0ubuntu1.2 deb
libonig5 6.9.7.1-2build1 deb
libp11-kit0 0.24.0-6build1 deb
libpam-modules 1.4.0-11ubuntu2.3 deb
libpam-modules-bin 1.4.0-11ubuntu2.3 deb
libpam-runtime 1.4.0-11ubuntu2.3 deb
libpam0g 1.4.0-11ubuntu2.3 deb
libpcre2-8-0 10.39-3ubuntu0.1 deb
libpcre3 2:8.39-13ubuntu0.22.04.1 deb
libpcsclite1 1.9.5-3ubuntu1 deb
libpng16-16 1.6.37-3build5 deb
libpopt0 1.18-3build1 deb
libprocps8 2:3.3.17-6ubuntu2 deb
libpsl5 0.21.0-1.2build2 deb
libreadline8 8.1.2-1 deb
librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb
libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb
libseccomp2 2.5.3-2ubuntu2 deb
libselinux1 3.3-1build2 deb
libsemanage-common 3.3-1build2 deb
libsemanage2 3.3-1build2 deb
libsepol2 3.3-1build1 deb
libsmartcols1 2.37.2-4ubuntu3 deb
libsqlite3-0 3.37.2-2ubuntu0.3 deb
libss2 1.46.5-2ubuntu1.1 deb
libssh-4 0.9.6-2ubuntu0.22.04.3 deb
libssl3 3.0.2-0ubuntu1.10 deb
libstdc++6 12.1.0-2ubuntu1~22.04 deb
libsystemd0 249.11-0ubuntu3.9 deb
libtasn1-6 4.18.0-4build1 deb
libtinfo6 6.3-2ubuntu0.1 deb
libtirpc-common 1.3.2-2ubuntu0.1 deb
libtirpc3 1.3.2-2ubuntu0.1 deb
libudev1 249.11-0ubuntu3.9 deb
libunistring2 1.0-1 deb
libuuid1 2.37.2-4ubuntu3 deb
libxxhash0 0.8.1-1 deb
libzstd1 1.4.8+dfsg-3build1 deb
locales 2.35-0ubuntu3.6 deb
log4j-api 2.17.2 java-archive
log4j-to-slf4j 2.17.2 java-archive
logback-access 1.2.11 java-archive
logback-classic 1.2.11 java-archive
logback-core 1.2.11 java-archive
login 1:4.8.1-2ubuntu2.1 deb
logrotate 3.19.0-1ubuntu1.1 deb
logsave 1.46.5-2ubuntu1.1 deb
lsb-base 11.1.0ubuntu4 deb
mawk 1.3.4.20200120-3 deb
minimal-json 0.9.5 java-archive
mongodb-driver-core 4.6.1 java-archive
mongodb-driver-legacy 4.6.1 java-archive
mongodb-driver-sync 4.6.1 java-archive
mount 2.37.2-4ubuntu3 deb
ncurses-base 6.3-2ubuntu0.1 deb
ncurses-bin 6.3-2ubuntu0.1 deb
netcat 1.218-4ubuntu1 deb
netcat-openbsd 1.218-4ubuntu1 deb
openjdk-17-jre-headless 17.0.9+9-1~22.04 deb
openssh 1.0 java-archive
openssl 3.0.2-0ubuntu1.14 deb
org.eclipse.paho.client.mqttv3 1.1.0 java-archive
owasp-java-html-sanitizer 20190503.1 java-archive
passwd 1:4.8.1-2ubuntu2.1 deb
perl-base 5.34.0-3ubuntu1.2 deb
pinentry-curses 1.1.1-1build2 deb
procps 2:3.3.17-6ubuntu2 deb
proto-google-common-protos 1.12.0 java-archive
proto-google-iam-v1 0.12.0 java-archive
protobuf-java 3.6.0 java-archive
protobuf-java-util 3.6.0 java-archive
publicsuffix 20211207.1025-1 deb
radclient4 4.0 java-archive
reactive-streams 1.0.4 java-archive
reactor-core 3.4.21 java-archive
readline-common 8.1.2-1 deb
resource-loader 2.0.2 java-archive
sed 4.8-1ubuntu2 deb
sensible-utils 0.0.17 deb
slf4j-api 1.7.36 java-archive
snakeyaml 1.30 java-archive
snappy-java 1.1.8.4 java-archive
spring-aop 5.3.22 java-archive
spring-beans 5.3.22 java-archive
spring-boot 2.7.2 java-archive
spring-boot-autoconfigure 2.7.2 java-archive
spring-boot-starter 2.7.2 java-archive
spring-boot-starter-data-mongodb 2.7.2 java-archive
spring-boot-starter-json 2.7.2 java-archive
spring-boot-starter-logging 2.7.2 java-archive
spring-boot-starter-tomcat 2.7.2 java-archive
spring-boot-starter-validation 2.7.2 java-archive
spring-boot-starter-web 2.7.2 java-archive
spring-boot-starter-websocket 2.7.2 java-archive
spring-context 5.3.22 java-archive
spring-core 5.3.22 java-archive
spring-data-commons 2.7.2 java-archive
spring-data-mongodb 3.4.2 java-archive
spring-expression 5.3.22 java-archive
spring-messaging 5.3.22 java-archive
spring-tx 5.3.22 java-archive
spring-web 5.3.22 java-archive
spring-webmvc 5.3.22 java-archive
spring-websocket 5.3.22 java-archive
sshj 0.27.0 java-archive
sysvinit-utils 3.01-1ubuntu1 deb
tar 1.34+dfsg-1ubuntu0.1.22.04.1 deb
tomcat-annotations-api 9.0.65 java-archive
tomcat-embed-core 9.0.65 java-archive
tomcat-embed-el 9.0.65 java-archive
tomcat-embed-jasper 9.0.65 java-archive
tomcat-embed-programmatic 9.0.65 java-archive
tomcat-embed-websocket 9.0.65 java-archive
txw2 2.3.0.1 java-archive
tzdata 2023d-0ubuntu0.22.04 deb
ubuntu-keyring 2021.03.26 deb
ucf 3.0043 deb
unzip 6.0-26ubuntu3.2 deb
urlrewritefilter 4.0.4 java-archive
usrmerge 25ubuntu2 deb
util-linux 2.37.2-4ubuntu3 deb
zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb
NAME VERSION TYPE
ace java-archive
adduser 3.118ubuntu5 deb
analytics-api 2.0.0 java-archive
analytics-client 2.0.0 java-archive
analytics-privacy 2.0.0 java-archive
annotations 3.0.1 java-archive
antlr4-runtime 4.5.3 java-archive
api-common 1.7.0 java-archive
apigateway-generic-java-sdk 1.3 java-archive
apt 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-java-sdk-core 1.11.409 java-archive
aws-java-sdk-s3 1.11.409 java-archive
base-files 12ubuntu4.6 deb
base-passwd 3.5.52build1 deb
bash 5.1-6ubuntu1.1 deb
bash 5.1.16 binary
bcpkix-jdk18on 1.75 java-archive
bcprov-jdk18on 1.75 java-archive
bcutil-jdk18on 1.75 java-archive
bsdutils 1:2.37.2-4ubuntu3 deb
bson 4.11.1 java-archive
bson-record-codec 4.11.1 java-archive
ca-certificates 20230311ubuntu0.22.04.1 deb
ca-certificates-java java-archive
ca-certificates-java 20190909ubuntu1.2 deb
checker-qual 3.12.0 java-archive
classmate 1.6.0 java-archive
coloring 1.0 java-archive
commons-beanutils 1.9.4 java-archive
commons-cli 1.4 java-archive
commons-codec 1.16.0 java-archive
commons-daemon 1.0.15 java-archive
commons-io 2.11.0 java-archive
commons-lang3 3.13.0 java-archive
commons-logging 1.2 java-archive
commons-net 3.10.0 java-archive
commons-text 1.11.0 java-archive
commons-validator 1.7 java-archive
compiler 0.9.6 java-archive
coreutils 8.32-4.1ubuntu1.1 deb
cron 3.0pl1-137ubuntu3 deb
cron4j 2.2.5 java-archive
curl 7.81.0-1ubuntu1.15 deb
dash 0.5.11+git20210903+057cd650a4ed-3build1 deb
debconf 1.5.79ubuntu1 deb
debianutils 5.5-1ubuntu2 deb
diffutils 1:3.8-0ubuntu2 deb
dirmngr 2.2.27-3ubuntu2.1 deb
dom4j 1.6.1 java-archive
dpkg 1.21.1ubuntu2.3 deb
e2fsprogs 1.46.5-2ubuntu1.1 deb
ecj 3.33.0 java-archive
eddsa 0.3.0 java-archive
error_prone_annotations 2.7.1 java-archive
failureaccess 1.0.1 java-archive
findutils 4.8.0-1ubuntu3 deb
fontconfig-config 2.13.1-4.2ubuntu5 deb
fonts-dejavu-core 2.37-2build1 deb
gax 1.31.0 java-archive
gcc-12-base 12.3.0-1ubuntu1~22.04 deb
gnupg 2.2.27-3ubuntu2.1 deb
gnupg-l10n 2.2.27-3ubuntu2.1 deb
gnupg-utils 2.2.27-3ubuntu2.1 deb
google-api-client 1.26.0 java-archive
google-api-services-drive v3-rev20180830-1.26.0 java-archive
google-api-services-drive-v3-rev20180830 1.26.0 java-archive
google-api-services-storage v1-rev135-1.24.1 java-archive
google-api-services-storage-v1-rev135 1.24.1 java-archive
google-auth-library-credentials 0.11.0 java-archive
google-auth-library-oauth2-http 0.11.0 java-archive
google-cloud-core 1.44.0 java-archive
google-cloud-core-http 1.44.0 java-archive
google-cloud-storage 1.44.0 java-archive
google-http-client 1.26.0 java-archive
google-http-client-appengine 1.24.1 java-archive
google-http-client-gson 1.26.0 java-archive
google-http-client-jackson 1.24.1 java-archive
google-http-client-jackson2 1.26.0 java-archive
google-http-client-jdo 1.26.0 java-archive
google-oauth-client 1.26.0 java-archive
gpg 2.2.27-3ubuntu2.1 deb
gpg-agent 2.2.27-3ubuntu2.1 deb
gpg-wks-client 2.2.27-3ubuntu2.1 deb
gpg-wks-server 2.2.27-3ubuntu2.1 deb
gpgconf 2.2.27-3ubuntu2.1 deb
gpgsm 2.2.27-3ubuntu2.1 deb
gpgv 2.2.27-3ubuntu2.1 deb
grep 3.7-1build1 deb
gson 2.9.0 java-archive
guava 31.0.1-jre java-archive
gzip 1.10-4ubuntu4.1 deb
hibernate-validator 8.0.1.Final java-archive
hostname 3.23ubuntu2 deb
httpclient 4.5.5 java-archive
httpclient5 5.2.3 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
istack-commons-runtime 3.0.5 java-archive
j2objc-annotations 1.3 java-archive
jackson-annotations 2.15.3 java-archive
jackson-core 2.15.3 java-archive
jackson-databind 2.15.3 java-archive
jackson-datatype-jdk8 2.15.3 java-archive
jackson-datatype-jsr310 2.15.3 java-archive
jackson-module-parameter-names 2.15.3 java-archive
jakarta.activation 2.0.1 java-archive
jakarta.annotation-api 2.1.1 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-ipv6 0.17 java-archive
java-semver 0.9.0 java-archive
java-ucp 1.1 java-archive
java-uuid-generator 4.0.1 java-archive
jaxb-api 2.3.0 java-archive
jaxb-core 2.3.0.1 java-archive
jaxb-impl 2.3.0.1 java-archive
jaxb-runtime 2.3.0.1 java-archive
jbcrypt 0.4 java-archive
jboss-logging 3.5.3.Final java-archive
jcl-over-slf4j 2.0.11 java-archive
jenetics 4.2.0 java-archive
jgrapht-core 1.0.1 java-archive
jgrapht-ext 1.0.1 java-archive
jgraphx 2.0.0.1 java-archive
jmdns 3.4.1 java-archive
jna 5.9.0 java-archive
joda-time 2.10.4 java-archive
jq 1.6-2.1ubuntu3 deb
jrt-fs 17.0.10 java-archive
json 20190722 java-archive
jsr305 3.0.1 java-archive
jsr305 3.0.2 java-archive
jstl 1.2 java-archive
jstun 0.7.4 java-archive
jsvc 1.0.15-8 deb
jul-to-slf4j 2.0.11 java-archive
lazysodium-java 5.1.2 java-archive
libacl1 2.3.1-1 deb
libapt-pkg6.0 2.4.11 deb
libasound2 1.2.6.1-1ubuntu1 deb
libasound2-data 1.2.6.1-1ubuntu1 deb
libassuan0 2.5.5-1build1 deb
libattr1 1:2.5.1-1build1 deb
libaudit-common 1:3.0.7-1build1 deb
libaudit1 1:3.0.7-1build1 deb
libavahi-client3 0.8-5ubuntu5.2 deb
libavahi-common-data 0.8-5ubuntu5.2 deb
libavahi-common3 0.8-5ubuntu5.2 deb
libblkid1 2.37.2-4ubuntu3 deb
libbrotli1 1.0.9-2build6 deb
libbsd0 0.11.5-1 deb
libbz2-1.0 1.0.8-5build1 deb
libc-bin 2.35-0ubuntu3.6 deb
libc6 2.35-0ubuntu3.6 deb
libcap-ng0 0.7.9-2.2build3 deb
libcap2 1:2.44-1ubuntu0.22.04.1 deb
libcom-err2 1.46.5-2ubuntu1.1 deb
libcommons-daemon-java 1.0.15-8 deb
libcrypt1 1:4.4.27-1 deb
libcups2 2.4.1op1-1ubuntu4.8 deb
libcurl4 7.81.0-1ubuntu1.15 deb
libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
libdbus-1-3 1.12.20-2ubuntu4.1 deb
libdebconfclient0 0.261ubuntu1 deb
libexpat1 2.4.7-1ubuntu0.3 deb
libext2fs2 1.46.5-2ubuntu1.1 deb
libffi8 3.4.2-4 deb
libfontconfig1 2.13.1-4.2ubuntu5 deb
libfreetype6 2.11.1+dfsg-1ubuntu0.2 deb
libgcc-s1 12.3.0-1ubuntu1~22.04 deb
libgcrypt20 1.9.4-3ubuntu3 deb
libglib2.0-0 2.72.4-0ubuntu2.2 deb
libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
libgnutls30 3.7.3-4ubuntu1.4 deb
libgpg-error0 1.43-3 deb
libgraphite2-3 1.3.14-1build2 deb
libgssapi-krb5-2 1.19.2-2ubuntu0.3 deb
libharfbuzz0b 2.7.4-1ubuntu3.1 deb
libhogweed6 3.7.3-1build2 deb
libidn2-0 2.3.2-2build1 deb
libjpeg-turbo8 2.1.2-0ubuntu1 deb
libjpeg8 8c-2ubuntu10 deb
libjq1 1.6-2.1ubuntu3 deb
libk5crypto3 1.19.2-2ubuntu0.3 deb
libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.3 deb
libkrb5support0 1.19.2-2ubuntu0.3 deb
libksba8 1.6.0-2ubuntu0.2 deb
liblcms2-2 2.12~rc1-2build2 deb
libldap-2.5-0 2.5.17+dfsg-0ubuntu0.22.04.1 deb
libldap-common 2.5.17+dfsg-0ubuntu0.22.04.1 deb
liblz4-1 1.9.3-2build2 deb
liblzma5 5.2.5-2ubuntu1 deb
libmd0 1.0.4-1build1 deb
libmount1 2.37.2-4ubuntu3 deb
libncurses6 6.3-2ubuntu0.1 deb
libncursesw6 6.3-2ubuntu0.1 deb
libnettle8 3.7.3-1build2 deb
libnghttp2-14 1.43.0-1ubuntu0.1 deb
libnpth0 1.6-3build2 deb
libnsl2 1.3.0-2build2 deb
libnspr4 2:4.32-3build1 deb
libnss3 2:3.68.2-0ubuntu1.2 deb
libonig5 6.9.7.1-2build1 deb
libp11-kit0 0.24.0-6build1 deb
libpam-modules 1.4.0-11ubuntu2.4 deb
libpam-modules-bin 1.4.0-11ubuntu2.4 deb
libpam-runtime 1.4.0-11ubuntu2.4 deb
libpam0g 1.4.0-11ubuntu2.4 deb
libpcre2-8-0 10.39-3ubuntu0.1 deb
libpcre3 2:8.39-13ubuntu0.22.04.1 deb
libpcsclite1 1.9.5-3ubuntu1 deb
libpng16-16 1.6.37-3build5 deb
libpopt0 1.18-3build1 deb
libprocps8 2:3.3.17-6ubuntu2.1 deb
libpsl5 0.21.0-1.2build2 deb
libreadline8 8.1.2-1 deb
librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb
libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb
libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb
libseccomp2 2.5.3-2ubuntu2 deb
libselinux1 3.3-1build2 deb
libsemanage-common 3.3-1build2 deb
libsemanage2 3.3-1build2 deb
libsepol2 3.3-1build1 deb
libsmartcols1 2.37.2-4ubuntu3 deb
libsqlite3-0 3.37.2-2ubuntu0.3 deb
libss2 1.46.5-2ubuntu1.1 deb
libssh-4 0.9.6-2ubuntu0.22.04.3 deb
libssl3 3.0.2-0ubuntu1.15 deb
libstdc++6 12.3.0-1ubuntu1~22.04 deb
libsystemd0 249.11-0ubuntu3.12 deb
libtasn1-6 4.18.0-4build1 deb
libtinfo6 6.3-2ubuntu0.1 deb
libtirpc-common 1.3.2-2ubuntu0.1 deb
libtirpc3 1.3.2-2ubuntu0.1 deb
libudev1 249.11-0ubuntu3.12 deb
libunistring2 1.0-1 deb
libuuid1 2.37.2-4ubuntu3 deb
libxxhash0 0.8.1-1 deb
libzstd1 1.4.8+dfsg-3build1 deb
locales 2.35-0ubuntu3.6 deb
log4j-api 2.21.1 java-archive
log4j-to-slf4j 2.21.1 java-archive
logback-access 1.4.14 java-archive
logback-classic 1.4.14 java-archive
logback-core 1.4.14 java-archive
login 1:4.8.1-2ubuntu2.2 deb
logrotate 3.19.0-1ubuntu1.1 deb
logsave 1.46.5-2ubuntu1.1 deb
lsb-base 11.1.0ubuntu4 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
mongodb-driver-core 4.11.1 java-archive
mongodb-driver-legacy 4.11.1 java-archive
mongodb-driver-sync 4.11.1 java-archive
mount 2.37.2-4ubuntu3 deb
ncurses-base 6.3-2ubuntu0.1 deb
ncurses-bin 6.3-2ubuntu0.1 deb
netcat 1.218-4ubuntu1 deb
netcat-openbsd 1.218-4ubuntu1 deb
openjdk-17-jre-headless 17.0.10+7-1~22.04.1 deb
openssh 1.0 java-archive
openssl 3.0.2-0ubuntu1.15 deb
org.eclipse.paho.client.mqttv3 1.1.0 java-archive
owasp-java-html-sanitizer 20190503.1 java-archive
passwd 1:4.8.1-2ubuntu2.2 deb
perl-base 5.34.0-3ubuntu1.3 deb
pinentry-curses 1.1.1-1build2 deb
procps 2:3.3.17-6ubuntu2.1 deb
proto-google-common-protos 1.12.0 java-archive
proto-google-iam-v1 0.12.0 java-archive
protobuf-java 3.6.0 java-archive
protobuf-java-util 3.6.0 java-archive
publicsuffix 20211207.1025-1 deb
radclient4 4.0 java-archive
reactive-streams 1.0.4 java-archive
reactor-core 3.6.2 java-archive
readline-common 8.1.2-1 deb
resource-loader 2.0.2 java-archive
sed 4.8-1ubuntu2 deb
sensible-utils 0.0.17 deb
slf4j-api 2.0.11 java-archive
snakeyaml 2.2 java-archive
snappy-java 1.1.10.5 java-archive
spring-aop 6.1.3 java-archive
spring-beans 6.1.3 java-archive
spring-boot 3.2.2 java-archive
spring-boot-autoconfigure 3.2.2 java-archive
spring-boot-starter 3.2.2 java-archive
spring-boot-starter-data-mongodb 3.2.2 java-archive
spring-boot-starter-json 3.2.2 java-archive
spring-boot-starter-logging 3.2.2 java-archive
spring-boot-starter-tomcat 3.2.2 java-archive
spring-boot-starter-validation 3.2.2 java-archive
spring-boot-starter-web 3.2.2 java-archive
spring-boot-starter-websocket 3.2.2 java-archive
spring-context 6.1.3 java-archive
spring-core 6.1.3 java-archive
spring-data-commons 3.2.2 java-archive
spring-data-mongodb 4.2.2 java-archive
spring-expression 6.1.3 java-archive
spring-messaging 6.1.3 java-archive
spring-tx 6.1.3 java-archive
spring-web 6.1.3 java-archive
spring-webmvc 6.1.3 java-archive
spring-websocket 6.1.3 java-archive
sshj 0.37.0 java-archive
sysvinit-utils 3.01-1ubuntu1 deb
tar 1.34+dfsg-1ubuntu0.1.22.04.2 deb
tomcat-annotations-api 10.1.18 java-archive
tomcat-embed-core 10.1.18 java-archive
tomcat-embed-el 10.1.18 java-archive
tomcat-embed-jasper 10.1.18 java-archive
tomcat-embed-websocket 10.1.18 java-archive
txw2 2.3.0.1 java-archive
tzdata 2024a-0ubuntu0.22.04 deb
ubuntu-keyring 2021.03.26 deb
ucf 3.0043 deb
unzip 6.0-26ubuntu3.2 deb
urlrewritefilter 4.0.4.1 java-archive
usrmerge 25ubuntu2 deb
util-linux 2.37.2-4ubuntu3 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_usage_include_vols: true
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_ports:
@ -61,7 +61,7 @@ app_setup_block: |
### 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.**
@ -95,9 +95,9 @@ app_setup_block: |
### Device Adoption
For Unifi to adopt other devices, e.g. an Access Point, it is required to change the inform IP address. Because Unifi runs inside Docker by default it uses an IP address not accessible by other devices. To change this go to Settings > System > Advanced and set the Inform Host to a hostname or IP address accessible by your devices. Additionally the checkbox "Override" has to be checked, so that devices can connect to the controller during adoption (devices use the inform-endpoint during adoption).
Note that you must use 8080:8080. If you MUST change the port, it must be changed on both sides and manually changed in your system.properties file. Otherwise, devices will initially communicate and then break after.
**Please note, Unifi change the location of this option every few releases so if it's not where it says, search for "Inform" or "Inform Host" in the settings.**
In order to manually adopt a device take these steps: