Skip to content

vnc-gateway-setup

Status: In Progress (POC working, production selection pending)


Layer 1 of the architecture - browser-based access to Obsidian desktop via VNC streaming.


Using linuxserver/obsidian Docker image with built-in KasmVNC.

docker-compose.yml
obsidian:
image: lscr.io/linuxserver/obsidian:latest
ports:
- "6080:3000" # Web UI
volumes:
- ./vaults/demo:/vaults/demo

Access at: http://localhost:6080

Need to select between:

  • Kasm Workspaces (enterprise)
  • Apache Guacamole (open source)
  • Selkies (WebRTC)

See VNC Options Research


docker/obsidian-kasm/


FilePurpose
DockerfileCustom Obsidian image
entrypoint.shContainer startup script
supervisord.confProcess management

Browser
↓ HTTPS/WSS
VNC Gateway (Kasm/Guacamole)
↓ VNC Protocol
Obsidian Container
├── X11/Xvfb (display)
├── VNC Server
├── Obsidian App
└── Sync Daemon

  • Basic Docker image
  • docker-compose for local testing
  • Sync daemon integration
  • Vault mounting
  • VNC gateway selection
  • SSO integration
  • Session persistence
  • Production deployment
  • Scaling configuration
  • Load balancing

How to handle:

  • User reconnects to same session
  • Session timeout
  • Multiple tabs

Options:

  • Docker volumes (simple)
  • SMB/CIFS shares (enterprise)
  • Both (Docker for state, SMB for content)
  • WebSocket for VNC
  • WebSocket for CRDT sync
  • Object storage access (MinIO)