A lightweight Rust replacement for the Apache Guacamole Java webapp. rustguac proxies the Guacamole protocol over WebSockets between web browsers and guacd, providing browser-based remote access to SSH, RDP, and web browser sessions — with no Java stack required.
Highlights
- SSH, RDP, and web browser sessions in the browser via guacd
- Single binary — just rustguac + guacd, no Tomcat/Java
- OIDC single sign-on — JumpCloud, Google, Okta, Azure AD, Keycloak, etc.
- Role-based access control — admin, poweruser, operator, viewer
- Vault-backed address book — credentials stored in HashiCorp Vault / OpenBao, never reach the browser
- Session recording with playback UI
- Session sharing — read-only or collaborative share tokens
- TLS everywhere — HTTPS for clients, TLS between rustguac and guacd
- Encrypted file transfer — LUKS-encrypted per-session drive storage for RDP
- SQLite storage — no external database needed
Installation
See the full documentation for detailed instructions.
Debian 13 (.deb):
sudo dpkg -i rustguac_0.1.0+g67101e2_amd64.deb
sudo systemctl enable --now rustguac
Rocky Linux 9 / RHEL 9 (.rpm):
sudo dnf install ./rustguac-0.1.0-1.el9.x86_64.rpm
sudo systemctl enable --now rustguac
Docker:
docker pull sol1/rustguac:0.1.0
docker run -d -p 8089:8089 sol1/rustguac:0.1.0
Standalone tarball (any Linux):
tar xzf rustguac-0.1.0-linux-amd64.tar.gz
cd rustguac-0.1.0-linux-amd64
sudo ./install.sh