Compare commits

..
Author SHA1 Message Date
LinuxServer-CI c6762ac3c0 Bot Updating Package Versions 2024-08-17 15:01:03 +00:00
LinuxServer-CI 92a82efa66 Bot Updating Templated Files 2024-08-17 14:57:54 +00:00
Adam c8133265d9 Merge pull request #13 from linuxserver/revert-3.20 2024-08-17 15:55:31 +01:00
thespad 6cb72d6220 Revert to 3.19 2024-08-17 15:43:25 +01:00
LinuxServer-CI a519a68ac8 Bot Updating Package Versions 2024-08-16 15:52:32 +00:00
LinuxServer-CI b74d7f5ef9 Bot Updating Package Versions 2024-08-08 19:21:36 +00:00
LinuxServer-CI b1ce17e619 Bot Updating Package Versions 2024-08-04 15:52:09 +00:00
LinuxServer-CI dee61a29e9 Bot Updating Package Versions 2024-08-01 19:19:31 +00:00
LinuxServer-CI 3c33086e7c Bot Updating Package Versions 2024-07-18 15:57:05 +00:00
LinuxServer-CI b7255a6557 Bot Updating Templated Files 2024-07-18 15:52:25 +00:00
LinuxServer-CI 536b60bac7 Bot Updating Templated Files 2024-07-18 15:51:04 +00:00
LinuxServer-CI f3b5c3a2f1 Bot Updating Package Versions 2024-07-09 15:52:35 +00:00
LinuxServer-CI fc41bbdc89 Bot Updating Package Versions 2024-07-08 15:20:47 +00:00
Roxedus 99c58fd27d Merge pull request #11 from linuxserver/ro-tweaks
Move tmpdir, don't chown /data if it's not mounted
2024-07-08 17:12:02 +02:00
LinuxServer-CI f24b8c726a Bot Updating Package Versions 2024-07-04 19:20:49 +00:00
thespad f3f6853f56 Move tmpdir, don't chown /data if it's not mounted 2024-07-03 14:49:57 +01:00
LinuxServer-CI 51f656d835 Bot Updating Package Versions 2024-06-27 19:20:54 +00:00
LinuxServer-CI 9fb505b200 Bot Updating Package Versions 2024-06-20 15:52:41 +00:00
LinuxServer-CI 7e682953a7 Bot Updating Package Versions 2024-06-19 19:48:24 +00:00
Adam 9147bb4f6f Merge pull request #9 from linuxserver/3.20
Rebase to 3.20
2024-06-19 20:44:55 +01:00
thespad 624a2767ec Rebase to 3.20 2024-06-19 19:16:32 +01:00
LinuxServer-CI 94bc8f8a7a Bot Updating Package Versions 2024-06-17 15:54:09 +00:00
LinuxServer-CI f8ed76b6d5 Bot Updating Package Versions 2024-06-14 15:52:33 +00:00
LinuxServer-CI ef37fbf225 Bot Updating Package Versions 2024-06-04 15:52:16 +00:00
LinuxServer-CI f0c79201a0 Bot Updating Package Versions 2024-05-28 15:52:33 +00:00
LinuxServer-CI 110b0d5ca2 Bot Updating Package Versions 2024-05-23 19:21:10 +00:00
LinuxServer-CI cc70423014 Bot Updating Package Versions 2024-05-22 15:58:04 +00:00
LinuxServer-CI 9d3e129167 Bot Updating Templated Files 2024-05-22 15:53:06 +00:00
LinuxServer-CI b641e63fd8 Bot Updating Templated Files 2024-05-22 15:50:47 +00:00
LinuxServer-CI 723b07fe5e Bot Updating Package Versions 2024-05-09 15:53:59 +00:00
LinuxServer-CI 7210d45aa6 Bot Updating Templated Files 2024-05-09 15:50:48 +00:00
LinuxServer-CI 8e2d849db4 Bot Updating Package Versions 2024-05-08 15:52:39 +00:00
LinuxServer-CI 4a429e8b00 Bot Updating Package Versions 2024-05-07 15:54:27 +00:00
LinuxServer-CI 41fcfa4f87 Bot Updating Templated Files 2024-05-07 15:50:58 +00:00
LinuxServer-CI 930910831a Bot Updating Templated Files 2024-05-02 19:16:32 +00:00
LinuxServer-CI d44b6172e5 Bot Updating Package Versions 2024-04-27 15:53:54 +00:00
LinuxServer-CI 57fc78ccb1 Bot Updating Package Versions 2024-04-22 15:52:37 +00:00
LinuxServer-CI 09a9858e88 Bot Updating Package Versions 2024-04-19 15:52:20 +00:00
LinuxServer-CI 7dca3d58d8 Bot Updating Package Versions 2024-04-18 19:16:37 +00:00
LinuxServer-CI 022c2cae53 Bot Updating Package Versions 2024-04-11 19:17:17 +00:00
LinuxServer-CI 1c7bb3147f Bot Updating Package Versions 2024-04-04 19:18:39 +00:00
LinuxServer-CI 2d9391b67a Bot Updating Package Versions 2024-03-26 15:53:29 +00:00
LinuxServer-CI ba524d84b6 Bot Updating Package Versions 2024-03-21 15:54:12 +00:00
LinuxServer-CI c4d029ade7 Bot Updating Package Versions 2024-03-20 19:20:53 +00:00
LinuxServer-CI 0c5c602af5 Bot Updating Templated Files 2024-03-20 19:17:38 +00:00
Adam f28cd0b7d9 Merge pull request #8 from linuxserver/main-3.19
Rebase to 3.19
2024-03-20 19:16:06 +00:00
TheSpad b7d5190a87 Rebase to 3.19 2024-03-20 18:08:15 +00:00
LinuxServer-CI c8a72e0aa2 Bot Updating Package Versions 2024-03-19 15:52:53 +00:00
LinuxServer-CI de0a9503e4 Bot Updating Package Versions 2024-03-16 15:52:54 +00:00
LinuxServer-CI 075e28475e Bot Updating Package Versions 2024-03-13 15:55:22 +00:00
LinuxServer-CI bab3fc7f84 Bot Updating Templated Files 2024-03-13 15:51:57 +00:00
LinuxServer-CI 323a26601f Bot Updating Package Versions 2024-03-08 15:55:07 +00:00
LinuxServer-CI cfa96d06ac Bot Updating Package Versions 2024-03-07 15:52:14 +00:00
9 changed files with 279 additions and 240 deletions
+2
View File
@@ -5,6 +5,8 @@ on:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
+9 -6
View File
@@ -1,10 +1,10 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:latest as unrar
FROM ghcr.io/linuxserver/unrar:latest AS unrar
FROM ghcr.io/by275/libtorrent:2-alpine3.18 as libtorrent
FROM ghcr.io/by275/libtorrent:2-alpine3.19 AS libtorrent
FROM ghcr.io/linuxserver/baseimage-alpine:3.18
FROM ghcr.io/linuxserver/baseimage-alpine:3.19
# set version label
ARG BUILD_DATE
@@ -15,7 +15,8 @@ LABEL maintainer="thespad"
# environment settings
ENV HOME="/config" \
PYTHONIOENCODING=utf-8
PYTHONIOENCODING=utf-8 \
TMPDIR=/run/flexget-temp
RUN \
echo "**** install packages ****" && \
@@ -30,12 +31,13 @@ RUN \
libstdc++ \
nodejs \
python3 && \
echo "**** install flexget ****" && \
echo "**** install flexget ****" && \
if [ -z ${FLEXGET_VERSION+x} ]; then \
FLEXGET_VERSION=$(curl -s https://api.github.com/repos/flexget/flexget/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /tmp/flexget && \
mkdir -p /data && \
curl -o \
/tmp/flexget.tar.gz -L \
"https://github.com/flexget/flexget/releases/download/${FLEXGET_VERSION}/FlexGet-${FLEXGET_VERSION#v}.tar.gz" && \
@@ -47,11 +49,12 @@ RUN \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install -U --no-cache --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
pip install -U --no-cache --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \
click \
flexget==${FLEXGET_VERSION#v} \
requests \
-r requirements-docker.txt && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
+9 -6
View File
@@ -1,10 +1,10 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:arm64v8-latest as unrar
FROM ghcr.io/linuxserver/unrar:arm64v8-latest AS unrar
FROM ghcr.io/by275/libtorrent:2-alpine3.18 as libtorrent
FROM ghcr.io/by275/libtorrent:2-alpine3.19 AS libtorrent
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19
# set version label
ARG BUILD_DATE
@@ -15,7 +15,8 @@ LABEL maintainer="thespad"
# environment settings
ENV HOME="/config" \
PYTHONIOENCODING=utf-8
PYTHONIOENCODING=utf-8 \
TMPDIR=/run/flexget-temp
RUN \
echo "**** install packages ****" && \
@@ -30,12 +31,13 @@ RUN \
libstdc++ \
nodejs \
python3 && \
echo "**** install flexget ****" && \
echo "**** install flexget ****" && \
if [ -z ${FLEXGET_VERSION+x} ]; then \
FLEXGET_VERSION=$(curl -s https://api.github.com/repos/flexget/flexget/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
fi && \
mkdir -p /tmp/flexget && \
mkdir -p /data && \
curl -o \
/tmp/flexget.tar.gz -L \
"https://github.com/flexget/flexget/releases/download/${FLEXGET_VERSION}/FlexGet-${FLEXGET_VERSION#v}.tar.gz" && \
@@ -47,11 +49,12 @@ RUN \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install -U --no-cache --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
pip install -U --no-cache --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \
click \
flexget==${FLEXGET_VERSION#v} \
requests \
-r requirements-docker.txt && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
Vendored
+68 -56
View File
@@ -34,8 +34,8 @@ pipeline {
CI_PORT='5050'
CI_SSL='false'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_DOCKERENV=''
CI_AUTH=''
CI_WEBPATH=''
}
stages {
@@ -255,7 +255,7 @@ pipeline {
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
ghcr.io/linuxserver/baseimage-alpine:3.20 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 && \
@@ -278,8 +278,15 @@ pipeline {
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
# 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 -e PUID=$(id -u) -e PGID=$(id -g) 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}
@@ -291,14 +298,14 @@ pipeline {
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"
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
# 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"
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"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -316,13 +323,13 @@ pipeline {
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"
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
# Stage 3 - Update templates
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)
@@ -346,16 +353,22 @@ pipeline {
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
git clone --depth=1 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} || \
@@ -363,19 +376,24 @@ pipeline {
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
git clone --depth=1 https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone --depth=1 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
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif 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
@@ -392,16 +410,27 @@ pipeline {
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
# 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
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
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 POST \
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/ || :
fi
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}" \
@@ -466,14 +495,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" '''
}
}
/* ###############
@@ -504,6 +535,7 @@ pipeline {
--label \"org.opencontainers.image.title=Flexget\" \
--label \"org.opencontainers.image.description=[Flexget](http://flexget.com/) is a multipurpose automation tool for all of your media.\" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -535,6 +567,7 @@ pipeline {
--label \"org.opencontainers.image.title=Flexget\" \
--label \"org.opencontainers.image.description=[Flexget](http://flexget.com/) is a multipurpose automation tool for all of your media.\" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -563,6 +596,7 @@ pipeline {
--label \"org.opencontainers.image.title=Flexget\" \
--label \"org.opencontainers.image.description=[Flexget](http://flexget.com/) is a multipurpose automation tool for all of your media.\" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
@@ -589,7 +623,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -679,14 +713,14 @@ pipeline {
set -e
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
docker run --rm \
--shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \
@@ -770,7 +804,7 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
@@ -794,35 +828,13 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
+13 -4
View File
@@ -28,7 +28,7 @@ Find us at:
# [linuxserver/flexget](https://github.com/linuxserver/docker-flexget)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fflexget?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fflexget)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fflexget?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-flexget.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-flexget)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-flexget.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-flexget/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-flexget/packages)
@@ -67,10 +67,15 @@ See the [FlexGet website](https://flexget.com/) for more information.
We have set `/data` as an ***optional path***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you dont understand, or dont want hardlinks/atomic moves.
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
## Read-Only Operation
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@@ -92,7 +97,7 @@ services:
- FG_CONFIG_FILE=/config/.flexget/config.yml
- FG_WEBUI_PASSWORD=info #optional
volumes:
- /path/to/data:/config
- /path/to/flexget/data:/config
- /path/to/downloads:/data #optional
ports:
- 5050:5050
@@ -112,7 +117,7 @@ docker run -d \
-e FG_CONFIG_FILE=/config/.flexget/config.yml \
-e FG_WEBUI_PASSWORD=info `#optional` \
-p 5050:5050 \
-v /path/to/data:/config \
-v /path/to/flexget/data:/config \
-v /path/to/downloads:/data `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/flexget:latest
@@ -134,6 +139,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e FG_WEBUI_PASSWORD=info` | Set the FlexGet webui password. Pay attention to Bash/YAML reserved characters. |
| `-v /config` | Local path for FlexGet config files. |
| `-v /data` | Default path for downloads. |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
## Environment variables from files (Docker secrets)
@@ -296,6 +302,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **17.08.24:** - Revert to Alpine 3.20 due to 1st party plugin incompatibility with Python 3.12.
* **19.06.24:** - Rebase to Alpine 3.20.
* **20.03.24:** - Rebase to Alpine 3.19.
* **07.10.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar).
* **10.08.23:** - Bump unrar to 6.2.10.
* **03.07.23:** - Initial Release.
+2 -3
View File
@@ -6,7 +6,6 @@ external_type: github_stable
release_type: stable
release_tag: latest
ls_branch: main
build_armhf: false
repo_vars:
- EXT_GIT_BRANCH = 'master'
- EXT_USER = 'flexget'
@@ -25,8 +24,8 @@ repo_vars:
- CI_PORT='5050'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH=''
sponsor_links:
- { name: "FlexGet", url: "https://github.com/sponsors/gazpachoking/" }
+163 -156
View File
@@ -1,156 +1,163 @@
NAME VERSION TYPE
7zip 22.01-r5 apk
APScheduler 3.10.4 python
Brotli 1.1.0 python
CherryPy 18.9.0 python
Flask 3.0.0 python
Flask-Compress 1.14 python
Flask-Cors 4.0.0 python
Flask-Login 0.6.3 python
FlexGet 3.11.20 python
Jinja2 3.1.3 python
MarkupSafe 2.1.3 python
PyRSS2Gen 1.1 python
PyYAML 6.0.1 python
Pygments 2.17.2 python
SQLAlchemy 2.0.24 python
Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
Werkzeug 3.0.1 python
alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk
alpine-release 3.18.6-r0 apk
aniso8601 9.0.1 python
annotated-types 0.6.0 python
apk-tools 2.14.0-r2 apk
attrs 23.2.0 python
autocommand 2.2.2 python
babelfish 0.6.0 python
bash 5.2.15-r5 apk
beautifulsoup4 4.12.2 python
blinker 1.7.0 python
boost1.82-python3 1.82.0-r1 apk
boost1.82-system 1.82.0-r1 apk
brotli-libs 1.0.9-r14 apk
busybox 1.36.1-r5 apk
busybox-binsh 1.36.1-r5 apk
c-ares 1.19.1-r0 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
certifi 2023.11.17 python
cffi 1.16.0 python
charset-normalizer 3.3.2 python
cheroot 10.0.0 python
click 8.1.7 python
cloudscraper 1.2.71 python
colorama 0.4.6 python
coreutils 9.3-r2 apk
cryptography 41.0.7 python
curl 8.5.0-r0 apk
decorator 5.1.1 python
deluge-client 1.9.0 python
feedparser 6.0.11 python
flask-restx 1.3.0 python
gdbm 1.23-r1 apk
greenlet 3.0.3 python
guessit 3.8.0 python
html5lib 1.1 python
icu-data-en 73.2-r2 apk
icu-libs 73.2-r2 apk
idna 3.6 python
importlib-resources 6.1.1 python
inflect 7.0.0 python
itsdangerous 2.1.2 python
jaraco.collections 5.0.0 python
jaraco.context 4.3.0 python
jaraco.functools 4.0.0 python
jaraco.text 3.12.0 python
jq 1.6-r4 apk
jsonschema 4.20.0 python
jsonschema-specifications 2023.12.1 python
libacl 2.3.1-r3 apk
libattr 2.5.1-r4 apk
libbsd 0.11.7-r1 apk
libbz2 1.0.8-r5 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.4-r5 apk
libcurl 8.5.0-r0 apk
libexpat 2.6.0-r0 apk
libffi 3.4.4-r2 apk
libgcc 12.2.1_git20220924-r10 apk
libidn2 2.3.4-r1 apk
libintl 0.21.1-r7 apk
libmd 1.0.4-r2 apk
libncursesw 6.4_p20230506-r0 apk
libpanelw 6.4_p20230506-r0 apk
libproc2 4.0.4-r0 apk
libssl3 3.1.4-r5 apk
libstdc++ 12.2.1_git20220924-r10 apk
libunistring 1.1-r1 apk
linux-pam 1.5.2-r10 apk
loguru 0.7.2 python
markdown-it-py 3.0.0 python
mdurl 0.1.2 python
more-itertools 10.1.0 python
mpdecimal 2.5.1-r2 apk
musl 1.2.4-r2 apk
musl-utils 1.2.4-r2 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk
netcat-openbsd 1.219-r1 apk
nghttp2-libs 1.57.0-r0 apk
nodejs 18.19.1-r0 apk
oniguruma 6.9.8-r1 apk
packaging 23.2 python
pendulum 3.0.0 python
pip 24.0 python
plumbum 1.8.2 python
portend 3.2.0 python
procps-ng 4.0.4-r0 apk
psutil 5.9.7 python
pyc 0.1-r0 apk
pycparser 2.21 python
pydantic 2.5.3 python
pydantic_core 2.14.6 python
pynzb 0.1.0 python
pyparsing 3.1.1 python
python-dateutil 2.8.2 python
python-telegram-bot 12.8 python
python3 3.11.8-r0 apk
python3-pyc 3.11.8-r0 apk
python3-pycache-pyc0 3.11.8-r0 apk
pytz 2023.3.post1 python
qbittorrent-api 2024.1.58 python
readline 8.2.1-r1 apk
rebulk 3.2.0 python
referencing 0.32.0 python
requests 2.31.0 python
requests-toolbelt 1.0.0 python
rich 13.7.0 python
rpds-py 0.16.2 python
rpyc 5.3.1 python
scanelf 1.3.7-r1 apk
setuptools 69.0.3 python
sgmllib3k 1.0.0 python
shadow 4.13-r4 apk
six 1.16.0 python
skalibs 2.13.1.1-r1 apk
soupsieve 2.5 python
sqlite-libs 3.41.2-r3 apk
ssl_client 1.36.1-r5 apk
tempora 5.5.0 python
time-machine 2.14.0 python
tornado 6.4 python
transmission-rpc 7.0.3 python
triangular 2.5.0 npm
typing_extensions 4.9.0 python
tzdata 2023.4 python
tzdata 2024a-r0 apk
tzlocal 5.2 python
urllib3 1.26.18 python
utmps-libs 0.1.2.1-r1 apk
webencodings 0.5.1 python
wheel 0.42.0 python
xz-libs 5.4.3-r0 apk
zc.lockfile 3.0.post1 python
zlib 1.2.13-r1 apk
zxcvbn 4.4.28 python
NAME VERSION TYPE
7zip 23.01-r0 apk
Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
ada-libs 2.7.4-r0 apk
alpine-baselayout 3.4.3-r2 apk
alpine-baselayout-data 3.4.3-r2 apk
alpine-keys 2.4-r1 apk
alpine-release 3.19.3-r0 apk
aniso8601 9.0.1 python
annotated-types 0.6.0 python
apk-tools 2.14.4-r0 apk
apscheduler 3.10.4 python
attrs 23.2.0 python
autocommand 2.2.2 python
babelfish 0.6.0 python
bash 5.2.21-r0 apk
beautifulsoup4 4.12.2 python
blinker 1.7.0 python
boost1.82-python3 1.82.0-r3 apk
boost1.82-system 1.82.0-r3 apk
brotli 1.1.0 python
brotli-libs 1.1.0-r1 apk
busybox 1.36.1-r19 apk
busybox-binsh 1.36.1-r19 apk
c-ares 1.27.0-r0 apk
ca-certificates 20240226-r0 apk
ca-certificates-bundle 20240226-r0 apk
catatonit 0.2.0-r0 apk
certifi 2023.11.17 python
cffi 1.16.0 python
charset-normalizer 3.3.2 python
cheroot 10.0.0 python
cherrypy 18.9.0 python
click 8.1.7 python
cloudscraper 1.2.71 python
colorama 0.4.6 python
coreutils 9.4-r2 apk
coreutils-env 9.4-r2 apk
coreutils-fmt 9.4-r2 apk
coreutils-sha512sum 9.4-r2 apk
cryptography 41.0.7 python
curl 8.9.0-r0 apk
decorator 5.1.1 python
deluge-client 1.9.0 python
feedparser 6.0.11 python
findutils 4.9.0-r5 apk
flask 3.0.0 python
flask-compress 1.14 python
flask-cors 4.0.1 python
flask-login 0.6.3 python
flask-restx 1.3.0 python
flexget 3.11.43 python
gdbm 1.23-r1 apk
greenlet 3.0.3 python
guessit 3.8.0 python
html5lib 1.1 python
icu-data-en 74.1-r0 apk
icu-libs 74.1-r0 apk
idna 3.6 python
importlib-resources 6.1.1 python
inflect 7.0.0 python
itsdangerous 2.1.2 python
jaraco-collections 5.0.0 python
jaraco-context 4.3.0 python
jaraco-functools 4.0.0 python
jaraco-text 3.12.0 python
jinja2 3.1.4 python
jq 1.7.1-r0 apk
jsonschema 4.20.0 python
jsonschema-specifications 2023.12.1 python
libacl 2.3.1-r4 apk
libattr 2.5.1-r5 apk
libbase64 0.5.0-r0 apk
libbsd 0.11.7-r3 apk
libbz2 1.0.8-r6 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.6-r2 apk
libcurl 8.9.0-r0 apk
libexpat 2.6.2-r0 apk
libffi 3.4.4-r3 apk
libgcc 13.2.1_git20231014-r0 apk
libidn2 2.3.4-r4 apk
libintl 0.22.3-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20231125-r0 apk
libpanelw 6.4_p20231125-r0 apk
libproc2 4.0.4-r0 apk
libssl3 3.1.6-r2 apk
libstdc++ 13.2.1_git20231014-r0 apk
libunistring 1.1-r2 apk
linux-pam 1.5.3-r7 apk
loguru 0.7.2 python
markdown-it-py 3.0.0 python
markupsafe 2.1.3 python
mdurl 0.1.2 python
more-itertools 10.1.0 python
mpdecimal 2.5.1-r2 apk
musl 1.2.4_git20230717-r4 apk
musl-utils 1.2.4_git20230717-r4 apk
ncurses-terminfo-base 6.4_p20231125-r0 apk
netcat-openbsd 1.226-r0 apk
nghttp2-libs 1.58.0-r0 apk
nodejs 20.15.1-r0 apk
oniguruma 6.9.9-r0 apk
packaging 23.2 python
pendulum 3.0.0 python
pip 24.2 python
plumbum 1.8.2 python
portend 3.2.0 python
procps-ng 4.0.4-r0 apk
psutil 5.9.7 python
pyc 3.11.9-r0 apk
pycparser 2.21 python
pydantic 2.5.3 python
pydantic-core 2.14.6 python
pygments 2.17.2 python
pynzb 0.1.0 python
pyparsing 3.1.1 python
pyrss2gen 1.1 python
python-dateutil 2.8.2 python
python-telegram-bot 12.8 python
python3 3.11.9-r0 apk
python3-pyc 3.11.9-r0 apk
python3-pycache-pyc0 3.11.9-r0 apk
pytz 2023.3.post1 python
pyyaml 6.0.1 python
qbittorrent-api 2024.1.58 python
readline 8.2.1-r2 apk
rebulk 3.2.0 python
referencing 0.32.0 python
requests 2.32.1 python
requests-toolbelt 1.0.0 python
rich 13.7.0 python
rpds-py 0.16.2 python
rpyc 6.0.0 python
scanelf 1.3.7-r2 apk
setuptools 69.0.3 python
sgmllib3k 1.0.0 python
shadow 4.14.2-r0 apk
six 1.16.0 python
skalibs 2.14.0.1-r0 apk
soupsieve 2.5 python
sqlalchemy 2.0.24 python
sqlite-libs 3.44.2-r0 apk
ssl_client 1.36.1-r19 apk
tempora 5.5.0 python
time-machine 2.15.0 python
tornado 6.4.1 python
transmission-rpc 7.0.3 python
triangular 2.5.0 npm
typing-extensions 4.9.0 python
tzdata 2023.4 python
tzdata 2024a-r0 apk
tzlocal 5.2 python
urllib3 1.26.18 python
utmps-libs 0.1.2.2-r0 apk
webencodings 0.5.1 python
werkzeug 3.0.3 python
wheel 0.44.0 python
xz-libs 5.4.5-r0 apk
zc-lockfile 3.0.post1 python
zlib 1.3.1-r0 apk
zxcvbn 4.4.28 python
+7 -6
View File
@@ -6,16 +6,12 @@ project_url: "http://flexget.com/"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/flexget-banner.png"
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a multipurpose automation tool for all of your media."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_blurb_optional_extras_enabled: false
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: false
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
@@ -26,7 +22,7 @@ param_env_vars:
- { env_var: "FG_CONFIG_FILE", env_value: "/config/.flexget/config.yml", desc: "Set the FlexGet config file location." }
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Local path for FlexGet config files." }
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Local path for FlexGet config files." }
param_usage_include_ports: true
param_ports:
- { external_port: "5050", internal_port: "5050", port_desc: "HTTP port for the WebUI." }
@@ -40,6 +36,8 @@ opt_param_usage_include_vols: true
opt_param_volumes:
- { vol_path: "/data", vol_host_path: "/path/to/downloads", desc: "Default path for downloads." }
readonly_supported: true
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@@ -51,12 +49,15 @@ app_setup_block: |
We have set `/data` as an ***optional path***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you dont understand, or dont want hardlinks/atomic moves.
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
# changelog
changelogs:
- { date: "17.08.24:", desc: "Revert to Alpine 3.20 due to 1st party plugin incompatibility with Python 3.12."}
- { date: "19.06.24:", desc: "Rebase to Alpine 3.20."}
- { date: "20.03.24:", desc: "Rebase to Alpine 3.19."}
- { date: "07.10.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."}
- { date: "10.08.23:", desc: "Bump unrar to 6.2.10."}
- { date: "03.07.23:", desc: "Initial Release." }
@@ -3,7 +3,7 @@
mkdir -p \
/config/.flexget \
/data
/run/flexget-temp
FG_CONFIG_FILE="${FG_CONFIG_FILE:-/config/.flexget/config.yml}"
case "${FG_CONFIG_FILE}" in
@@ -38,6 +38,9 @@ fi
# permissions
lsiown -R abc:abc \
/config \
/run/flexget-temp
lsiown abc:abc \
/data
if grep -qe ' /data ' /proc/mounts; then
lsiown abc:abc \
/data
fi