Add aarch64 support and Channels DVR support (#49)

* add gitattributes for windows dev

* initial copy of dockerfile

* Add support for pi4 (aarch64); add support for Channels DVR updates

* fix IP in example

Co-authored-by: Nick Marnik <nkmhockey@gmail.com>
This commit is contained in:
Nick Marnik
2021-04-22 15:54:23 -04:00
committed by GitHub
parent 5f0a4daff0
commit 891180c2f4
4 changed files with 125 additions and 0 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto eol=lf

95
Dockerfile-aarch64 Normal file
View File

@@ -0,0 +1,95 @@
FROM arm64v8/alpine:latest
LABEL maintainer="taylorbourne taylorbourne@me.com.com"
# Install S6 overlay
ARG S6_OVERLAY_RELEASE=https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-aarch64.tar.gz
ENV S6_OVERLAY_RELEASE=${S6_OVERLAY_RELEASE}
ADD ${S6_OVERLAY_RELEASE} /tmp/s6overlay.tar.gz
RUN tar xzf /tmp/s6overlay.tar.gz -C / \
&& rm /tmp/s6overlay.tar.gz
# Add packages
RUN apk upgrade --update --no-cache \
&& apk add --no-cache \
ca-certificates \
curl \
tzdata \
bash \
coreutils \
shadow \
ffmpeg \
vlc \
gnutls-utils
# pi4 library to run lazystream: https://github.com/ljfranklin/alpine-pkg-glibc/releases/tag/2.32-r0-arm64
RUN wget https://github.com/ljfranklin/alpine-pkg-glibc/releases/download/2.32-r0-arm64/glibc-2.32-r0.apk
RUN apk add --allow-untrusted glibc-2.32-r0.apk
RUN wget https://github.com/ljfranklin/alpine-pkg-glibc/releases/download/2.32-r0-arm64/glibc-bin-2.32-r0.apk
RUN apk add --allow-untrusted glibc-bin-2.32-r0.apk
RUN wget https://github.com/ljfranklin/alpine-pkg-glibc/releases/download/2.32-r0-arm64/glibc-i18n-2.32-r0.apk
RUN apk add --allow-untrusted glibc-i18n-2.32-r0.apk
# Update Timezone
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Add xTeve and guide2go
RUN wget https://github.com/xteve-project/xTeVe-Downloads/raw/master/xteve_linux_arm64.zip -O temp.zip; unzip temp.zip -d /usr/bin/; rm temp.zip
# Add lazystream
RUN wget https://github.com/tarkah/lazystream/releases/download/v1.11.4/lazystream-v1.11.4-aarch64-unknown-linux-gnu.tar.gz -O lazystream.tar.gz; \
tar xzf lazystream.tar.gz; \
mv ././lazystream /usr/bin/lazystream; \
rm lazystream.tar.gz; \
rm -rf lazystream/
# Add abc user
RUN groupmod -g 1000 users && \
useradd -u 911 -U -d /home/abc -s /bin/bash abc && \
usermod -G users abc
# Copy root folder
COPY root/ /
# Volumes
VOLUME /config
VOLUME /playlists
VOLUME /guide2go
VOLUME /xteve
VOLUME /tmp/xteve
# Set executable permissions
RUN chmod +x /usr/bin/lazystream
RUN chmod +x /usr/bin/xteve
RUN chmod +x /usr/bin/guide2go
# Build arg
ARG XTEVE_PORT=34400
# Env
ENV PUID=1000 \
PGID=1000 \
XTEVE_PORT=${XTEVE_PORT} \
use_xTeveAPI=yes \
use_lazystream=yes \
include_nhl=yes\
include_mlb=yes \
cdn=akc \
use_guide2go=no \
YamlList="CBLguide.yaml SATguide.yaml SATSport.yaml" \
use_embyAPI=no \
embyIP= \
embyPORT=8096 \
embyApiKey= \
embyID= \
use_plexAPI=no
# Expose Port
EXPOSE ${XTEVE_PORT}
ENTRYPOINT [ "/init" ]

View File

@@ -99,4 +99,21 @@ if [ "$use_plexAPI" = "yes" ]; then
fi
fi
# update Channels via API
if [ "$use_channelsAPI" = "yes" ]; then
echo "Updating Channels..."
if [ -z "$channelsUpdateM3uURL" ]; then
echo "no Channels M3U URL provided"
else
curl -s -X POST "$channelsUpdateM3uURL"
sleep 1
fi
if [ -z "$channelsUpdateXmltvURL" ]; then
echo "no Channels XMLTV URL provided"
else
curl -s -X PUT "$channelsUpdateXmltvURL"
sleep 1
fi
fi
exit

View File

@@ -44,3 +44,15 @@ embyID=
# plexUpdateURL.
use_plexAPI=no
plexUpdateURL=
### Channels DVR
# Only necessary if xTeVe API is active
# To find your Channels Update URL navigate to your Channels server in chrome (eg, http://192.168.1.1:8089),
# and open chrome developer tools (press F12). Once developer tools is open find and click the "Refresh
# M3U" and "Refresh XMLTV" links in Channels and then look at the developer tools window. Right click the line and
# go to copy -> Copy link address. URL examples:
# channelsUpdateM3uURL -> http://192.168.1.1:8089/providers/m3u/sources/<source name>/refresh
# channelsUpdateXmltvURL -> http://192.168.1.1:8089/dvr/lineups/XMLTV-<source name>
use_channelsAPI=no
channelsUpdateM3uURL=
channelsUpdateXmltvURL=