Update cistech-tunnel: proper image tag, clean Dockerfile, add TOTP field
Some checks failed
Test / test (push) Has been cancelled

- docker-compose.json: Use git.alexzaw.dev/alexz/cistech-vpn:latest
- config.json: Add OC_TOTP_SECRET field, keep server cert as default
- Dockerfile: Remove hardcoded credentials (come from env at runtime)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-17 10:07:29 +00:00
parent 27c46542e8
commit 046552d09a
3 changed files with 29 additions and 25 deletions

View File

@@ -22,14 +22,7 @@
"type": "text",
"env_variable": "OC_URL",
"required": true,
"default": "https://vpn.cistech.net/Employees"
},
{
"label": "VNC Password",
"type": "password",
"env_variable": "VNC_PASSWORD",
"required": true,
"default": "Az@83278327$$@@"
"default": "https://vpn.example.com"
},
{
"label": "Server Certificate",
@@ -42,8 +35,20 @@
"label": "Username",
"type": "text",
"env_variable": "OC_USER",
"required": true,
"default": "alex.zaw@cistech.net"
"required": true
},
{
"label": "TOTP Secret",
"type": "password",
"env_variable": "OC_TOTP_SECRET",
"required": false,
"hint": "Base32 TOTP secret for auto-login"
},
{
"label": "VNC Password",
"type": "password",
"env_variable": "VNC_PASSWORD",
"required": true
}
],
"supported_architectures": [

View File

@@ -1,20 +1,22 @@
{
"schemaVersion": 2,
"services": [
{
"name": "cistech-tunnel",
"image": "cistech-vpn:latest",
"image": "git.alexzaw.dev/alexz/cistech-vpn:latest",
"isMain": true,
"internalPort": 6902,
"privileged": true,
"capAdd": ["NET_ADMIN"],
"devices": ["/dev/net/tun:/dev/net/tun"],
"environment": {
"OC_URL": "${OC_URL}",
"OC_SERVERCERT": "${OC_SERVERCERT}",
"OC_USER": "${OC_USER}",
"VNC_PASSWORD": "${VNC_PASSWORD}",
"NOVNC_PORT": "6902"
},
"devices": ["/dev/net/tun"],
"environment": [
{ "key": "OC_URL", "value": "${OC_URL}" },
{ "key": "OC_SERVERCERT", "value": "${OC_SERVERCERT}" },
{ "key": "OC_USER", "value": "${OC_USER}" },
{ "key": "OC_TOTP_SECRET", "value": "${OC_TOTP_SECRET}" },
{ "key": "VNC_PASSWORD", "value": "${VNC_PASSWORD}" },
{ "key": "NOVNC_PORT", "value": "6902" }
],
"volumes": [
{ "hostPath": "${APP_DATA_DIR}/data", "containerPath": "/root" },
{ "hostPath": "${APP_DATA_DIR}", "containerPath": "/runtime" }

View File

@@ -4,12 +4,9 @@ ENV DEBIAN_FRONTEND=noninteractive \
VIRTUAL_ENV=/opt/venv \
PATH=/opt/venv/bin:$PATH \
QTWEBENGINE_DISABLE_SANDBOX=1 \
QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-gpu" \
OC_URL="https://vpn.cistech.net/Employees" \
OC_SERVERCERT="pin-sha256:HyHob3LiVmIp8ch9AzHJ9jMYqI43tO5N13oWeBLiZ/0=" \
OC_USER="alex.zaw@cistech.net" \
OC_TOTP_SECRET="t6ypnjqvyx2yvw2l" \
VNC_PASSWORD="Az@83278327\$\$@@"
QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-gpu"
# Credentials come from environment variables at runtime:
# OC_URL, OC_SERVERCERT, OC_USER, OC_TOTP_SECRET, VNC_PASSWORD
RUN apt-get update && apt-get install -y \
openconnect iproute2 iptables ca-certificates \