diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8053178 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,36 @@ +FROM alpine:3.15 + +ARG DOCKER_USER=dockerapp +ARG USER_HOME=/home/$DOCKER_USER +ARG DOCKER_GID=5000 +ARG YCAST_PORT=8010 + +EXPOSE $YCAST_PORT + +ENV YCAST_PORT=$YCAST_PORT + +RUN adduser -h $USER_HOME -s /bin/sh -u $DOCKER_GID -D $DOCKER_USER + +RUN apk update \ + && apk add python3 py3-setuptools dumb-init \ + && apk add --virtual build-tools gcc python3-dev libpq-dev musl-dev \ + && apk add jpeg-dev zlib-dev + +ARG SRC_HOME=/usr/local/src +ARG YCAST_SRC=$SRC_HOME/ycast +RUN mkdir -p $YCAST_SRC + +COPY ycast/* $YCAST_SRC/ +COPY setup.py README.md $SRC_HOME/ +COPY examples/stations.yml.example /etc/stations.yml + +RUN cd $SRC_HOME && python3 $SRC_HOME/setup.py build && python3 $SRC_HOME/setup.py install + +RUN apk del build-tools + +COPY docker/entrypoint.sh /usr/local/bin/ + +WORKDIR $USER_HOME +USER $DOCKER_USER + +ENTRYPOINT [ "/usr/local/bin/entrypoint.sh"] diff --git a/README.md b/README.md index c3c30d1..c92d3a8 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Any reported device helps the community to see which AVRs work properly and whic * Denon AVR-X_000 series (AVR-X1000, AVR-2000, AVR-X3000, AVR-X4000) * Denon AVR-1912 + * Denon AVR-3313 * Denon AVR-X2200W * Denon CEOL piccolo N5 * Denon CEOL N9 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9e3f519 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2.2' +services: + ycast: + build: + context: . + dockerfile: Dockerfile + image: + af/ycast + ports: + - "8080:8010" + mem_limit: 64M diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 0000000..cea48b1 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,9 @@ +#!/usr/bin/dumb-init /bin/sh + +SCRIPT_DIR=$(dirname $(readlink -f $0)) +cd $SCRIPT_DIR + +CMD="python3 -m ycast -p $YCAST_PORT -c /etc/stations.yml -d" +echo $CMD +$CMD + diff --git a/ycast/server.py b/ycast/server.py index 6d963da..6029dcc 100644 --- a/ycast/server.py +++ b/ycast/server.py @@ -121,7 +121,7 @@ def vtuner_redirect(url): @app.route('/setupapp/', methods=['GET', 'POST']) def upstream(path): - if request.args.get('token') == '0': + if request.args.get('token') == '0' or 'SignIn.asp' in path: return vtuner.get_init_token() if request.args.get('search'): return station_search() @@ -154,7 +154,6 @@ def landing(path=''): page.set_count(1) return page.to_string() - @app.route('/' + PATH_ROOT + '/' + PATH_MY_STATIONS + '/', methods=['GET', 'POST']) def my_stations_landing():