Compare commits

...
6 changed files with 173 additions and 115 deletions
+5 -12
View File
@@ -1,11 +1,12 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:latest as unrar
FROM ghcr.io/by275/libtorrent:2-alpine3.18 as libtorrent
FROM ghcr.io/linuxserver/baseimage-alpine:3.18
# set version label
ARG UNRAR_VERSION=6.2.10
ARG BUILD_DATE
ARG VERSION
ARG FLEXGET_VERSION
@@ -29,17 +30,6 @@ RUN \
libstdc++ \
nodejs \
python3 && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/local/bin && \
echo "**** install flexget ****" && \
if [ -z ${FLEXGET_VERSION+x} ]; then \
FLEXGET_VERSION=$(curl -s https://api.github.com/repos/flexget/flexget/releases/latest \
@@ -76,6 +66,9 @@ COPY --from=libtorrent /libtorrent-build/usr/lib/python3.11 /lsiopy/lib/python3.
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 5050
VOLUME /config
+5 -12
View File
@@ -1,11 +1,12 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:arm64v8-latest as unrar
FROM ghcr.io/by275/libtorrent:2-alpine3.18 as libtorrent
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18
# set version label
ARG UNRAR_VERSION=6.2.10
ARG BUILD_DATE
ARG VERSION
ARG FLEXGET_VERSION
@@ -29,17 +30,6 @@ RUN \
libstdc++ \
nodejs \
python3 && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/local/bin && \
echo "**** install flexget ****" && \
if [ -z ${FLEXGET_VERSION+x} ]; then \
FLEXGET_VERSION=$(curl -s https://api.github.com/repos/flexget/flexget/releases/latest \
@@ -76,6 +66,9 @@ COPY --from=libtorrent /libtorrent-build/usr/lib/python3.11 /lsiopy/lib/python3.
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 5050
VOLUME /config
Vendored
+41 -36
View File
@@ -16,7 +16,6 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = 'master'
EXT_USER = 'flexget'
EXT_REPO = 'flexget'
@@ -339,12 +338,12 @@ pipeline {
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/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}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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
git add docs/images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi
@@ -435,35 +434,6 @@ pipeline {
"visibility":"public"}' '''
}
}
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "main"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/flexget") | .uuid' || :)
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/flexget",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-flexget",\
"backendUrl":"https://ghcr.io/linuxserver/flexget",\
"publicUrl":"https://lscr.io/linuxserver/flexget"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
}
}
/* ###############
Build Container
############### */
@@ -859,6 +829,41 @@ pipeline {
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
}
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
branch "main"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
echo "Setting up protection for release branch main"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/main/protection \
-d $(jq -c . << EOF
{
"required_status_checks": null,
"enforce_admins": false,
"required_pull_request_reviews": {
"dismiss_stale_reviews": false,
"require_code_owner_reviews": false,
"require_last_push_approval": false,
"required_approving_review_count": 1
},
"restrictions": null,
"required_linear_history": false,
"allow_force_pushes": false,
"allow_deletions": false,
"block_creations": false,
"required_conversation_resolution": true,
"lock_branch": false,
"allow_fork_syncing": false,
"required_signatures": false
}
EOF
) '''
}
}
// Use helper container to sync the current README on master to the dockerhub endpoint
stage('Sync-README') {
when {
+101 -35
View File
@@ -1,6 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-flexget/blob/main/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-flexget/blob/main/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
@@ -74,7 +73,7 @@ The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/d
## Usage
Here are some example snippets to help you get started creating a container.
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
@@ -118,12 +117,11 @@ docker run -d \
-v /path/to/downloads:/data `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/flexget:latest
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
@@ -145,10 +143,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
-e FILE__MYVAR=/run/secrets/mysecretvariable
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications
@@ -157,15 +155,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
id your_user
```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
```
## Docker Mods
@@ -176,12 +179,29 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info
* Shell access whilst the container is running: `docker exec -it flexget /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f flexget`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' flexget`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/flexget:latest`
* Shell access whilst the container is running:
```bash
docker exec -it flexget /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f flexget
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' flexget
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/flexget:latest
```
## Updating Info
@@ -191,38 +211,83 @@ Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull flexget`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d flexget`
* You can also remove the old dangling images: `docker image prune`
* Update images:
* All images:
```bash
docker-compose pull
```
* Single image:
```bash
docker-compose pull flexget
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d flexget
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/flexget:latest`
* Stop the running container: `docker stop flexget`
* Delete the container: `docker rm flexget`
* Update the image:
```bash
docker pull lscr.io/linuxserver/flexget:latest
```
* Stop the running container:
```bash
docker stop flexget
```
* Delete the container:
```bash
docker rm flexget
```
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune`
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once flexget
```
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once flexget
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
**warning**: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@@ -247,5 +312,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **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.
+19 -19
View File
@@ -8,13 +8,13 @@ Flask-Compress 1.14 python
Flask-Cors 4.0.0 python
Flask-Login 0.6.2 python
Flask-RESTful 0.3.10 python
FlexGet 3.9.11 python
FlexGet 3.9.16 python
Jinja2 3.1.2 python
MarkupSafe 2.1.3 python
PyRSS2Gen 1.1 python
PyYAML 6.0.1 python
Pygments 2.16.1 python
SQLAlchemy 2.0.21 python
SQLAlchemy 2.0.22 python
Simple Launcher Executable 1.1.0.14 dotnet
Werkzeug 2.2.3 python
alpine-baselayout 3.4.3-r1 apk
@@ -31,8 +31,8 @@ beautifulsoup4 4.12.2 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-r2 apk
busybox-binsh 1.36.1-r2 apk
busybox 1.36.1-r4 apk
busybox-binsh 1.36.1-r4 apk
c-ares 1.19.1-r0 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
@@ -45,13 +45,13 @@ cloudscraper 1.2.71 python
colorama 0.4.6 python
coreutils 9.3-r1 apk
cryptography 41.0.4 python
curl 8.3.0-r0 apk
curl 8.4.0-r0 apk
decorator 5.1.1 python
deluge-client 1.9.0 python
feedparser 6.0.10 python
flask-restx 1.1.0 python
gdbm 1.23-r1 apk
greenlet 2.0.2 python
greenlet 3.0.0 python
guessit 3.7.1 python
html5lib 1.1 python
icu-data-en 73.2-r2 apk
@@ -70,8 +70,8 @@ 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.3-r0 apk
libcurl 8.3.0-r0 apk
libcrypto3 3.1.4-r0 apk
libcurl 8.4.0-r0 apk
libexpat 2.5.0-r1 apk
libffi 3.4.4-r2 apk
libgcc 12.2.1_git20220924-r10 apk
@@ -81,7 +81,7 @@ 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.3-r0 apk
libssl3 3.1.4-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk
libunistring 1.1-r1 apk
linux-pam 1.5.2-r10 apk
@@ -90,19 +90,19 @@ markdown-it-py 2.2.0 python
mdurl 0.1.2 python
more-itertools 9.1.0 python
mpdecimal 2.5.1-r2 apk
musl 1.2.4-r1 apk
musl-utils 1.2.4-r1 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.55.1-r0 apk
nodejs 18.17.1-r0 apk
nghttp2-libs 1.57.0-r0 apk
nodejs 18.18.2-r0 apk
oniguruma 6.9.8-r1 apk
packaging 23.2 python
pip 23.2.1 python
pip 23.3.1 python
plumbum 1.8.2 python
portend 3.1.0 python
procps-ng 4.0.4-r0 apk
psutil 5.9.5 python
psutil 5.9.6 python
pyc 0.1-r0 apk
pycparser 2.21 python
pydantic 1.10.13 python
@@ -130,18 +130,18 @@ six 1.16.0 python
skalibs 2.13.1.1-r1 apk
soupsieve 2.4.1 python
sqlite-libs 3.41.2-r2 apk
ssl_client 1.36.1-r2 apk
ssl_client 1.36.1-r4 apk
tempora 5.3.0 python
tornado 6.2 python
transmission-rpc 4.3.1 python
triangular 2.5.0 npm
typing_extensions 4.7.1 python
tzdata 2023c-r1 apk
tzlocal 5.0.1 python
urllib3 1.26.16 python
tzlocal 5.1 python
urllib3 1.26.17 python
utmps-libs 0.1.2.1-r1 apk
webencodings 0.5.1 python
wheel 0.41.2 python
wheel 0.41.3 python
xz-libs 5.4.3-r0 apk
zc.lockfile 3.0.post1 python
zlib 1.2.13-r1 apk
+2 -1
View File
@@ -57,5 +57,6 @@ app_setup_block: |
# changelog
changelogs:
- {date: "10.08.23:", desc: "Bump unrar to 6.2.10."}
- { 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." }