Choose one of the options below 1 or 2.
- noVNC and websockify
Both are from same group.
https://github.com/novnc/noVNC
https://github.com/novnc/websockify
Clone just noVNC, program novnc_proxy will clone websockify inside itself.
cd into noVNC
Can't connect with WayVNC with authentication. See #3 below.
./utils/novnc_proxy --vnc 127.0.0.1:5900 --listen 6080 --cert ~/.openssl/raspberrypi.crt --key ~/.openssl/raspberrypi.key --ssl-onlyWe may listen the host IP.
./utils/novnc_proxy --vnc 192.168.Y.X:5900 --listen 192.168.Y.X:6080Open firewall for port 6080 (local network and docker network).
If using --cert/--key connect at https, otherwhise http.
Access at http://hostname:6080/vnc.html or http://192.168.Y.X:6080/vnc.html, or vnc_lite.html.
- Apache Guacamole
docker-compose.yml
services:
guacd:
image: guacamole/guacd:1.6.0
container_name: guacd
restart: unless-stopped
networks:
- guacnet
- shared-net
mysql:
image: mysql:8.0
container_name: guacamole-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: some_rootpass
MYSQL_DATABASE: guacamole_db
MYSQL_USER: some_user
MYSQL_PASSWORD: some_pass
volumes:
- ./mysql_data:/var/lib/mysql
networks:
- guacnet
- shared-net
guacamole:
image: guacamole/guacamole:1.6.0
container_name: guacamole
restart: unless-stopped
environment:
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: mysql
MYSQL_DATABASE: guacamole_db
MYSQL_USER: some_user
MYSQL_PASSWORD: some_pass
REMOTE_IP_VALVE_ENABLED: true
WEBAPP_CONTEXT: ROOT
depends_on:
- guacd
- mysql
networks:
- guacnet
- shared-net
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
guacnet:
driver: bridge
shared-net:
external: trueWEBAPP_CONTEXT: ROOT without it we access from http://server/guacamole, with ROOT it is just http://server. See https://guacamole.apache.org/doc/gug/guacamole-docker.html#the-guacamole-docker-image
REMOTE_IP_VALVE_ENABLED: true forward user IP to guacamole instead of proxy server. See https://guacamole.apache.org/doc/gug/guacamole-docker.html#required-environment-variables
Get initdb.sql from guacamole-web container
docker run --rm guacamole/guacamole:1.6.0 /opt/guacamole/bin/initdb.sh --mysql > initdb.sqlRun docker compose up -d to pull and start containers.
Run initdb.sql inside mysql container to create db schema and tables.
docker exec -it guacamole-mysql mysql -u root -prootpass guacamole_db -e "source /initdb.sql"Restart all three containers.
In NPM, add a proxy to http://guacamole:8080.
Add a custom configuration proxy_buffering off;. See https://guacamole.apache.org/doc/gug/reverse-proxy.html#proxying-guacamole
Access with https://guac.myserver.mydomain/guacamole/ or https://guac.myserver.mydomain/ if WEBAPP_CONTEXT: ROOT.
Initial user/pass guacadmin/guacadmin.
Change/delete initial user/pass.
Guacd can't connect with WayVNC with authentication.
1. Edit /etc/wayvnc/config
2. Set enable_auth=false
3. Restart wayvnc sudo systemctl restart wayvnc
- WayVNC
The only way to work with WayVNC is to disable authentication.
sudo nano /etc/wayvnc/configSet enable_auth=true to false.
sudo systemctl restart wayvnc