Commit Graph

254 Commits

Author SHA1 Message Date
8c9ebea489 fix: Install noVNC from GitHub instead of apt package
The apt novnc package (v1.0.0) has module export issues causing
JavaScript errors. Switch to noVNC v1.4.0 from GitHub which has
proper ES6 module exports.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 01:04:45 +00:00
19cb09f05e . 2026-01-18 00:57:34 +00:00
ae86df8732 . 2026-01-17 18:01:02 +00:00
a2f0b40fa8 . 2026-01-17 17:58:31 +00:00
bf60412640 Use test_connection function for keepalive check
Replaces inline ping with existing test_connection function
2026-01-17 17:57:46 +00:00
5f057c50ed Add TARGET_SUBNET to openconnect-vpn script
Derive TARGET_SUBNET from TARGET_IP (first 3 octets + .0/24)
for iptables FORWARD rules to allow full subnet routing.
2026-01-17 17:56:45 +00:00
b2e38b3cb4 Derive TARGET_SUBNET dynamically from TARGET_IP
Extract first 3 octets from TARGET_IP and append .0/24
2026-01-17 17:53:34 +00:00
47e1790a8b Add TARGET_SUBNET for iptables rules with /24 CIDR
Keep TARGET_IP as single host, add hardcoded TARGET_SUBNET=10.3.1.0/24
for iptables rules and routes to allow full subnet routing.
2026-01-17 17:52:44 +00:00
b67b8f18a4 Fix TARGET_IP to include /24 CIDR for iptables rules
The iptables rules were using 10.3.1.0 (single IP) instead of
10.3.1.0/24 (subnet), causing routing from other machines to fail.
2026-01-17 17:51:49 +00:00
c6749fe856 refactor(cistech-tunnel): add IBMI_HOST and test_connection function
- Add hardcoded IBMI_HOST=10.3.1.201 for testing
- Create test_connection() function for reuse
- Use IBMI_HOST for connection tests and keepalive pings
- TARGET_IP still used for routing rules
2026-01-17 16:53:40 +00:00
4c7ff9d6a0 fix(cistech-tunnel): reset DNS and clean tun interface before connecting 2026-01-17 16:49:32 +00:00
e93edb73af fix(cistech-tunnel): remove sudo from openconnect command - already running as root 2026-01-17 16:45:01 +00:00
9a6e2f67e6 feat(cistech-tunnel): add auto-connect, menu flag, watchdog, fix host routing
- Auto-connect on startup (skip with -m/--menu flag)
- Add VPN watchdog for auto-reconnect
- Add live TOTP display
- Fix host-routing.sh pipefail issue with grep
- Better forwarding rules similar to rego-tunnel
2026-01-17 16:40:55 +00:00
84b1eb3f5d . 2026-01-17 16:33:22 +00:00
1bd5a21a94 fix(cistech-tunnel): add sudo and system dbus for openconnect-sso 2026-01-17 16:21:26 +00:00
5c3147536c refactor(cistech-tunnel): move runtime scripts to shared folder
- Add entrypoint.sh and startup-vnc.sh to shared folder
- Override command in docker-compose.json to use /shared/entrypoint.sh
- Scripts can now be modified without rebuilding image
2026-01-17 16:10:22 +00:00
8656441976 fix(cistech-tunnel): add software rendering support for Qt WebEngine
- Add QT_QUICK_BACKEND=software, LIBGL_ALWAYS_SOFTWARE=1
- Add mesa-utils, libgl1-mesa-dri for llvmpipe software renderer
- Add missing xcb libraries (libxcb-render0, libxcb-shm0, etc.)
- Use --use-gl=swiftshader in chromium flags
2026-01-17 16:08:51 +00:00
0d52d54eed fix(cistech-tunnel): add Qt no-sandbox flags to xstartup 2026-01-17 15:59:31 +00:00
1b59e304b0 fix(cistech-tunnel): add --no-sandbox for chromium running as root 2026-01-17 15:57:53 +00:00
fb915487dc fix(cistech-tunnel): add all xcb libraries for Qt6 2026-01-17 15:53:24 +00:00
a3b02b694e fix(cistech-tunnel): add libxcb-cursor0 for Qt xcb plugin 2026-01-17 15:42:58 +00:00
9b2a42bdc9 fix(cistech-tunnel): add libegl1 libgl1 libopengl0 for PyQt6 WebEngine 2026-01-17 15:36:00 +00:00
98f3cc95eb . 2026-01-17 15:27:29 +00:00
12f626b088 chore: remove .github workflows 2026-01-17 15:14:03 +00:00
b9b3f89910 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 14:35:13 +00:00
24594915a9 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 14:29:47 +00:00
6f6538fa73 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 14:25:26 +00:00
239179931c .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 14:24:28 +00:00
f1793baa57 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 14:23:50 +00:00
418390fe8d .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 11:43:28 +00:00
4fd8688685 revert(cistech-tunnel): restore to original working state at a7691b1
Some checks failed
Test / test (push) Has been cancelled
- Removed shared/ folder (host routing scripts)
- Restored original config.json, docker-compose.json
- Restored original Dockerfile and entrypoint.sh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:30:34 +00:00
f410510a7f revert(cistech-tunnel): restore to working state at 5d54ed6
Some checks failed
Test / test (push) Has been cancelled
- Removed build/ folder
- Restored source/ folder with original Dockerfile and entrypoint.sh
- Reverted config files to original working state
- Cleaned up shared/ to only contain host routing scripts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:28:10 +00:00
274125e862 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 11:21:35 +00:00
837dffddd5 refactor(cistech-tunnel): remove all systemd dependencies
Some checks failed
Test / test (push) Has been cancelled
- Dockerfile: Removed systemd, systemd-sysv, network-manager packages
- Dockerfile: Removed systemd service cleanup, vnc.service, cgroup volume
- docker-compose.json/yml: Removed /sys/fs/cgroup volume mount
- Bumped tipi_version to 4

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:16:32 +00:00
1ef9d21ba4 fix(cistech-tunnel): remove systemd dependency, use port 6092
Some checks failed
Test / test (push) Has been cancelled
- entrypoint.sh: Start VNC directly instead of systemd /sbin/init
- Changed NOVNC_PORT from 6080 to 6092 everywhere
- Dockerfile: Updated EXPOSE and default NOVNC_PORT
- Bumped tipi_version to 3

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:13:54 +00:00
9307cab1bb fix(cistech-tunnel): correct routing config and sync compose files
Some checks failed
Test / test (push) Has been cancelled
- host-routing.sh: Updated to use cistech values (172.30.0.10, br-vpn-static)
- config.json: Added TARGET_IP form field, bumped tipi_version to 2
- docker-compose.json: Added TARGET_IP environment variable
- docker-compose.yml: Synced with docker-compose.json (correct image, port 6080, all env vars)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:10:59 +00:00
e462edd99b .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 10:53:29 +00:00
48d0407c79 Add build.sh script for cistech-tunnel
Some checks failed
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:37:50 +00:00
3c427af6fe Restructure cistech-tunnel to match rego-tunnel pattern
Some checks failed
Test / test (push) Has been cancelled
- build/: Dockerfile + entrypoint.sh (base image with VNC/noVNC)
- shared/: Runtime scripts mounted into container
  - xstartup: VNC startup, launches openconnect-vpn in xterm
  - openconnect-vpn: Main VPN script with menu, auto-connect, watchdog
- Removed source/ folder (replaced by build/)
- Updated docker-compose.json with proper volume mounts
- Changed port to 6080 (noVNC default)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:36:41 +00:00
5d54ed6f80 cistech-tunnel: Remove redundant entrypoint mount
Some checks failed
Test / test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:25:40 +00:00
685488c7d4 cistech-tunnel: Mount entrypoint.sh from shared folder
Some checks failed
Test / test (push) Has been cancelled
No more image rebuild needed for script changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:22:01 +00:00
ec40aa2ec1 Fix cistech-tunnel: restore echo pipe in elif branch
Some checks failed
Test / test (push) Has been cancelled
The elif branch was missing 'echo "" |' which caused openconnect-sso
to hang waiting for stdin input when OC_PASSWORD is not set.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:20:24 +00:00
498926ae5d cistech-tunnel: Auto-fetch server cert, add VPN password field
Some checks failed
Test / test (push) Has been cancelled
- entrypoint.sh: Auto-fetch pin-sha256 from VPN URL if not provided
- config.json: Remove OC_SERVERCERT (auto-fetched), add OC_PASSWORD
- docker-compose.json: Add OC_PASSWORD env var

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:12:26 +00:00
046552d09a 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>
2026-01-17 10:07:29 +00:00
27c46542e8 Add host routing watcher for cistech-tunnel (same pattern as rego-tunnel)
Some checks failed
Test / test (push) Has been cancelled
- Add shared/host-routing.sh with nft for NAT masquerade
- Add shared/install-host-services.sh to set up systemd watcher
- Add shared/uninstall-host-services.sh for cleanup
- Add /runtime volume mount for trigger file
- Update entrypoint.sh to trigger host routing when VPN connects

Run install-host-services.sh on host after app install.
Requires image rebuild for entrypoint changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:58:28 +00:00
0c952a2623 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 09:43:31 +00:00
50cdd3ea1c Suppress noisy job control messages and ignore empty menu input
Some checks failed
Test / test (push) Has been cancelled
- Add disown after vpnui & to suppress "killed" messages
- Ignore empty/whitespace input in menu loop
- Remove "Invalid choice" error (just ignore silently)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:38:49 +00:00
7c76016fcf Fix FORWARD rules: wait for Cisco chains, then delete+reinsert at pos 1
Some checks failed
Test / test (push) Has been cancelled
After VPN reconnects, Cisco agent creates its chains asynchronously,
pushing our ACCEPT rules down where they're ineffective. Fix:
1. Wait up to 30s for ciscovpn chain to exist
2. Delete any existing rules (they may be in wrong position)
3. Insert fresh rules at position 1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:26:18 +00:00
0dca06fbc8 Fix host routing: use nft for NAT, insert FORWARD rules before Cisco chains
Some checks failed
Test / test (push) Has been cancelled
- host-routing.sh: Use nft instead of iptables for NAT masquerade
  (iptables-nft backend doesn't support iptables -t nat commands)
- cisco-vpn: Use -I FORWARD 1 instead of -A FORWARD to insert rules
  BEFORE Cisco VPN chains (which have catch-all DROP rules)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:21:09 +00:00
4c067c14d8 .
Some checks failed
Test / test (push) Has been cancelled
2026-01-17 08:49:44 +00:00