Skip to content

Commit a43ea72

Browse files
committed
update docs
1 parent 39f6ee7 commit a43ea72

File tree

8 files changed

+257
-859
lines changed

8 files changed

+257
-859
lines changed

README.md

+224-66
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,239 @@
22

33
<a href="https://kasmweb.com"><img src="https://kasm-static-content.s3.amazonaws.com/logo_kasm.png" width="300"><a/>
44

5-
[Kasm Technologies](https://www.kasmweb.com) developed Kasm Workspaces, the Containerized Streaming Platform. Kasm has open-sourced the Workspace docker images, which include containerized [full desktops and apps](https://github.com/kasmtech/workspaces-images) and [base images](https://github.com/kasmtech/workspaces-core-images) intended for developers to create custimized streaming containers. These containers can be used standalone or within the [Kasm Workspaces Platform](https://www.kasmweb.com) which provides a full Enterprise feature set. KasmVNC is used as the streaming tech for our container images, however, you can use KasmVNC for individual servers. While the term VNC is in the name, KasmVNC is not intended to remain compliant with the RFB spec and has different goals than other VNC projects:
5+
[Kasm Technologies](https://www.kasmweb.com) developed Kasm Workspaces, the Containerized Streaming Platform. Kasm has open-sourced the Workspace docker images, which include containerized [full desktops and apps](https://github.com/kasmtech/workspaces-images) and [base images](https://github.com/kasmtech/workspaces-core-images) intended for developers to create custimized streaming containers. These containers can be used standalone or within the [Kasm Workspaces Platform](https://www.kasmweb.com) which provides a full Enterprise feature set. KasmVNC is used as the streaming tech for our container images, however, you can use KasmVNC for individual servers. While the term VNC is in the name, KasmVNC is not compliant with the RFB spec and has different goals than other VNC projects:
66

7-
- Web-based - KasmVNC is designed to provide a web accessible remote desktop. It comes with a web server and websocket server built in. There is no need to install other components. Simply run and navigate to your desktop's URL on the port you specify. While you can still tun on the legacy VNC port, it is disabled by default.
8-
- Security - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems.
9-
- Simplicity - KasmVNC aims at being simple to deploy and configure.
7+
- Modern - KasmVNC is designed to provide a web accessible remote desktop. It comes with a web server and websocket server built in. There is no need to install other components. Simply run and navigate to your desktop's URL on the port you specify. While you can still turn on the legacy VNC port, it is disabled by default and will not work with legacy VNC clients.
8+
- Secure - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems.
9+
- Simple - KasmVNC aims at being simple to deploy and configure.
1010

11-
# Releases
11+
## Documentation
12+
13+
**Do not use the README from the master branch**, unless you are compiling KasmVNC yourself from the tip of master. Use the documentation for your specific release.
14+
15+
- [KasmVNC 1.0.0 Documentation](https://www.kasmweb.com/kasmvnc/docs/1.0.0/index.html)
16+
17+
For beta releases prior to version 1.0.0, use the README in this github project on the tagged commit for that release.
18+
19+
## Installation
20+
21+
**You must disconnect and reconnect to the server after installation, for the group membership to apply.**
22+
23+
### Debian/Ubuntu/Kali
24+
```sh
25+
# Please choose the package for your distro here (under Assets):
26+
# https://github.com/kasmtech/KasmVNC/releases
27+
wget <package_url>
28+
29+
sudo apt-get install ./kasmvncserver_*.deb
30+
31+
# Add your user to the ssl-cert group
32+
sudo addgroup $USER ssl-cert
33+
```
34+
35+
### Oracle 8
36+
```sh
37+
# Please choose the package for your distro here (under Assets):
38+
# https://github.com/kasmtech/KasmVNC/releases
39+
wget <package_url>
40+
41+
# Ensure KasmVNC dependencies are available
42+
sudo dnf config-manager --set-enabled ol8_codeready_builder
43+
sudo dnf install oracle-epel-release-el8
44+
45+
sudo dnf localinstall ./kasmvncserver_*.rpm
46+
47+
# Add your user to the kasmvnc-cert group
48+
sudo usermod -a -G kasmvnc-cert $USER
49+
```
50+
51+
### CentOS 7
52+
53+
```sh
54+
# Please choose the package for your distro here (under Assets):
55+
# https://github.com/kasmtech/KasmVNC/releases
56+
wget <package_url>
57+
58+
# Ensure KasmVNC dependencies are available
59+
sudo yum install epel-release
60+
61+
sudo yum install ./kasmvncserver_*.rpm
62+
63+
# Add your user to the kasmvnc-cert group
64+
sudo usermod -a -G kasmvnc-cert $USER
65+
```
66+
67+
## Getting Started
68+
69+
The following examples provide basic usage of KasmVNC with the tools provided. For full documentation on all the utilities and the runtime environment, see our [KasmVNC Documentation](https://www.kasmweb.com/kasmvnc/docs/latest/index.html)
70+
71+
```sh
72+
# Start a session and be guided to setup a user and select a default desktop environment
73+
vncserver
74+
75+
# Start a session with the mate desktop environment
76+
vncserver -select-de mate
77+
78+
# Add a new user with read/write permissions
79+
vncpasswd -u my_username -w -r
80+
81+
# Tail the logs
82+
tail -f ~/.vnc/*.log
83+
84+
# Get a list of current sessions with display IDs
85+
vncserver -list
86+
87+
# Kill the VNC session with display ID :2
88+
vncserver -kill :2
89+
```
90+
91+
## Configuration
92+
93+
KasmVNC is configured via YAML based configurations. The server level configuration is at `/etc/kasmvnc/kasmvnc.yaml`. Edits to this file apply to all users. Individual users can override server global configurations by specifying them in their configuration file at `~/.vnc/kasmvnc.yaml`.
94+
95+
The following configuration shows all default settings. Many of the encoding settings can be overridden by the client, unless the `runtime_configuration.allow_client_to_override_kasm_server_settings` setting is set tot false. By default the client is allowed to modify encoding settings.
96+
97+
For a full description of each setting see the [configuration reference](https://www.kasmweb/kasmvnc/docs/latest/index.html).
98+
99+
```yaml
100+
desktop:
101+
resolution:
102+
width: 1024
103+
height: 768
104+
allow_resize: true
105+
pixel_depth: 24
106+
107+
network:
108+
protocol: http
109+
interface: 0.0.0.0
110+
websocket_port: auto
111+
use_ipv4: true
112+
use_ipv6: true
113+
udp:
114+
public_ip: auto
115+
port: auto
116+
stun_server: auto
117+
ssl:
118+
pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
119+
pem_key: /etc/ssl/private/ssl-cert-snakeoil.key
120+
require_ssl: true
121+
122+
user_session:
123+
new_session_disconnects_existing_exclusive_session: false
124+
concurrent_connections_prompt: false
125+
concurrent_connections_prompt_timeout: 10
126+
idle_timeout: never
127+
128+
keyboard:
129+
remap_keys:
130+
ignore_numlock: false
131+
raw_keyboard: false
132+
133+
pointer:
134+
enabled: true
135+
136+
runtime_configuration:
137+
allow_client_to_override_kasm_server_settings: true
138+
allow_override_standard_vnc_server_settings: true
139+
allow_override_list:
140+
- pointer.enabled
141+
- data_loss_prevention.clipboard.server_to_client.enabled
142+
- data_loss_prevention.clipboard.client_to_server.enabled
143+
- data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
144+
145+
logging:
146+
log_writer_name: all
147+
log_dest: logfile
148+
level: 30
149+
150+
security:
151+
brute_force_protection:
152+
blacklist_threshold: 5
153+
blacklist_timeout: 10
154+
155+
data_loss_prevention:
156+
visible_region:
157+
# top: 10
158+
# left: 10
159+
# right: 40
160+
# bottom: 40
161+
concealed_region:
162+
allow_click_down: false
163+
allow_click_release: false
164+
clipboard:
165+
delay_between_operations: none
166+
allow_mimetypes:
167+
- chromium/x-web-custom-data
168+
- text/html
169+
- image/png
170+
server_to_client:
171+
enabled: true
172+
size: unlimited
173+
primary_clipboard_enabled: false
174+
client_to_server:
175+
enabled: true
176+
size: unlimited
177+
keyboard:
178+
enabled: true
179+
rate_limit: unlimited
180+
logging:
181+
level: off
182+
183+
encoding:
184+
max_frame_rate: 60
185+
full_frame_updates: none
186+
rect_encoding_mode:
187+
min_quality: 7
188+
max_quality: 8
189+
consider_lossless_quality: 10
190+
rectangle_compress_threads: auto
191+
192+
video_encoding_mode:
193+
jpeg_quality: -1
194+
webp_quality: -1
195+
max_resolution:
196+
width: 1920
197+
height: 1080
198+
enter_video_encoding_mode:
199+
time_threshold: 5
200+
area_threshold: 45%
201+
exit_video_encoding_mode:
202+
time_threshold: 3
203+
logging:
204+
level: off
205+
scaling_algorithm: progressive_bilinear
206+
207+
compare_framebuffer: auto
208+
zrle_zlib_level: auto
209+
hextile_improved_compression: true
210+
211+
server:
212+
http:
213+
headers:
214+
- Cross-Origin-Embedder-Policy=require-corp
215+
- Cross-Origin-Opener-Policy=same-origin
216+
httpd_directory: /usr/share/kasmvnc/www
217+
advanced:
218+
x_font_path: auto
219+
kasm_password_file: ${HOME}/.kasmpasswd
220+
x_authority_file: auto
221+
auto_shutdown:
222+
no_user_session_timeout: never
223+
active_user_session_timeout: never
224+
inactive_user_session_timeout: never
225+
226+
command_line:
227+
prompt: true
228+
```
12229
13-
Since this is a fast evolving project, the documents on the tip of master are chaning rapidly and will not match releases. Be sure to use the README and other documentation from the release branch that matches the version of KasmVNC you are using. Do not use the README from the master branch, unless you are compiling KasmVNC yourself from the tip of master. All releases starting at 0.9.3 have a branch named in the format 'release/0.9.3', for example.
14230
15231
# New Features!
16232
17233
- Webp image compression for better bandwidth usage
18234
- Automatic mixing of webp and jpeg based on CPU availability on server
19235
- Multi-threaded image encoding for smoother frame rate for servers with more cores
236+
- WebRTC UDP Transit
237+
- Lossless QOI Image format for Local LAN
20238
- [Full screen video detection](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#video-mode), goes into configurable video mode for better full screen videoo playback performance.
21239
- [Dynamic jpeg/webp image coompression](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#dynamic-image-quality) quality settings based on screen change rates
22240
- Seemless clipboard support (on Chromium based browsers)
@@ -42,68 +260,8 @@ Since this is a fast evolving project, the documents on the tip of master are ch
42260
43261
Future Goals:
44262
45-
- UDP transport for faster frame rates
46263
- H264 encoding
47264
48-
### Installation
49-
50-
#### Debian-based
51-
52-
```sh
53-
# Please choose the package for your distro here (under Assets):
54-
# https://github.com/kasmtech/KasmVNC/releases
55-
wget <package_url>
56-
57-
sudo apt-get install ./kasmvncserver_*.deb
58-
59-
# Add your user to the ssl-cert group
60-
sudo addgroup $USER ssl-cert
61-
# You will need to re-connect in order to pick up the group change
62-
63-
# On the first run, vncserver will ask you to create a KasmVNC user and choose a desktop
64-
# environment you want to run. It can detect Cinnamon, Mate, LXDE, LXQT, KDE, Gnome,
65-
# XFCE. You can also choose to manually edit xstartup.
66-
# After you chose a desktop environment or to manually edit xstartup,
67-
# vncserver won't ask you again, unless you run it as:
68-
vncserver -select-de
69-
70-
# You can select a specific Desktop Environment like this:
71-
vncserver -select-de mate
72-
73-
# Tail the logs
74-
tail -f ~/.vnc/*.log
75-
```
76-
77-
Now navigate to your system at the urls printed by `vncserver`.
78-
79-
To stop the KasmVNC you started earlier on display 10:
80-
81-
```sh
82-
vncserver -kill <display_number>
83-
```
84-
85-
Settings can be modified via editing `/etc/kasmvnc/kasmvnc.yaml` or `~/.vnc/kasmvnc.yaml`.
86-
87-
The options for vncserver:
88-
89-
| Argument | Description |
90-
| -------- | ----------- |
91-
| depth | Color depth, for jpeg/webp should be 24bit |
92-
| geometry | Screensize, this will automatically be adjusted when the client connects. |
93-
| websocketPort | The port to use for the web socket. Use a high port to avoid having to run as root. |
94-
| cert | SSL cert to use for HTTPS |
95-
| sslOnly | Disable HTTP |
96-
| interface | Which interface to bind the web server to. |
97-
98-
### Development
99-
Would you like to contribute to KasmVNC? Please reachout to us at [email protected]. We have investigated or are working on the following, if you have experience in these fields and would like to help please let us know.
100-
101-
Real-time H264 encoding using NVIDIA and Intel encoding technology.
102-
103-
Windows version of KasmVNC. We have been able to get it to compile for Windows and increased the performance, but still not releasable. Experienced Windows developers with a background in cross compiling would help.
104-
105-
ARM version of KasmVNC, we have had requests for this and at one point we did have an ARM build of KasmVNC but it takes dev cycles to mainain and bring it back to life.
106-
107265
### Compiling From Source
108266
See the [builder/README.md](https://github.com/kasmtech/KasmVNC/blob/master/builder/README.md). We containerize our build systems to ensure highly repeatable builds.
109267

doc/YAML config FAQ.md

-11
This file was deleted.

0 commit comments

Comments
 (0)