Compare commits
56 commits
1.43.0.104
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 492da39dea | |||
|
|
252e2b2b5c | ||
|
|
2d16c92cb3 | ||
|
|
3faea15cf3 | ||
|
|
0a43190ac9 | ||
|
|
68fa685a3c | ||
|
|
7378fb237d | ||
|
|
1a7cf74b6e | ||
|
|
e0048bb650 | ||
|
|
be4e12409d | ||
|
|
302c6e5702 | ||
|
|
ecb66b1ca3 | ||
|
|
e3bbf927d8 | ||
|
|
8551fb88e9 | ||
|
|
9f0882a70e | ||
|
|
d4262cc4e9 | ||
|
|
d63927007f | ||
|
|
a1bac2c988 | ||
|
|
a5ad980f28 | ||
|
|
806b88c37a | ||
|
|
c0b54e8512 | ||
|
|
71640b3d41 | ||
|
|
3644491d23 | ||
|
|
0f27fcacc2 | ||
|
|
727499b357 | ||
|
|
c87f1010a7 | ||
|
|
c14dd5a47c | ||
|
|
70c49ef2d4 | ||
|
|
303d122c01 | ||
|
|
c35f69d4fa | ||
|
|
05ec76e7e9 | ||
|
|
97c9c78c0c | ||
|
|
5be1cb4c1c | ||
|
|
dbabe2bee4 | ||
|
|
b9716badd9 | ||
|
|
54de1404ca | ||
|
|
56d67a38c4 | ||
|
|
c8c020c491 | ||
|
|
bd368dfbf3 | ||
|
|
7c019750ce | ||
|
|
a54fdfbce9 | ||
|
|
8e9b62b828 | ||
|
|
1a6eae12a2 | ||
|
|
fedcb7ae7a | ||
|
|
5be889429b | ||
|
|
5c3b47763c | ||
|
|
521b7d06d8 | ||
|
|
2ca56eb1ce | ||
|
|
9fdb4a4894 | ||
|
|
34130ffa25 | ||
|
|
c25a8e637e | ||
|
|
658c63714c | ||
|
|
d177f3a00e | ||
|
|
603a79335f | ||
|
|
fa08911915 | ||
|
|
3cced1d334 |
13 changed files with 186 additions and 103 deletions
49
.forgejo/workflows/build.yml
Normal file
49
.forgejo/workflows/build.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
name: Build and push image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
schedule:
|
||||
- cron: '0 4 * * *' # daily, picks up LSIO base image updates
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: docker
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: master
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.PUSH_TOKEN }}
|
||||
|
||||
- name: Merge upstream
|
||||
run: |
|
||||
git config user.name "forgejo-runner"
|
||||
git config user.email "runner@forge.jannis.wtf"
|
||||
git fetch origin master
|
||||
git reset --hard origin/master
|
||||
git remote add upstream https://github.com/linuxserver/docker-plex
|
||||
git fetch upstream
|
||||
git merge upstream/master --no-edit
|
||||
git push origin master
|
||||
|
||||
- name: Set up Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Forgejo registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: forge.jannis.wtf
|
||||
username: ${{ secrets.REGISTRY_USER }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: |
|
||||
forge.jannis.wtf/fej/plex-wireguard:latest
|
||||
forge.jannis.wtf/fej/plex-wireguard:${{ github.sha }}
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,3 +1,5 @@
|
|||
# Wireguard configs, you never know
|
||||
wg*.conf
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
|
|
|||
|
|
@ -28,11 +28,13 @@ ENV DEBIAN_FRONTEND="noninteractive" \
|
|||
ATTACHED_DEVICES_PERMS="/dev/dri /dev/dvb -type c"
|
||||
|
||||
RUN \
|
||||
echo "**** install runtime packages ****" && \
|
||||
echo "**** install runtime packages & wireguard ****" && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
udev \
|
||||
wget && \
|
||||
wget \
|
||||
iproute2 \
|
||||
wireguard-tools &&\
|
||||
echo "**** install plex ****" && \
|
||||
if [ -z ${PLEX_RELEASE+x} ]; then \
|
||||
PLEX_RELEASE=$(curl -sX GET 'https://plex.tv/api/downloads/5.json' \
|
||||
|
|
@ -56,6 +58,7 @@ RUN \
|
|||
# add local files
|
||||
COPY root/ /
|
||||
|
||||
|
||||
# add unrar
|
||||
COPY --from=unrar /usr/bin/unrar-ubuntu /usr/bin/unrar
|
||||
|
||||
|
|
|
|||
172
Jenkinsfile
vendored
172
Jenkinsfile
vendored
|
|
@ -77,6 +77,7 @@ pipeline {
|
|||
'''
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.CI_TEST_ATTEMPTED = ''
|
||||
env.LS_RELEASE = sh(
|
||||
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
returnStdout: true).trim()
|
||||
|
|
@ -873,6 +874,7 @@ pipeline {
|
|||
script{
|
||||
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
||||
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
|
||||
env.CI_TEST_ATTEMPTED = 'true'
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
|
|
@ -1075,98 +1077,13 @@ EOF
|
|||
) '''
|
||||
}
|
||||
}
|
||||
// If this is a Pull request send the CI link as a comment on it
|
||||
stage('Pull Request Comment') {
|
||||
when {
|
||||
not {environment name: 'CHANGE_ID', value: ''}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
/* ######################
|
||||
Send status to Discord
|
||||
Comment on PR and Send status to Discord
|
||||
###################### */
|
||||
post {
|
||||
always {
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
script{
|
||||
script {
|
||||
env.JOB_DATE = sh(
|
||||
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
|
||||
returnStdout: true).trim()
|
||||
|
|
@ -1209,6 +1126,87 @@ EOF
|
|||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||
}
|
||||
}
|
||||
script {
|
||||
if (env.GITHUBIMAGE =~ /lspipepr/){
|
||||
if (env.CI_TEST_ATTEMPTED == "true"){
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
}
|
||||
cleanup {
|
||||
sh '''#! /bin/bash
|
||||
|
|
|
|||
14
README.md
14
README.md
|
|
@ -1,5 +1,19 @@
|
|||
<<<<<<< HEAD
|
||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-plex/blob/master/.github/CONTRIBUTING.md -->
|
||||
=======
|
||||
due to the recent purge of Hosters by plex, this fork adds wireguard functionallity to the plex container as a quick workaround. all traffic gets tunneled.
|
||||
|
||||
wireguard onfig file has to be mounted in /etc/wireguard/wg0.conf. e.g.:
|
||||
```
|
||||
volumes:
|
||||
- ./wg0.conf:/etc/wireguard/wg0.conf
|
||||
```
|
||||
|
||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||
<!-- Please read the https://github.com/linuxserver/docker-plex/blob/master/.github/CONTRIBUTING.md -->
|
||||
|
||||
>>>>>>> 72bdfaa (Update README.md)
|
||||
[](https://linuxserver.io)
|
||||
|
||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ bash 5.2.21-2ubuntu4 deb
|
|||
bsdutils 1:2.39.3-9ubuntu6.5 deb
|
||||
ca-certificates 20240203 deb
|
||||
catatonit 0.1.7-1 deb
|
||||
coreutils 9.4-3ubuntu6.1 deb
|
||||
coreutils 9.4-3ubuntu6.2 deb
|
||||
cron 3.0pl1-184ubuntu2 deb
|
||||
cron-daemon-common 3.0pl1-184ubuntu2 deb
|
||||
curl 8.5.0-2ubuntu10.8 deb
|
||||
|
|
@ -34,7 +34,7 @@ grep 3.11-4build1 deb
|
|||
gzip 1.12-1ubuntu3.1 deb
|
||||
hostname 3.23+nmu2ubuntu2 deb
|
||||
init-system-helpers 1.66ubuntu1 deb
|
||||
jq 1.7.1-3ubuntu0.24.04.1 deb
|
||||
jq 1.7.1-3ubuntu0.24.04.2 deb
|
||||
keyboxd 2.4.4-2ubuntu17.4 deb
|
||||
krb5-locales 1.20.1-6ubuntu2.6 deb
|
||||
libacl1 2.3.2-1build1.1 deb
|
||||
|
|
@ -50,7 +50,7 @@ libbz2-1.0 1.0.8-5.1build0.1 deb
|
|||
libc-bin 2.39-0ubuntu8.7 deb
|
||||
libc6 2.39-0ubuntu8.7 deb
|
||||
libcap-ng0 0.8.4-2build2 deb
|
||||
libcap2 1:2.66-5ubuntu2.2 deb
|
||||
libcap2 1:2.66-5ubuntu2.4 deb
|
||||
libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libcrypt1 1:4.4.36-4build1 deb
|
||||
libcurl4t64 8.5.0-2ubuntu10.8 deb
|
||||
|
|
@ -66,10 +66,10 @@ libgpg-error0 1.47-3build2.1 deb
|
|||
libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb
|
||||
libhogweed6t64 3.9.1-2.2build1.1 deb
|
||||
libidn2-0 2.3.7-2build1.1 deb
|
||||
libjq1 1.7.1-3ubuntu0.24.04.1 deb
|
||||
libjq1 1.7.1-3ubuntu0.24.04.2 deb
|
||||
libk5crypto3 1.20.1-6ubuntu2.6 deb
|
||||
libkeyutils1 1.6.3-3build1 deb
|
||||
libkmod2 31+20240202-2ubuntu7.1 deb
|
||||
libkmod2 31+20240202-2ubuntu7.2 deb
|
||||
libkrb5-3 1.20.1-6ubuntu2.6 deb
|
||||
libkrb5support0 1.20.1-6ubuntu2.6 deb
|
||||
libksba8 1.6.6-1build1 deb
|
||||
|
|
@ -106,12 +106,12 @@ libsmartcols1 2.39.3-9ubuntu6.5 deb
|
|||
libsqlite3-0 3.45.1-1ubuntu2.5 deb
|
||||
libss2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libssh-4 0.10.6-2ubuntu0.4 deb
|
||||
libssl3t64 3.0.13-0ubuntu3.7 deb
|
||||
libssl3t64 3.0.13-0ubuntu3.9 deb
|
||||
libstdc++6 14.2.0-4ubuntu2~24.04.1 deb
|
||||
libsystemd0 255.4-1ubuntu8.12 deb
|
||||
libsystemd0 255.4-1ubuntu8.15 deb
|
||||
libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb
|
||||
libtinfo6 6.4+20240113-1ubuntu2 deb
|
||||
libudev1 255.4-1ubuntu8.12 deb
|
||||
libudev1 255.4-1ubuntu8.15 deb
|
||||
libunistring5 1.1-2build1.1 deb
|
||||
libuuid1 2.39.3-9ubuntu6.5 deb
|
||||
libxxhash0 0.8.2-2build1 deb
|
||||
|
|
@ -124,24 +124,24 @@ mount 2.39.3-9ubuntu6.5 deb
|
|||
ncurses-base 6.4+20240113-1ubuntu2 deb
|
||||
ncurses-bin 6.4+20240113-1ubuntu2 deb
|
||||
netcat-openbsd 1.226-1ubuntu2 deb
|
||||
openssl 3.0.13-0ubuntu3.7 deb
|
||||
openssl 3.0.13-0ubuntu3.9 deb
|
||||
passwd 1:4.13+dfsg1-4ubuntu3.2 deb
|
||||
perl-base 5.38.2-3.2ubuntu0.2 deb
|
||||
pinentry-curses 1.2.1-3ubuntu5 deb
|
||||
plexmediaserver 1.43.0.10492-121068a07 deb
|
||||
plexmediaserver 1.43.1.10611-1e34174b1 deb
|
||||
procps 2:4.0.4-4ubuntu3.2 deb
|
||||
publicsuffix 20231001.0357-0.1 deb
|
||||
readline-common 8.2-4build1 deb
|
||||
sed 4.9-2build1 deb
|
||||
sensible-utils 0.0.22 deb
|
||||
systemd-dev 255.4-1ubuntu8.12 deb
|
||||
systemd-dev 255.4-1ubuntu8.15 deb
|
||||
systemd-hwe-hwdb 255.1.7 deb
|
||||
systemd-standalone-sysusers 255.4-1ubuntu8.12 deb
|
||||
systemd-standalone-sysusers 255.4-1ubuntu8.15 deb
|
||||
sysvinit-utils 3.08-6ubuntu3 deb
|
||||
tar 1.35+dfsg-3build1 deb
|
||||
tzdata 2025b-0ubuntu0.24.04.1 deb
|
||||
tzdata 2026a-0ubuntu0.24.04.1 deb
|
||||
ubuntu-keyring 2023.11.28.1 deb
|
||||
udev 255.4-1ubuntu8.12 deb
|
||||
udev 255.4-1ubuntu8.15 deb
|
||||
unminimize 0.2.1 deb
|
||||
util-linux 2.39.3-9ubuntu6.5 deb
|
||||
wget 1.21.4-1ubuntu4.1 deb
|
||||
|
|
|
|||
14
root/etc/s6-overlay/s6-rc.d/init-wireguard/run
Executable file
14
root/etc/s6-overlay/s6-rc.d/init-wireguard/run
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/with-contenv bash
|
||||
|
||||
# Bring up WireGuard if not already up
|
||||
if ! ip link show dev wg0 > /dev/null 2>&1; then
|
||||
wg-quick up wg0
|
||||
fi
|
||||
|
||||
# Monitor wireguard status
|
||||
while true; do
|
||||
if ! ip link show dev wg0 | grep -q "UP"; then
|
||||
wg-quick up wg0
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-wireguard/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-wireguard/type
Normal file
|
|
@ -0,0 +1 @@
|
|||
longrun
|
||||
0
root/etc/s6-overlay/s6-rc.d/init-wireguard/up
Normal file
0
root/etc/s6-overlay/s6-rc.d/init-wireguard/up
Normal file
|
|
@ -1,6 +1,8 @@
|
|||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
# Wait for WireGuard to be up
|
||||
|
||||
echo "Starting Plex Media Server. . . (you can ignore the libusb_init error)"
|
||||
PLEX_MEDIA_SERVER_INFO_MODEL=$(uname -m)
|
||||
export PLEX_MEDIA_SERVER_INFO_MODEL
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue