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,46 +1,47 @@
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
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.3 deb
base-files 12ubuntu4.6 deb
base-passwd 3.5.52build1 deb
bash 5.1-6ubuntu1 deb
bash 5.1-6ubuntu1.1 deb
bash 5.1.16 binary
bcpkix-jdk15on 1.60 java-archive
bcprov-jdk15on 1.60 java-archive
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.6.1 java-archive
bson-record-codec 4.6.1 java-archive
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.5.1 java-archive
classmate 1.6.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-codec 1.15 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.12.0 java-archive
commons-lang3 3.13.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
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 deb
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
@ -50,17 +51,17 @@ debianutils 5.5-1ubuntu2
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
dpkg 1.21.1ubuntu2.3 deb
e2fsprogs 1.46.5-2ubuntu1.1 deb
ecj 3.18.0 java-archive
eddsa 0.2.0 java-archive
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.1.0-2ubuntu1~22.04 deb
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
@ -92,35 +93,39 @@ grep 3.7-1build1
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
hibernate-validator 8.0.1.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
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.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
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
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
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
@ -129,14 +134,14 @@ jmdns 3.4.1
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
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 1.7.36 java-archive
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
@ -153,45 +158,45 @@ libblkid1 2.37.2-4ubuntu3
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
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.7 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.2 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.1.0-2ubuntu1~22.04 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.2 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.2 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.2 deb
libk5crypto3 1.19.2-2ubuntu0.3 deb
libkeyutils1 1.6.1-2ubuntu3 deb
libkrb5-3 1.19.2-2ubuntu0.2 deb
libkrb5support0 1.19.2-2ubuntu0.2 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.16+dfsg-0ubuntu0.22.04.2 deb
libldap-common 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.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
@ -206,16 +211,16 @@ libnspr4 2:4.32-3build1
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
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 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
@ -231,47 +236,49 @@ libsmartcols1 2.37.2-4ubuntu3
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
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.9 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.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
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.6.1 java-archive
mongodb-driver-legacy 4.6.1 java-archive
mongodb-driver-sync 4.6.1 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.9+9-1~22.04 deb
openjdk-17-jre-headless 17.0.10+7-1~22.04.1 deb
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
owasp-java-html-sanitizer 20190503.1 java-archive
passwd 1:4.8.1-2ubuntu2.1 deb
perl-base 5.34.0-3ubuntu1.2 deb
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 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
@ -279,51 +286,50 @@ protobuf-java-util 3.6.0
publicsuffix 20211207.1025-1 deb
radclient4 4.0 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
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
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.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
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 2023d-0ubuntu0.22.04 deb
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 java-archive
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.**