Compare commits

...

106 Commits

Author SHA1 Message Date
LinuxServer-CI
d5288897f7 Bot Updating Package Versions 2023-01-08 21:48:09 -06:00
LinuxServer-CI
c9be56f0df Bot Updating Package Versions 2023-01-02 04:48:09 +01:00
LinuxServer-CI
7ffac23daa Bot Updating Package Versions 2022-12-25 21:48:15 -06:00
LinuxServer-CI
09d0018747 Bot Updating Package Versions 2022-12-22 03:04:27 +01:00
LinuxServer-CI
49f9389de4 Bot Updating Package Versions 2022-12-19 04:48:14 +01:00
LinuxServer-CI
941102a69f Bot Updating Package Versions 2022-12-12 04:48:15 +01:00
LinuxServer-CI
281e720b3c Bot Updating Package Versions 2022-12-04 21:47:50 -06:00
LinuxServer-CI
a57af7278d Bot Updating Package Versions 2022-11-29 18:44:05 +01:00
LinuxServer-CI
634f4e6c9e Bot Updating Templated Files 2022-11-29 18:41:37 +01:00
Adam
8cf402cc99 Merge pull request #203 from linuxserver/openssl1-master 2022-11-29 17:40:22 +00:00
TheSpad
85eb8bbe30 Add openssl1.1-compat for qbittorrent-cli 2022-11-29 15:56:12 +00:00
LinuxServer-CI
1a5fdb0072 Bot Updating Package Versions 2022-11-27 21:53:39 -06:00
LinuxServer-CI
c3b95fdabf Bot Updating Package Versions 2022-11-21 05:06:39 +01:00
Adam
65621a9ba3 Merge pull request #200 from linuxserver/lsiown-master 2022-11-13 15:34:22 +00:00
TheSpad
5f0e71b743 Use lsiown for init 2022-11-12 14:23:13 +00:00
LinuxServer-CI
121cbb9462 Bot Updating Package Versions 2022-11-12 05:52:56 -06:00
LinuxServer-CI
ca5673a409 Bot Updating Templated Files 2022-11-12 12:48:12 +01:00
LinuxServer-CI
17dabb494e Bot Updating Package Versions 2022-11-06 22:29:08 -06:00
Adam
f196789a76 Merge pull request #198 from linuxserver/readme-v1 2022-10-31 14:12:47 +00:00
TheSpad
16364f2964 Update changelog and tag list 2022-10-31 13:51:29 +00:00
LinuxServer-CI
83b482ab7a Bot Updating Package Versions 2022-10-30 23:37:46 -05:00
LinuxServer-CI
a10c1b8729 Bot Updating Package Versions 2022-10-23 08:30:00 -05:00
LinuxServer-CI
74008d71f2 Bot Updating Package Versions 2022-10-19 15:43:10 +02:00
LinuxServer-CI
f063e52eb9 Bot Updating Package Versions 2022-10-17 00:16:49 -05:00
Adam
134527e4a9 Merge pull request #195 from linuxserver/v3-tidyup 2022-10-10 22:53:18 +01:00
TheSpad
bc0d17401d Remove unnecessary packages 2022-10-10 22:15:05 +01:00
TheSpad
d97b2e7d4a Make init more consistent with s6v3 standard 2022-10-10 22:14:57 +01:00
LinuxServer-CI
60df08ba86 Bot Updating Package Versions 2022-10-10 00:11:55 -05:00
LinuxServer-CI
fe250e22db Bot Updating Package Versions 2022-10-03 06:35:43 +02:00
LinuxServer-CI
3816f56755 Bot Updating Package Versions 2022-09-26 07:18:42 +02:00
LinuxServer-CI
f1eac2644f Bot Updating Package Versions 2022-09-20 11:29:07 -05:00
Adam
384f7ba365 Merge pull request #192 from linuxserver/exec-master 2022-09-20 17:25:59 +01:00
TheSpad
c828bd5ccd Exec notify 2022-09-20 16:42:11 +01:00
LinuxServer-CI
dde6f08046 Bot Updating Package Versions 2022-09-19 00:19:09 -05:00
LinuxServer-CI
56ac0242f7 Bot Updating Templated Files 2022-09-19 07:15:49 +02:00
LinuxServer-CI
18d310d3c0 Bot Updating Package Versions 2022-09-12 07:17:07 +02:00
LinuxServer-CI
b0261130d1 Bot Updating Package Versions 2022-09-05 07:10:23 +02:00
LinuxServer-CI
38ce6e4eaf Bot Updating Package Versions 2022-08-31 15:52:36 -05:00
LinuxServer-CI
6483e582e8 Bot Updating Package Versions 2022-08-31 12:45:00 -05:00
LinuxServer-CI
61d98c0113 Bot Updating Templated Files 2022-08-31 19:42:20 +02:00
Adam
a8abbc12e2 v3ify qbittorrent image (#184) 2022-08-31 18:41:04 +01:00
LinuxServer-CI
97d4b22608 Bot Updating Package Versions 2022-08-29 07:11:28 +02:00
LinuxServer-CI
871008c306 Bot Updating Package Versions 2022-08-12 12:19:44 +02:00
LinuxServer-CI
6b27825bd7 Bot Updating Templated Files 2022-08-12 05:16:39 -05:00
Adam
a3ac4ce7a9 Merge pull request #186 from linuxserver/unrar617-master 2022-08-12 11:15:05 +01:00
TheSpad
beeb9de294 Bump unrar to 6.1.7 2022-08-12 10:35:36 +01:00
LinuxServer-CI
06bec27898 Bot Updating Package Versions 2022-08-07 23:21:33 -05:00
LinuxServer-CI
a081d82d11 Bot Updating Package Versions 2022-08-01 00:02:16 -05:00
LinuxServer-CI
5c73db523b Bot Updating Package Versions 2022-07-25 06:36:28 +02:00
LinuxServer-CI
5318d90428 Bot Updating Package Versions 2022-07-10 23:22:21 -05:00
LinuxServer-CI
d5e03be2cf Bot Updating Package Versions 2022-07-04 06:35:13 +02:00
LinuxServer-CI
ce85d8e0ce Bot Updating Package Versions 2022-06-16 21:03:29 -05:00
thelamer
b0576b6f80 rebase to alpine 3.16 from edge 2022-06-16 22:00:42 -04:00
LinuxServer-CI
bb25c8d32e Bot Updating Package Versions 2022-06-16 12:05:26 -05:00
LinuxServer-CI
4f68b52b04 Bot Updating Package Versions 2022-06-12 23:24:03 -05:00
LinuxServer-CI
72d7f0639c Bot Updating Package Versions 2022-06-05 23:09:21 -05:00
LinuxServer-CI
c0196b94a9 Bot Updating Package Versions 2022-05-31 01:51:26 +02:00
LinuxServer-CI
6c107b1b8e Bot Updating Package Versions 2022-05-26 14:49:48 -05:00
LinuxServer-CI
d688fd93ac Bot Updating Package Versions 2022-05-25 14:46:13 +02:00
Adam
cb886eabea Merge pull request #174 from linuxserver/qbt 2022-05-25 13:43:20 +01:00
TheSpad
10baef17ec Pull qbittorrent-cli from upstream repo 2022-05-25 13:20:51 +01:00
LinuxServer-CI
2196ea8947 Bot Updating Package Versions 2022-05-23 17:51:57 -05:00
LinuxServer-CI
27358397df Bot Updating Package Versions 2022-05-22 23:19:43 -05:00
LinuxServer-CI
7b1fd614bc Bot Updating Package Versions 2022-05-16 06:01:16 +02:00
LinuxServer-CI
151bd9ef20 Bot Updating Package Versions 2022-05-14 07:06:35 +02:00
LinuxServer-CI
1de14c6540 Bot Updating Package Versions 2022-05-08 23:09:54 -05:00
LinuxServer-CI
9e2f4c203c Bot Updating Package Versions 2022-05-02 06:42:55 +02:00
LinuxServer-CI
ff4883d743 Bot Updating Templated Files 2022-05-02 06:38:50 +02:00
LinuxServer-CI
8197ab7ad0 Bot Updating Templated Files 2022-05-02 06:37:41 +02:00
LinuxServer-CI
bf8e5f1962 Bot Updating Package Versions 2022-04-25 06:05:13 +02:00
LinuxServer-CI
987952046f Bot Updating Package Versions 2022-04-17 23:04:32 -05:00
LinuxServer-CI
f0938c4f2b Bot Updating Package Versions 2022-04-15 16:50:35 +02:00
LinuxServer-CI
d17662b2d7 Bot Updating Package Versions 2022-04-10 23:00:34 -05:00
LinuxServer-CI
565e33a035 Bot Updating Package Versions 2022-04-10 06:56:16 +02:00
LinuxServer-CI
f5d7576098 Bot Updating Package Versions 2022-04-03 22:57:29 -05:00
LinuxServer-CI
01863767be Bot Updating Templated Files 2022-03-27 13:36:28 +02:00
Roxedus
1f480ed6a9 Merge pull request #165 from mynameisbogdan/fix-ports-order
Fix ports order
2022-03-27 13:35:11 +02:00
Bogdan
aa8bf3811b fix ports order 2022-03-27 14:15:20 +03:00
LinuxServer-CI
6d4d5ae9d5 Bot Updating Package Versions 2022-03-26 17:51:55 -05:00
LinuxServer-CI
ac95fb5904 Bot Updating Package Versions 2022-03-25 06:49:43 +01:00
LinuxServer-CI
0358202857 Bot Updating Package Versions 2022-03-20 22:52:27 -05:00
LinuxServer-CI
52f469a40d Bot Updating Package Versions 2022-03-14 04:51:12 +01:00
LinuxServer-CI
c067dc6e28 Bot Updating Package Versions 2022-03-07 04:48:25 +01:00
LinuxServer-CI
e9c36e0989 Bot Updating Package Versions 2022-03-03 21:04:03 +01:00
thelamer
afe1de3e7f use bash wrapper for qbt and do not use single bin 2022-03-03 11:54:26 -08:00
thelamer
0ec11ff56a build unrar add 7zip and use qbt bins for alpine 2022-03-03 11:54:26 -08:00
LinuxServer-CI
0ff8121521 Bot Updating Package Versions 2022-03-01 14:42:14 +01:00
LinuxServer-CI
df6b84fcee Bot Updating Templated Files 2022-03-01 14:39:36 +01:00
aptalca
9a6fca93a4 Merge pull request #160 from linuxserver/python
Add python for search plugin support
2022-03-01 08:38:09 -05:00
TheSpad
3f1abde2d5 Add python for search plugin support 2022-03-01 10:21:03 +00:00
LinuxServer-CI
aa53903516 Bot Updating Package Versions 2022-02-28 04:47:38 +01:00
LinuxServer-CI
11399fc0b8 Bot Updating Package Versions 2022-02-27 15:00:19 +01:00
aptalca
d86db02334 Merge pull request #157 from linuxserver/edge
Rebase to Edge, install from repos.
2022-02-27 08:57:50 -05:00
TheSpad
7c0eb4e676 Fix formatting, restore 4.3.3 migration check. 2022-02-23 22:17:26 +00:00
TheSpad
f4688d02a6 Run builder 2022-02-23 21:53:27 +00:00
TheSpad
e219ebb68a Rebase to Edge, install from repos. 2022-02-23 21:50:19 +00:00
LinuxServer-CI
6b33e52b99 Bot Updating Package Versions 2022-02-21 04:56:14 +01:00
LinuxServer-CI
d8521268eb Bot Updating Templated Files 2022-02-20 00:04:50 +01:00
Adam
0589233f7e Merge pull request #156 from rchenzheng/ISSUE-155/missing-jq 2022-02-19 23:03:45 +00:00
Richard Chen Zheng
73869214a6 Include jq for build-stage 2022-02-19 16:42:19 -05:00
LinuxServer-CI
4ca216b6a5 Bot Updating Package Versions 2022-02-17 14:57:18 +01:00
Adam
7e84208a53 Change release logic (#154) 2022-02-17 13:16:55 +00:00
LinuxServer-CI
7c6e03cbee Bot Updating Package Versions 2022-02-14 05:01:04 +01:00
LinuxServer-CI
0d8a8358bc Bot Updating Package Versions 2022-02-07 05:00:34 +01:00
LinuxServer-CI
d8875f90f2 Bot Updating Package Versions 2022-01-24 04:57:38 +01:00
LinuxServer-CI
ffcce8c8ca Bot Updating Package Versions 2022-01-17 05:05:42 +01:00
33 changed files with 435 additions and 523 deletions

View File

@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs qbittorrent" -->

77
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Normal file
View File

@@ -0,0 +1,77 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
- armhf
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
render: bash
validations:
required: true

View File

@@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->

View File

@@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

View File

@@ -0,0 +1,12 @@
name: Comment on invalid interaction
on:
issues:
types:
- labeled
jobs:
add-comment-on-invalid:
if: github.event.label.name == 'invalid'
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1
secrets: inherit

View File

@@ -7,7 +7,7 @@ jobs:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v3.1.0
- name: External Trigger
if: github.ref == 'refs/heads/master'
@@ -18,7 +18,8 @@ jobs:
fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER\". ****"
echo "**** Retrieving external version ****"
EXT_RELEASE=$(echo release-$(curl -s 'https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog' | grep -Po '^\w{3} \w{3} \d{2} \d{4} - .* - \K(v\d+\.\d+\.\d+\.?\d?)$' | head -1 | cut -c2-))
EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for qbittorrent branch master"
@@ -48,8 +49,12 @@ jobs:
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then

View File

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

View File

@@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

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

View File

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

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
- uses: actions/stale@v6.0.1
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."

View File

@@ -1,131 +1,72 @@
FROM ghcr.io/linuxserver/baseimage-alpine:3.15 as build-stage
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
RUN \
echo "**** install packages ****" && \
apk add -U --update --no-cache --virtual=build-dependencies \
autoconf \
automake \
boost-dev \
build-base \
cmake \
curl \
git \
grep \
libtool \
linux-headers \
perl \
pkgconf \
python3-dev \
re2c \
icu-dev \
libexecinfo-dev \
openssl-dev \
qt6-qtbase-dev \
qt6-qttools-dev \
qt6-qtsvg-dev \
zlib-dev && \
mkdir -p /build && \
echo "**** build ninja ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/ninja-build/ninja.git ~/ninja && cd ~/ninja && \
git checkout "$(git tag -l --sort=-v:refname "v*" | head -n 1)" && \
cmake -Wno-dev -B build \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build libtorrent ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/arvidn/libtorrent.git ~/libtorrent && cd ~/libtorrent && \
git checkout "$(git tag -l --sort=-v:refname "v2*" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_LIBDIR="lib" \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build qbittorrent ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION="release-"$(curl -s "https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog" | grep -Po '^\w{3} \w{3} \d{2} \d{4} - .* - \K(v\d+\.\d+\.\d+\.?\d?)$' | head -1 | cut -c2-); \
fi && \
git clone --shallow-submodules --recurse-submodules https://github.com/qbittorrent/qBittorrent.git ~/qbittorrent && cd ~/qbittorrent && \
git checkout "$(git tag -l --sort=-v:refname "${QBITTORRENT_VERSION}" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_CXX_STANDARD_LIBRARIES="/usr/lib/libexecinfo.so" \
-D CMAKE_INSTALL_PREFIX="/build/usr" \
-D GUI=OFF \
-D QT6=ON && \
cmake --build build && \
cmake --install build && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/config/* \
/tmp/*
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
FROM ghcr.io/linuxserver/baseimage-alpine:edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG UNRAR_VERSION=6.1.7
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
#copy build artifacts from build-stage
COPY --from=build-stage /build/usr/ /usr/
COPY --from=build-stage /usr/lib/libtorrent-rasterbar.so.* /usr/lib/
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
p7zip \
geoip \
unzip \
bash \
curl \
icu-libs\
libexecinfo \
icu-libs \
libstdc++ \
openssl \
python3 \
qt6-qtbase \
zlib && \
apk add -U --upgrade --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main/ unrar && \
echo "***** install qbitorrent-cli ****" && \
if [ -z ${QBT_VERSION+x} ]; then \
QBT_VERSION=$(curl -sX GET "https://api.github.com/repos/ludviglundgren/qbittorrent-cli/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
openssl1.1-compat \
p7zip \
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/bin && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:qbittorrent-nox$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
fi && \
apk add -U --upgrade --no-cache \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
QBT_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/ludviglundgren/qbittorrent-cli/releases/download/${QBT_VERSION}/qbittorrent-cli_$(echo $QBT_VERSION | cut -c2-)_linux_amd64.tar.gz" && \
tar xzf \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_VERSION}/qbt-linux-alpine-x64-${QBT_VERSION:1}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/tmp && \
mv /tmp/qbt /usr/bin && \
/qbt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/* \
/var/tmp/*
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 6881 6881/udp 8080
EXPOSE 8080 6881 6881/udp
VOLUME /config

View File

@@ -1,131 +1,72 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 as build-stage
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
RUN \
echo "**** install packages ****" && \
apk add -U --update --no-cache --virtual=build-dependencies \
autoconf \
automake \
boost-dev \
build-base \
cmake \
curl \
git \
grep \
libtool \
linux-headers \
perl \
pkgconf \
python3-dev \
re2c \
icu-dev \
libexecinfo-dev \
openssl-dev \
qt6-qtbase-dev \
qt6-qttools-dev \
qt6-qtsvg-dev \
zlib-dev && \
mkdir -p /build && \
echo "**** build ninja ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/ninja-build/ninja.git ~/ninja && cd ~/ninja && \
git checkout "$(git tag -l --sort=-v:refname "v*" | head -n 1)" && \
cmake -Wno-dev -B build \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build libtorrent ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/arvidn/libtorrent.git ~/libtorrent && cd ~/libtorrent && \
git checkout "$(git tag -l --sort=-v:refname "v2*" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_LIBDIR="lib" \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build qbittorrent ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION="release-"$(curl -s "https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog" | grep -Po '^\w{3} \w{3} \d{2} \d{4} - .* - \K(v\d+\.\d+\.\d+\.?\d?)$' | head -1 | cut -c2-); \
fi && \
git clone --shallow-submodules --recurse-submodules https://github.com/qbittorrent/qBittorrent.git ~/qbittorrent && cd ~/qbittorrent && \
git checkout "$(git tag -l --sort=-v:refname "${QBITTORRENT_VERSION}" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_CXX_STANDARD_LIBRARIES="/usr/lib/libexecinfo.so" \
-D CMAKE_INSTALL_PREFIX="/build/usr" \
-D GUI=OFF \
-D QT6=ON && \
cmake --build build && \
cmake --install build && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/config/* \
/tmp/*
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG UNRAR_VERSION=6.1.7
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
#copy build artifacts from build-stage
COPY --from=build-stage /build/usr/ /usr/
COPY --from=build-stage /usr/lib/libtorrent-rasterbar.so.* /usr/lib/
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
p7zip \
geoip \
unzip \
bash \
curl \
icu-libs \
libexecinfo \
libstdc++ \
openssl \
python3 \
qt6-qtbase \
zlib && \
apk add -U --upgrade --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main/ unrar && \
echo "***** install qbitorrent-cli ****" && \
if [ -z ${QBT_VERSION+x} ]; then \
QBT_VERSION=$(curl -sX GET "https://api.github.com/repos/ludviglundgren/qbittorrent-cli/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
openssl1.1-compat \
p7zip \
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/bin && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:qbittorrent-nox$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
fi && \
apk add -U --upgrade --no-cache \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
QBT_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/ludviglundgren/qbittorrent-cli/releases/download/${QBT_VERSION}/qbittorrent-cli_$(echo $QBT_VERSION | cut -c2-)_linux_amd64.tar.gz" && \
tar xzf \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_VERSION}/qbt-linux-alpine-arm64-${QBT_VERSION:1}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/tmp && \
mv /tmp/qbt /usr/bin && \
/qbt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/* \
/var/tmp/*
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 6881 6881/udp 8080
EXPOSE 8080 6881 6881/udp
VOLUME /config

View File

@@ -1,131 +1,72 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 as build-stage
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
RUN \
echo "**** install packages ****" && \
apk add -U --update --no-cache --virtual=build-dependencies \
autoconf \
automake \
boost-dev \
build-base \
cmake \
curl \
git \
grep \
libtool \
linux-headers \
perl \
pkgconf \
python3-dev \
re2c \
icu-dev \
libexecinfo-dev \
openssl-dev \
qt6-qtbase-dev \
qt6-qttools-dev \
qt6-qtsvg-dev \
zlib-dev && \
mkdir -p /build && \
echo "**** build ninja ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/ninja-build/ninja.git ~/ninja && cd ~/ninja && \
git checkout "$(git tag -l --sort=-v:refname "v*" | head -n 1)" && \
cmake -Wno-dev -B build \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build libtorrent ****" && \
git clone --shallow-submodules --recurse-submodules https://github.com/arvidn/libtorrent.git ~/libtorrent && cd ~/libtorrent && \
git checkout "$(git tag -l --sort=-v:refname "v2*" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_INSTALL_LIBDIR="lib" \
-D CMAKE_INSTALL_PREFIX="/usr" && \
cmake --build build && \
cmake --install build && \
echo "**** build qbittorrent ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION="release-"$(curl -s "https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog" | grep -Po '^\w{3} \w{3} \d{2} \d{4} - .* - \K(v\d+\.\d+\.\d+\.?\d?)$' | head -1 | cut -c2-); \
fi && \
git clone --shallow-submodules --recurse-submodules https://github.com/qbittorrent/qBittorrent.git ~/qbittorrent && cd ~/qbittorrent && \
git checkout "$(git tag -l --sort=-v:refname "${QBITTORRENT_VERSION}" | head -n 1)" && \
cmake -Wno-dev -G Ninja -B build \
-D CMAKE_BUILD_TYPE="release" \
-D CMAKE_CXX_STANDARD=17 \
-D CMAKE_CXX_STANDARD_LIBRARIES="/usr/lib/libexecinfo.so" \
-D CMAKE_INSTALL_PREFIX="/build/usr" \
-D GUI=OFF \
-D QT6=ON && \
cmake --build build && \
cmake --install build && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/config/* \
/tmp/*
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG UNRAR_VERSION=6.1.7
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
#copy build artifacts from build-stage
COPY --from=build-stage /build/usr/ /usr/
COPY --from=build-stage /usr/lib/libtorrent-rasterbar.so.* /usr/lib/
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
p7zip \
geoip \
unzip \
bash \
curl \
icu-libs \
libexecinfo \
libstdc++ \
openssl \
python3 \
qt6-qtbase \
zlib && \
apk add -U --upgrade --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main/ unrar && \
echo "***** install qbitorrent-cli ****" && \
if [ -z ${QBT_VERSION+x} ]; then \
QBT_VERSION=$(curl -sX GET "https://api.github.com/repos/ludviglundgren/qbittorrent-cli/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
openssl1.1-compat \
p7zip \
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/bin && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:qbittorrent-nox$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
fi && \
apk add -U --upgrade --no-cache \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
QBT_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases" \
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/ludviglundgren/qbittorrent-cli/releases/download/${QBT_VERSION}/qbittorrent-cli_$(echo $QBT_VERSION | cut -c2-)_linux_amd64.tar.gz" && \
tar xzf \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_VERSION}/qbt-linux-alpine-arm-${QBT_VERSION:1}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/tmp && \
mv /tmp/qbt /usr/bin && \
/qbt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/* \
/var/tmp/*
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 6881 6881/udp 8080
EXPOSE 8080 6881 6881/udp
VOLUME /config

30
Jenkinsfile vendored
View File

@@ -25,6 +25,9 @@ pipeline {
DEV_DOCKERHUB_IMAGE = 'lsiodev/qbittorrent'
PR_DOCKERHUB_IMAGE = 'lspipepr/qbittorrent'
DIST_IMAGE = 'alpine'
DIST_TAG = 'edge'
DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/edge/community/'
DIST_REPO_PACKAGES = 'qbittorrent-nox'
MULTIARCH='true'
CI='true'
CI_WEB='true'
@@ -56,7 +59,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
}
script{
env.LS_RELEASE_NUMBER = sh(
@@ -99,14 +102,15 @@ pipeline {
/* ########################
External Release Tagging
######################## */
// If this is a custom command to determine version use that command
stage("Set tag custom bash"){
// If this is an alpine repo change for external version determine an md5 from the version string
stage("Set tag Alpine Repo"){
steps{
script{
env.EXT_RELEASE = sh(
script: ''' echo release-$(curl -s 'https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog' | grep -Po '^\\w{3} \\w{3} \\d{2} \\d{4} - .* - \\K(v\\d+\\.\\d+\\.\\d+\\.?\\d?)$' | head -1 | cut -c2-) ''',
script: '''curl -sL "${DIST_REPO}x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:'"${DIST_REPO_PACKAGES}"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://' ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
env.RELEASE_LINK = 'alpine_repo'
}
}
}
@@ -277,7 +281,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -343,9 +347,11 @@ pipeline {
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template"
git rm unraid/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Removing Deprecated Unraid Template' || :
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
@@ -708,7 +714,7 @@ pipeline {
-e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \
-t ghcr.io/linuxserver/ci:latest \
python /ci/ci.py'''
python3 test_build.py'''
}
}
}
@@ -909,11 +915,11 @@ pipeline {
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo "Updating external repo packages to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Repo Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''

View File

@@ -46,25 +46,26 @@ The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/qbittorrent` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/qbittorrent:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Description |
| :----: | --- |
| latest | Stable qbittorrent releases |
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable qbittorrent releases |
| libtorrentv1 | ✅ | Static qbittorrent builds using libtorrent v1 |
## Application Setup
@@ -72,7 +73,6 @@ The webui is at `<your-ip>:8080` and the default username/password is `admin/adm
Change username/password via the webui in the webui section of settings.
### WEBUI_PORT variable
Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port.
@@ -85,7 +85,7 @@ If you have no webui , check the file /config/qBittorrent/qBittorrent.conf
edit or add the following lines
```
```text
WebUI\Address=*
WebUI\ServerDomains=*
@@ -104,7 +104,7 @@ Here are some example snippets to help you get started creating a container.
version: "2.1"
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
@@ -115,9 +115,9 @@ services:
- /path/to/appdata/config:/config
- /path/to/downloads:/downloads
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
```
@@ -130,13 +130,13 @@ docker run -d \
-e PGID=1000 \
-e TZ=Europe/London \
-e WEBUI_PORT=8080 \
-p 8080:8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8080:8080 \
-v /path/to/appdata/config:/config \
-v /path/to/downloads:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/qbittorrent
lscr.io/linuxserver/qbittorrent:latest
```
## Parameters
@@ -145,9 +145,9 @@ Container images are configured using parameters passed at runtime (such as thos
| Parameter | Function |
| :----: | --- |
| `-p 8080` | WebUI |
| `-p 6881` | tcp connection port |
| `-p 6881/udp` | udp connection port |
| `-p 8080` | http gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
@@ -198,7 +198,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' qbittorrent`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/qbittorrent`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/qbittorrent:latest`
## Updating Info
@@ -216,7 +216,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/qbittorrent`
* Update the image: `docker pull lscr.io/linuxserver/qbittorrent:latest`
* Stop the running container: `docker stop qbittorrent`
* Delete the container: `docker rm qbittorrent`
* 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)
@@ -264,6 +264,16 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **29.11.22:** - Add openssl1.1-compat for qbittorrent-cli.
* **31.10.22:** - Add libtorrentv1 branch.
* **31.08.22:** - Rebase to Alpine Edge again to follow latest releases.
* **12.08.22:** - Bump unrar to 6.1.7.
* **16.06.22:** - Rebase to Alpine 3.16 from edge.
* **25.05.22:** - Fetch qbitorrent-cli from upstream repo.
* **02.03.22:** - Add unrar, 7zip, and qbitorrent-cli.
* **01.03.22:** - Add python for search plugin support.
* **23.02.22:** - Rebase to Alpine Edge, install from Alpine repos.
* **19.02.22:** - Add jq to build-stage
* **07.01.22:** - Rebase to Alpine, build from source.
* **06.01.22:** - Deprecate unstable branch.
* **10.02.21:** - Rebase to focal.

View File

@@ -2,8 +2,7 @@
# jenkins variables
project_name: docker-qbittorrent
external_type: na
custom_version_command: "echo release-$(curl -s 'https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog' | grep -Po '^\\\\w{3} \\\\w{3} \\\\d{2} \\\\d{4} - .* - \\\\K(v\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.?\\\\d?)$' | head -1 | cut -c2-)"
external_type: alpine_repo
release_type: stable
release_tag: latest
ls_branch: master
@@ -16,6 +15,9 @@ repo_vars:
- DEV_DOCKERHUB_IMAGE = 'lsiodev/qbittorrent'
- PR_DOCKERHUB_IMAGE = 'lspipepr/qbittorrent'
- DIST_IMAGE = 'alpine'
- DIST_TAG = 'edge'
- DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/edge/community/'
- DIST_REPO_PACKAGES = 'qbittorrent-nox'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'

View File

@@ -1,79 +1,67 @@
alpine-baselayout-3.2.0-r18
alpine-baselayout-3.4.0-r0
alpine-baselayout-data-3.4.0-r0
alpine-keys-2.4-r1
apk-tools-2.12.7-r3
bash-5.1.8-r0
brotli-libs-1.0.9-r5
busybox-1.34.1-r3
ca-certificates-20191127-r7
ca-certificates-bundle-20191127-r7
coreutils-9.0-r2
curl-7.80.0-r0
dbus-libs-1.12.20-r4
double-conversion-3.1.5-r0
expat-2.4.1-r0
gdbm-1.22-r0
geoip-1.6.12-r2
glib-2.70.1-r0
icu-libs-69.1-r1
libacl-2.2.53-r0
libattr-2.5.1-r1
libb2-0.98.1-r1
libblkid-2.37.2-r1
libbsd-0.11.3-r1
libbz2-1.0.8-r1
apk-tools-2.12.10-r1
bash-5.2.15-r0
brotli-libs-1.0.9-r10
busybox-1.35.0-r29
busybox-binsh-1.35.0-r29
ca-certificates-20221203-r1
ca-certificates-bundle-20221203-r1
coreutils-9.1-r0
curl-7.87.0-r1
dbus-libs-1.14.4-r0
double-conversion-3.2.1-r0
gdbm-1.23-r0
glib-2.74.4-r0
icu-data-en-72.1-r1
icu-libs-72.1-r1
jq-1.6-r2
libacl-2.3.1-r1
libattr-2.5.1-r2
libb2-0.98.1-r2
libblkid-2.38.1-r2
libbz2-1.0.8-r4
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1l-r8
libcurl-7.80.0-r0
libexecinfo-1.1-r1
libffi-3.4.2-r1
libgcc-10.3.1_git20211027-r0
libgomp-10.3.1_git20211027-r0
libice-1.0.10-r0
libintl-0.21-r0
libmd-1.0.3-r0
libmount-2.37.2-r1
libpcre2-16-10.39-r0
libproc-3.3.17-r0
libretls-3.3.4-r2
libsm-1.2.3-r0
libssl1.1-1.1.1l-r8
libstdc++-10.3.1_git20211027-r0
libuuid-2.37.2-r1
libx11-1.7.2-r0
libxau-1.0.9-r0
libxcb-1.14-r2
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxmu-1.1.3-r0
libxt-1.2.1-r0
linux-pam-1.5.2-r0
libcrypto1.1-1.1.1s-r0
libcrypto3-3.0.7-r2
libcurl-7.87.0-r1
libexpat-2.5.0-r0
libffi-3.4.4-r0
libgcc-12.2.1_git20220924-r8
libgomp-12.2.1_git20220924-r8
libintl-0.21.1-r1
libmount-2.38.1-r2
libpcre2-16-10.42-r0
libproc-3.3.17-r2
libssl1.1-1.1.1s-r0
libssl3-3.0.7-r2
libstdc++-12.2.1_git20220924-r8
libtorrent-rasterbar-2.0.8-r2
linux-pam-1.5.2-r1
mpdecimal-2.5.1-r1
musl-1.2.2-r7
musl-utils-1.2.2-r7
ncurses-libs-6.3_p20211120-r0
ncurses-terminfo-base-6.3_p20211120-r0
nghttp2-libs-1.46.0-r0
openssl-1.1.1l-r8
p7zip-16.02-r4
pcre-8.45-r1
procps-3.3.17-r0
python3-3.9.7-r4
qt6-qtbase-6.2.1-r2
readline-8.1.1-r0
s6-ipcserver-2.11.0.0-r0
scanelf-1.3.3-r0
shadow-4.8.1-r1
skalibs-2.11.0.0-r0
sqlite-libs-3.36.0-r0
ssl_client-1.34.1-r3
tzdata-2021e-r0
unrar-6.0.7-r0
unzip-6.0-r9
utmps-0.1.0.3-r0
xdg-utils-1.1.3-r0
xprop-1.2.5-r0
xset-1.2.4-r0
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
zstd-libs-1.5.0-r0
musl-1.2.3-r4
musl-utils-1.2.3-r4
ncurses-libs-6.4_p20221231-r0
ncurses-terminfo-base-6.4_p20221231-r0
nghttp2-libs-1.51.0-r0
oniguruma-6.9.8-r0
openssl-3.0.7-r2
openssl1.1-compat-1.1.1s-r0
p7zip-17.04-r3
pcre2-10.42-r0
procps-3.3.17-r2
python3-3.11.1-r2
qbittorrent-nox-4.5.0-r1
qt6-qtbase-6.4.2-r0
readline-8.2.0-r0
scanelf-1.3.5-r1
shadow-4.13-r0
skalibs-2.12.0.1-r0
sqlite-libs-3.40.1-r0
ssl_client-1.35.0-r29
tzdata-2022g-r0
utmps-libs-0.1.2.0-r1
xz-5.4.0-r1
xz-libs-5.4.0-r1
zlib-1.2.13-r0

View File

@@ -17,6 +17,7 @@ available_architectures:
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable qbittorrent releases" }
- { tag: "libtorrentv1", desc: "Static qbittorrent builds using libtorrent v1" }
# container parameters
common_param_env_vars_enabled: true
@@ -27,9 +28,9 @@ param_volumes:
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Location of downloads on disk." }
param_usage_include_ports: true
param_ports:
- { external_port: "8080", internal_port: "8080", port_desc: "WebUI" }
- { external_port: "6881", internal_port: "6881", port_desc: "tcp connection port" }
- { external_port: "6881", internal_port: "6881/udp", port_desc: "udp connection port" }
- { external_port: "8080", internal_port: "8080", port_desc: "http gui" }
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
@@ -46,7 +47,6 @@ app_setup_block: |
Change username/password via the webui in the webui section of settings.
### WEBUI_PORT variable
Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port.
@@ -59,7 +59,7 @@ app_setup_block: |
edit or add the following lines
```
```text
WebUI\Address=*
WebUI\ServerDomains=*
@@ -69,6 +69,16 @@ app_setup_block: |
# changelog
changelogs:
- { date: "29.11.22:", desc: "Add openssl1.1-compat for qbittorrent-cli." }
- { date: "31.10.22:", desc: "Add libtorrentv1 branch." }
- { date: "31.08.22:", desc: "Rebase to Alpine Edge again to follow latest releases." }
- { date: "12.08.22:", desc: "Bump unrar to 6.1.7." }
- { date: "16.06.22:", desc: "Rebase to Alpine 3.16 from edge." }
- { date: "25.05.22:", desc: "Fetch qbitorrent-cli from upstream repo." }
- { date: "02.03.22:", desc: "Add unrar, 7zip, and qbitorrent-cli." }
- { date: "01.03.22:", desc: "Add python for search plugin support." }
- { date: "23.02.22:", desc: "Rebase to Alpine Edge, install from Alpine repos." }
- { date: "19.02.22:", desc: "Add jq to build-stage" }
- { date: "07.01.22:", desc: "Rebase to Alpine, build from source." }
- { date: "06.01.22:", desc: "Deprecate unstable branch." }
- { date: "10.02.21:", desc: "Rebase to focal." }

View File

@@ -1,26 +0,0 @@
#!/usr/bin/with-contenv bash
# make our folder
mkdir -p /config/qBittorrent
# copy config
[[ ! -e /config/qBittorrent/qBittorrent.conf ]] && \
cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf
# v4.3.3 BT_backup migration
[[ -d /config/data/qBittorrent/BT_backup/ ]] && \
mv /config/qBittorrent/BT_backup/ /config/qBittorrent/BT_backup.bak/ && \
mkdir /config/qBittorrent/BT_backup/ && \
cp -a /config/data/qBittorrent/BT_backup/. /config/qBittorrent/BT_backup/ && \
mv /config/data/qBittorrent/BT_backup/ /config/data/qBittorrent/BT_backup.old/
# chown download directory if currently not set to abc
if [[ -d /downloads ]]; then
if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then
chown -R abc:abc /downloads
fi
fi
# permissions
chown -R abc:abc \
/config

View File

@@ -0,0 +1,20 @@
#!/usr/bin/with-contenv bash
# make our folder
mkdir -p /config/qBittorrent
# copy default config
if [[ ! -f /config/qBittorrent/qBittorrent.conf ]]; then
cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf
fi
# chown download directory if currently not set to abc
if [[ -d /downloads ]]; then
if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then
lsiown -R abc:abc /downloads
fi
fi
# permissions
lsiown -R abc:abc \
/config

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-qbittorrent-config/run

View File

@@ -0,0 +1 @@
3

View File

@@ -0,0 +1,7 @@
#!/usr/bin/with-contenv bash
WEBUI_PORT=${WEBUI_PORT:-8080}
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}"

View File

@@ -0,0 +1 @@
longrun

View File

@@ -1,6 +0,0 @@
#!/usr/bin/with-contenv bash
WEBUI_PORT=${WEBUI_PORT:-8080}
exec \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}"

14
root/usr/bin/qbt Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/with-contenv bash
# qbt bash wrapper to prompt user when trying to save password
if [[ "$@" == "settings set password" ]]; then
echo "Setting password is not supported"
echo "Please use --ask-for-password or --password"
elif [[ "$@" == "settings set"* ]]; then
/qbt/qbt "$@"
elif [[ "$@" != *"--ask-for-password"* ]] && [[ "$@" != *"--password"* ]];then
echo "Please use --ask-for-password or --password and ensure username/url are set"
/qbt/qbt "$@"
else
/qbt/qbt "$@"
fi