diff --git a/Dockerfile b/Dockerfile index 9c2a9f4..01bec1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,17 @@ FROM python -COPY websockify-*.tar.gz / +RUN wget -P / $(curl https://api.github.com/repos/novnc/websockify/releases/latest | jq -r '.tarball_url') +RUN python3 -m pip install novnc-websockify-*.tar.gz +RUN rm -rf /novnc-websockify-* /root/.cache -RUN python3 -m pip install websockify-*.tar.gz -RUN rm -rf /websockify-* /root/.cache +RUN wget -P / https://github.com/rickparrish/fTelnet/archive/refs/heads/master.zip +WORKDIR /web +RUN unzip /fTelnet-master.zip &&\ + cp fTelnet-master/release/ftelnet.css . &&\ + cp fTelnet-master/release/ftelnet.norip.xfer.min.js . &&\ + cp -r fTelnet-master/release/fonts fTelnet-master/release/keyboard . &&\ + rm -rf /fTelnet-master.zip fTelnet-master +ADD web/index.html web/custom.css /web VOLUME /data @@ -13,7 +21,7 @@ WORKDIR /opt/websockify ENV LOCALPORT="80" ENV DEST="box.imzadi.de:23" -ENV OPTS="--web /data" +ENV OPTS="--web /web" RUN cat <<'EOF' > /entrypoint.sh #!/bin/sh diff --git a/web/custom.css b/web/custom.css new file mode 100644 index 0000000..ffe619f --- /dev/null +++ b/web/custom.css @@ -0,0 +1,125 @@ +body { + background-color: #777777; + color: #333333; +} + +/* fTelnet */ + +.fTelnetContainer { + box-sizing: content-box; + margin: auto; +} + +.fTelnetContainer .fTelnetButtons, +.fTelnetContainer .fTelnetScrollback, +.fTelnetContainer .fTelnetFocusWarning, +.fTelnetContainer .fTelnetClientContainer, +.fTelnetContainer .fTelnetStatusBar { + box-sizing: content-box; +} + +.fTelnetContainer canvas { + display: block; + margin: auto; +} + +.fTelnetClientContainer { + position: relative; + margin: auto; +} + +.fTelnetConnectButton { + background-color: #aaaaaa; + border: 1px solid black; + border-radius: 5px; + color: #333333; + display: inline-block; + font: 14px Arial, Helvetica, sans-serif; + margin-right: 10px; + padding: 8px 12px; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); +} + +.fTelnetCrtCanvas { + display: block; + margin: auto; +} + +.fTelnetFocusWarning { + background-color: red; + color: white; + font: 14px Arial, Helvetica, sans-serif; + margin: auto; + padding: 5px; + text-align: center; +} + +.fTelnetMenuButton { + background-color: #aaaaaa; + border: 1px solid #666; + border-radius: 5px; + color: #333333; + display: inline-block; + margin-right: 10px; + padding: 8px 12px; + + text-decoration: none; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); +} + +.fTelnetMenuButtons { + background-color: #aaaaaa; + border: 1px solid #666; + color: #333333; + margin-right: 10px; + padding: 8px 12px; + position: absolute; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); +} + +.fTelnetMenuButtons a { + border: 1px solid black; + border-radius: 5px; + color: black; + display: block; + font: 14px Arial, Helvetica, sans-serif; + padding: 8px 12px; + text-align: center; + text-decoration: none; +} + +.fTelnetMenuButtons table { + background-color: #aaaaaa; +} + +.fTelnetMenuButtons td { + padding: 1px; +} + +.fTelnetScrollback { + background-color: green; + color: white; + font: 14px Arial, Helvetica, sans-serif; + margin: auto; + padding: 5px; + text-align: center; +} + +.fTelnetScrollback a { + color: white; + padding: 0 5px; + text-decoration: none; +} + +.fTelnetStatusBar { + background-color: #666666 !important; + color: #dddddd; + font: 14px Arial, Helvetica, sans-serif; + margin: auto; + padding: 5px; + text-align: left; +} + diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..9c98d03 --- /dev/null +++ b/web/index.html @@ -0,0 +1,30 @@ + + + + WebTelnet + + + + + + + + +
+ + + + + diff --git a/websockify-0.13.0.tar.gz b/websockify-0.13.0.tar.gz deleted file mode 100644 index 64aa0ab..0000000 Binary files a/websockify-0.13.0.tar.gz and /dev/null differ