GithubHelp home page GithubHelp logo

kasmtech / kasmvnc Goto Github PK

View Code? Open in Web Editor NEW
2.6K 38.0 271.0 4.49 MB

Modern VNC Server and client, web based and secure

License: GNU General Public License v2.0

CMake 1.90% Shell 2.31% C 32.62% C++ 56.79% Makefile 1.03% Perl 3.18% Roff 1.25% Ruby 0.02% Python 0.90%

kasmvnc's Introduction

KasmVNC - Linux Web Remote Desktop

KasmVNC provides remote web-based access to a Desktop or application. While VNC is in the name, KasmVNC differs from other VNC variants such as TigerVNC, RealVNC, and TurboVNC. KasmVNC has broken from the RFB specification which defines VNC, in order to support modern technologies and increase security. KasmVNC is accessed by users from any modern browser and does not support legacy VNC viewer applications. KasmVNC uses a modern YAML based configuration at the server and user level, allowing for ease of management.

Kasm Technologies developed Kasm Workspaces, the Containerized Streaming Platform. Kasm has open-sourced the Workspace docker images, which include containerized full desktops and apps and base images intended for developers to create customized streaming containers. These containers can be used standalone or within the Kasm Workspaces Platform which provides a full Enterprise feature set.

Documentation

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.

For beta releases prior to version 1.0.0, use the README in this github project on the tagged commit for that release.

Installation

You must disconnect and reconnect to the server after installation, for the group membership to apply.

Debian/Ubuntu/Kali

# Please choose the package for your distro here (under Assets):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>

sudo apt-get install ./kasmvncserver_*.deb

# Add your user to the ssl-cert group
sudo adduser $USER ssl-cert

Oracle 8

# Please choose the package for your distro here (under Assets):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>

# Ensure KasmVNC dependencies are available
sudo dnf config-manager --set-enabled ol8_codeready_builder
sudo dnf install oracle-epel-release-el8

sudo dnf localinstall ./kasmvncserver_*.rpm

# Add your user to the kasmvnc-cert group
sudo usermod -a -G kasmvnc-cert $USER

CentOS 7

# Please choose the package for your distro here (under Assets):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>

# Ensure KasmVNC dependencies are available
sudo yum install epel-release

sudo yum install ./kasmvncserver_*.rpm

# Add your user to the kasmvnc-cert group
sudo usermod -a -G kasmvnc-cert $USER

Getting Started

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

# Start a session and be guided to setup a user and select a default desktop environment
vncserver

# Start a session with the mate desktop environment
vncserver -select-de mate

# Add a new user with read/write permissions
vncpasswd -u my_username -w -r

# Tail the logs
tail -f ~/.vnc/*.log

# Get a list of current sessions with display IDs
vncserver -list

# Kill the VNC session with display ID :2
vncserver -kill :2

Configuration

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.

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.

For a full description of each setting see the configuration reference.

desktop:
  resolution:
    width: 1024
    height: 768
  allow_resize: true
  pixel_depth: 24
  gpu:
    hw3d: false
    drinode: /dev/dri/renderD128

network:
  protocol: http
  interface: 0.0.0.0
  websocket_port: auto
  use_ipv4: true
  use_ipv6: true
  udp:
    public_ip: auto
    port: auto
    stun_server: auto
  ssl:
    pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
    pem_key: /etc/ssl/private/ssl-cert-snakeoil.key
    require_ssl: true

user_session:
  new_session_disconnects_existing_exclusive_session: false
  concurrent_connections_prompt: false
  concurrent_connections_prompt_timeout: 10
  idle_timeout: never

keyboard:
  remap_keys:
  ignore_numlock: false
  raw_keyboard: false

pointer:
  enabled: true

runtime_configuration:
  allow_client_to_override_kasm_server_settings: true
  allow_override_standard_vnc_server_settings: true
  allow_override_list:
    - pointer.enabled
    - data_loss_prevention.clipboard.server_to_client.enabled
    - data_loss_prevention.clipboard.client_to_server.enabled
    - data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled

logging:
  log_writer_name: all
  log_dest: logfile
  level: 30

security:
  brute_force_protection:
    blacklist_threshold: 5
    blacklist_timeout: 10

data_loss_prevention:
  visible_region:
    # top: 10
    # left: 10
    # right: 40
    # bottom: 40
    concealed_region:
      allow_click_down: false
      allow_click_release: false
  clipboard:
    delay_between_operations: none
    allow_mimetypes:
      - chromium/x-web-custom-data
      - text/html
      - image/png
    server_to_client:
      enabled: true
      size: unlimited
      primary_clipboard_enabled: false
    client_to_server:
      enabled: true
      size: unlimited
  keyboard:
    enabled: true
    rate_limit: unlimited
  logging:
    level: off

encoding:
  max_frame_rate: 60
  full_frame_updates: none
  rect_encoding_mode:
    min_quality: 7
    max_quality: 8
    consider_lossless_quality: 10
    rectangle_compress_threads: auto

  video_encoding_mode:
    jpeg_quality: -1
    webp_quality: -1
    max_resolution:
      width: 1920
      height: 1080
    enter_video_encoding_mode:
      time_threshold: 5
      area_threshold: 45%
    exit_video_encoding_mode:
      time_threshold: 3
    logging:
      level: off
    scaling_algorithm: progressive_bilinear

  compare_framebuffer: auto
  zrle_zlib_level: auto
  hextile_improved_compression: true

server:
  http:
    headers:
      - Cross-Origin-Embedder-Policy=require-corp
      - Cross-Origin-Opener-Policy=same-origin
    httpd_directory: /usr/share/kasmvnc/www
  advanced:
    x_font_path: auto
    kasm_password_file: ${HOME}/.kasmpasswd
    x_authority_file: auto
  auto_shutdown:
    no_user_session_timeout: never
    active_user_session_timeout: never
    inactive_user_session_timeout: never

command_line:
  prompt: true

New Features!

  • Faster jpeg compression (via statically linked libjpeg-turbo)
  • Webp image compression for better bandwidth usage
  • Automatic mixing of webp and jpeg based on CPU availability on server
  • Multi-threaded image encoding for smoother frame rate for servers with more cores
  • WebRTC UDP Transit
  • Lossless QOI Image format for Local LAN
  • Full screen video detection, goes into configurable video mode for better full screen videoo playback performance.
  • Dynamic jpeg/webp image coompression quality settings based on screen change rates
  • Seemless clipboard support (on Chromium based browsers)
  • Binary clipboard support for text, images, and formatted text (on Chromium based browsers)
  • Allow client to set/change most configuration settings
  • Data Loss Prevention features
    • Key stroke logging
    • Clipboard logging
    • Max clipboard transfer size up and down
    • Min time between clipboard operations required
    • Keyboard input rate limit
    • Screen region selection
  • Deb packages for Debian, Ubuntu, and Kali Linux included in release.
  • RPM packages for CentOS, Oracle, OpenSUSE, Fedora. RPM packages are currently not updatable and not released, though you can build and install them. See build documentation.
  • Web API added for remotely controlling and getting information from KasmVNC
  • Multi-User support with permissions that can be changed via the API
  • Web UI uses a webpack for faster load times.
  • Network and CPU bottleneck statistics
  • Relative cursor support (game pointer mode)
  • Cursor lock
  • IME support for languages with extended characters
  • Better mobile support
  • DRI3 GPU acceleration with open source drivers (AMDGPU,Intel,ATI,ARM)

Future Goals:

  • H264 encoding

Compiling From Source

See the builder/README.md. We containerize our build systems to ensure highly repeatable builds.

License and Acknowledgements

See the LICENSE.TXT and ACKNOWLEDGEMENTS.md

kasmvnc's People

Contributors

arsenmanukyan94 avatar ayoder770 avatar cendioniko avatar cendioossman avatar clbr avatar h0x0er avatar hildred avatar hunicus avatar iblech avatar j-travis avatar jan-jockusch avatar juanjodiaz avatar koying avatar ledestin avatar lhchavez avatar lheckemann avatar lyarwood avatar markmielke avatar mattmcclaskey avatar mmcclaskey avatar mtrxpl avatar qkdreyer avatar regnarg avatar rickkoliser avatar samhed avatar shiramax avatar shweew avatar uklatt avatar vanym avatar wavezhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kasmvnc's Issues

API Handlers for add/remove user

Add API handlers for adding and removing users and for changing who has control. Only the Owner can add, remove, and change control permissions. @clbr , the users branch has been merged so you should be good to go on this one.

HTTP 502 when behind nginx

Hey! I've loved using kasmVNC to host remote desktops for a while now, and considering i've moved to the cloud now, i've been trying to set it up on kubernetes.

My current issue is that, when behind an nginx load balancer, i get 502 Bad Gateway back when trying to connect.
I see "upstream prematurely closed connection while reading response header from upstream" in my nginx error log, and while looking up the error i only found people saying to increase the timeout, but mine is already 100s, and it dies way before that.

I assume i need to do something special in my nginx conf?

New Install On Linux Mint behind a nat forward

Hi All,

Installed the vnc KasmVNC 0.9.2 Beta installed ok after a reboot. I have forwarded 8443 from the NAT to the public side and I get a connect icon a the browser side, however, it doesn't connect and just recycles back to the connect page.

The tail log shows the following:

tail -f ~/.vnc/vnc-Server:10.log websocket 17: BasicAuth required, but client didn't send any. 401 Unauth websocket 17: No connection after handshake websocket 17: handler exit websocket 18: got client connection from 10.XXX.XX.XXX websocket 18: using SSL socket websocket 18: BasicAuth matched websocket 18: Invalid WS request, maybe a HTTP one websocket 18: Requested file '/dist/images/252ed0078446ce2f6c9a76c2884e6d5b.svg' websocket 18: No connection after handshake websocket 18: handler exit

what other ports do I need to forward via NAT? I am assuming ts a WebSocket authentication issue.

Thanks in advance for any help.

Safari basic auth broken

Safari does not seem to pass the authorization header on the websocket connection. Needs further research but we are broken on Safari.

Statically build Webp

Since late versions of webp lib are not going to be in OS repos, lets go ahead and statically link it in the build.

How to install packages with APT in Ubuntu Desktop?

Hello, I am a beginner in the use of Kasm and I wanted to know how you can use sudo, specifically, to install packages in Ubuntu Desktop, when using sudo it tells me that "sudo" does not exist and when only installing packages like apt-get install htop me indicates that I do not have permissions.

The conclusion that I draw is that you can not use sudo or install packages? Can you only use the applications that are installed by default? Thanks for the help.

`dockerfile.ubuntu1604.build` failed with Error 2

I want to build kasmvncserver on ubuntu:16.04, I tried the docker file dockerfile.ubuntu1604.build, but it failed with Error 2.

here is the console log:

--2022-01-06 20:08:17--  https://www.x.org/archive/individual/xserver/xorg-server-1.19.6.tar.bz2
Resolving www.x.org (www.x.org)... 131.252.210.176, 2610:10:20:722:a800:ff:feda:470f
Connecting to www.x.org (www.x.org)|131.252.210.176|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5984528 (5.7M) [application/x-bzip2]
Saving to: 'xorg-server-1.19.6.tar.bz2'

xorg-server-1.19.6.tar.bz2             100%[===========================================================================>]   5.71M  2.11MB/s    in 2.7s    

2022-01-06 20:08:21 (2.11 MB/s) - 'xorg-server-1.19.6.tar.bz2' saved [5984528/5984528]

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE = RelWithDebInfo
-- VERSION = 0.9
-- BUILD_TIMESTAMP = 2022-01-06 20:08
-- WWWDIR = /usr/local/share/kasmvnc/www
-- 64-bit build
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so  
-- Performing Test FOUND_LIBJPEG_TURBO
-- Performing Test FOUND_LIBJPEG_TURBO - Success
-- Found GnuTLS: /usr/lib/x86_64-linux-gnu/libgnutls.so (found version "3.4.10") 
-- Looking for include file security/pam_appl.h
-- Looking for include file security/pam_appl.h - not found
-- Looking for pam_start
-- Looking for pam_start - not found
-- Performing Test COMPILER_SUPPORTS_SSE2
-- Performing Test COMPILER_SUPPORTS_SSE2 - Success
-- Creating static libtool control file for target os
-- Creating static libtool control file for target rdr
-- Creating static libtool control file for target network
-- Creating static libtool control file for target Xregion
-- Creating static libtool control file for target rfb
-- Creating static libtool control file for target unixcommon
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_VIEWER


-- Build files have been written to: /src
Scanning dependencies of target unixcommon
Scanning dependencies of target tx
Scanning dependencies of target Xregion
Scanning dependencies of target os
Scanning dependencies of target network
[  3%] Building C object common/Xregion/CMakeFiles/Xregion.dir/Region.c.o
[  3%] Building CXX object common/os/CMakeFiles/os.dir/Mutex.cxx.o
[  3%] Building CXX object unix/common/CMakeFiles/unixcommon.dir/randr.cxx.o
[  3%] Building CXX object unix/tx/CMakeFiles/tx.dir/TXWindow.cxx.o
[  4%] Building CXX object common/network/CMakeFiles/network.dir/GetAPIMessager.cxx.o
[  5%] Building CXX object common/os/CMakeFiles/os.dir/Thread.cxx.o
[  6%] Building C object common/os/CMakeFiles/os.dir/w32tiger.c.o
[  7%] Building CXX object common/os/CMakeFiles/os.dir/os.cxx.o
[  8%] Linking CXX static library libos.a
[  9%] Linking C static library libXregion.a
[  9%] Built target os
Scanning dependencies of target kasmvncpasswd
[ 10%] Building C object unix/kasmvncpasswd/CMakeFiles/kasmvncpasswd.dir/kasmvncpasswd.c.o
[ 10%] Built target Xregion
[ 10%] Building CXX object common/network/CMakeFiles/network.dir/Blacklist.cxx.o
[ 11%] Building C object unix/kasmvncpasswd/CMakeFiles/kasmvncpasswd.dir/kasmpasswd.c.o
[ 12%] Linking CXX static library libtx.a
[ 12%] Built target tx
[ 14%] Linking C executable kasmvncpasswd
[ 14%] Building CXX object common/network/CMakeFiles/network.dir/Socket.cxx.o
[ 15%] Linking CXX static library libunixcommon.a
[ 15%] Built target kasmvncpasswd
Scanning dependencies of target rdr
[ 16%] Building CXX object common/rdr/CMakeFiles/rdr.dir/BufferedInStream.cxx.o
[ 16%] Built target unixcommon
[ 17%] Building CXX object common/network/CMakeFiles/network.dir/TcpSocket.cxx.o
In file included from /src/common/network/TcpSocket.cxx:45:0:
/src/common/network/websocket.h:1:25: fatal error: openssl/ssl.h: No such file or directory
compilation terminated.
common/network/CMakeFiles/network.dir/build.make:134: recipe for target 'common/network/CMakeFiles/network.dir/TcpSocket.cxx.o' failed
make[2]: *** [common/network/CMakeFiles/network.dir/TcpSocket.cxx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 17%] Building CXX object common/rdr/CMakeFiles/rdr.dir/BufferedOutStream.cxx.o
[ 18%] Building CXX object common/rdr/CMakeFiles/rdr.dir/Exception.cxx.o
[ 19%] Building CXX object common/rdr/CMakeFiles/rdr.dir/FdInStream.cxx.o
[ 20%] Building CXX object common/rdr/CMakeFiles/rdr.dir/FdOutStream.cxx.o
[ 21%] Building CXX object common/rdr/CMakeFiles/rdr.dir/FileInStream.cxx.o
[ 22%] Building CXX object common/rdr/CMakeFiles/rdr.dir/HexInStream.cxx.o
[ 23%] Building CXX object common/rdr/CMakeFiles/rdr.dir/HexOutStream.cxx.o
[ 23%] Building CXX object common/rdr/CMakeFiles/rdr.dir/InStream.cxx.o
[ 24%] Building CXX object common/rdr/CMakeFiles/rdr.dir/RandomStream.cxx.o
[ 25%] Building CXX object common/rdr/CMakeFiles/rdr.dir/TLSException.cxx.o
[ 26%] Building CXX object common/rdr/CMakeFiles/rdr.dir/TLSInStream.cxx.o
[ 27%] Building CXX object common/rdr/CMakeFiles/rdr.dir/TLSOutStream.cxx.o
[ 28%] Building CXX object common/rdr/CMakeFiles/rdr.dir/ZlibInStream.cxx.o
[ 29%] Building CXX object common/rdr/CMakeFiles/rdr.dir/ZlibOutStream.cxx.o
CMakeFiles/Makefile2:323: recipe for target 'common/network/CMakeFiles/network.dir/all' failed
make[1]: *** [common/network/CMakeFiles/network.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 29%] Linking CXX static library librdr.a
[ 29%] Built target rdr
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

PLS help. Thanks!

Bandwidth and Compute Resource Overlay

It is difficult to troubleshoot bandwidth issues versus compute contention issues as they look similar to the user. This is especially an issue when you have a single large central installation with hundreds of users. We should look into using existing mechanisms in the code base for measuring bandwidth issues. We should also find a way to measure compute resources. Optimally, this compute resource measurement should not use system tools but rather calculate based on the time it is taking to encode perhaps. The user should be able to turn this tracking on and it would be sent to the client which would overlay the data on the screen.

BasicAuth allows blank username to view VNC desktop

.kasmpasswd has my username and password along with the :wo and that is the only entry. However, if you don't enter anything in the username or password field for the BasicAuth prompt, it will open the VNC desktop stream in view-only mode.

Is this intended? If so, how is it possible to disable the BasicAuth that kasmvnc comes with so that I can implement it on my traefik proxy?

In the log below, can see that BasicAuth fails and sends a 401 Unauthorized, however, it immediately says BasicAuth Matched and then proceeds to setup a view only session.

kasm.txt

mouse not working on remote VM

Hi, i installed on Debian 11 (Mx linux) KasmVNC
but after connecting to remote VM, mouse not appear on remote screen, how to fix it?
IPMriTCT68

also, as i understant KasmVNC is an advanced NoVNC version.
i expected to see this:
image
but i have this:
image

Multiple users issues (users branch)

I've merged users branch into packages_and_multiuser_passwd branch and tried it out. I fixed merge conflicts and it has the latest deb/rpm packages.

  1. -w user works fine.
  2. ro user has no cursor. I understand it wouldn't click anything, but it is annoying.
  3. -o user (owner) has cursor at a fixed position and same as read-only otherwise.

@clbr could you please make it possible to set/verify password via stdin that isn't a tty?

echo foobar | kasmvncpasswd -w -u $VNC_USER $HOME/.kasmpasswd
getpass error: Inappropriate ioctl for device

View Only HTTPS Connections

We inadvertently broke view only connections. We need to add a viewbasicauth option. There also need to be a mechanism for setting the view only password as well.

Update installer

Once pre-compiled binaries for more operating systems are complete finish this task. If we have not switched to deb/rpm packages, then we need to continue the current install.sh script. The preference will be to create rpm/deb packages, however, that will require some work.

Add Support for Mouse Forward / Back Buttons

A user recently noted that the standard mouse forward / back buttons cannot be used within a KasmVNC session.

https://bitbucket.org/kasmtech/kasm_release/issues/44/mouse-forward-and-back-buttons-not-working

This seems to also be an open issue in TigerVnc as well: TigerVNC/tigervnc#919

When testing the mouse input on a website like https://www.onlinemictest.com/mouse-test/ from inside a session, the forward/back mouse events are being interpreted as scroll events.

image

Update vncpasswd manual page

The password must be at least six characters long (unless the -f com‐
mand-line option is used-- see below), and only the first eight charac‐
ters are significant. Note that the stored password is not encrypted
securely - anyone who has access to this file can trivially find out
the plain-text password, so vncpasswd always sets appropriate permis‐
sions (read and write only by the owner.) However, when accessing a
VNC desktop, a challenge-response mechanism is used over the wire mak‐
ing it hard for anyone to crack the password simply by snooping on the
network.

@clbr is man page outdated regarding the above? (disregard -f).

openssl license issue

At his point, the following is not a problem, but may be if you want to get into Debian.:
"This package appears to be covered by the GNU GPL but depends on the OpenSSL libssl package and does not mention a license exemption or exception for OpenSSL in its copyright file. The GPL (including version 3) is incompatible with some terms of the OpenSSL license, and therefore Debian does not allow GPL-licensed code linked with OpenSSL libraries unless there is a license exception explicitly permitting this."
https://lintian.debian.org/tags/possible-gpl-code-linked-with-openssl.html

Attach to physical screen session

I'd like to use kasmvnc to attach to a screen already in use (think of a remote help tool).

Currently, my x server is running on :1024. When I modify the kasmserver easy start script to use that display, kasm errors out, saying a vnc server already exists on it. Can a flag be added to attach to an existing display port if it already exists (whether vnc or physical, but definitely physical)?

DLP Instructions

I need to know where to put the DLP region code in the file "kasmvncserver easy start"

Latest VNC Build KasmVNC 0.9.2 Beta

Hi All,

I have this working on my proxmox VM with linuxmint Ulysses. I just can't seem to get any audio, is there a setting or config that I need to change to get audio, or is this down to the VM outputting audio?

thanks n advance for any pointers.

Installation instructions missing kasmvncserver dependencies

Following installation documentation in readme encounters the following error on Ubuntu WSL.

~$ sudo dpkg -i kasmvncserver_*.deb
Selecting previously unselected package kasmvncserver.
(Reading database ... 32473 files and directories currently installed.)
Preparing to unpack kasmvncserver_ubuntu_bionic_0.9.2_amd64.deb ...
Unpacking kasmvncserver (0.9.1~beta-1) ...
dpkg: dependency problems prevent configuration of kasmvncserver:
 kasmvncserver depends on libgomp1 (>= 4.9); however:
  Package libgomp1 is not installed.
 kasmvncserver depends on libjpeg8 (>= 8c); however:
  Package libjpeg8 is not installed.
 kasmvncserver depends on libnettle6; however:
  Package libnettle6 is not installed.
 kasmvncserver depends on libpixman-1-0 (>= 0.30.0); however:
  Package libpixman-1-0 is not installed.
 kasmvncserver depends on libxfont2 (>= 1:2.0.1); however:
  Package libxfont2 is not installed.
 kasmvncserver depends on ssl-cert; however:
  Package ssl-cert is not installed.
 kasmvncserver depends on x11-xkb-utils; however:
  Package x11-xkb-utils is not installed.

dpkg: error processing package kasmvncserver (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db (2.9.1-1) ...
Errors were encountered while processing:
 kasmvncserver

Pull in updates from Tiger

Check latest release of tigervnc and pull in changes as needed. I see they updated their code to use later version fo X. This would solve our issues with libxfont dependencies no newer operating systems.

500 Error Cloudflare

Hi!
I have set up Kasm Workspaces on my OCI server and every time I create a session and try to connect, it fails a few requests with 500 status code and returns me to the dashboard.

I have tried #38 and all other issues that pop up by searching for cloudflare.
The way i have it set up is: A non-proxied A record on CF and CF Certs on NGINX.
My zone settings are:

Zone Name: default
Allow Origin Domain: $request_host$
Upsteram Auth Address: 10.0.0.196 (Servers' Private IP)
Load Balance Startegy: Least Load
Search Alternate Zones: ON
Proxy Connections: ON
Proxy Hostname: $request_host$
Proxy Path: desktop
Proxy Port: 443

Any help' would be appreciated!

Installation issue

I created a debian ARM64 vm instance on google cloud platform. When i try to use the instructions on GitHub The installation never completes. I seems like it installs but it actually dosent install. After support checked they realize the files needed werent installed

Audio Support

Is audio supported through a KasmVNC noVNC web page?

Docker error in goormide

I started a container on goormide and i am installing kasm server. I just cant seem to do it because of some docker.sock problem. Is there a way to fix this?

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Folder permission

Hello and thanks for the great docker images.
i tried all of them.all great.
just wanted to mount a folder in docker container to host folder, when i do it, i cant copy any files there to access from host.it says doesnt have proper permissions.
i can copy files from host only.

i use -v /root/dl:/home/kasm-user/Downloads option to do that.

how to fix this.

thanks.

Ubuntu 20 Lintian font warnings

W: kasmvncserver: truetype-font-prohibits-installable-embedding [preview/print only] usr/share/kasmvnc/www/app/styles/Orbitron700.ttf
W: kasmvncserver: truetype-font-prohibits-installable-embedding [preview/print only] usr/share/kasmvnc/www/dist/fonts/2dd3cc0a5866320bdf5478fab39d48d9.ttf

"This package installs a TrueType font with restrictive license terms. The font does not permit installable embedding, as defined by the TrueType standard."

Allow clipboard access to be disabled

Hi,
There is a case that the environment need to be isolated and not allow user to copy from the kasm container to local machine.
Is there anyway to configure VNC server to allow one directional copy/paste on clipboard?

500 error through Cloudflare Tunnel

I'm trying to tunnel Kasm through a Cloudflare Tunnel so I can access control it with Cloudflare Access / Cloudflare for Teams. Proxying the web GUI through Cloudflare Tunnel seems to work fine but I can't connect to the sessions. It looks like the VNC web requests are failing with a 500 error, with this request URL:

GET https://kasm.norbauer.net/desktop/c50cd3af-cbf9-4144-8896-d70c73cb5f28/vnc/vnc.html?video_quality=2&enable_webp=false&idle_disconnect=20&password=&autoconnect=1&path=desktop/c50cd3af-cbf9-4144-8896-d70c73cb5f28/vnc/websockify&cursor=true&resize=remote&clipboard_up=false&clipboard_down=false&clipboard_seamless=false&toggle_control_panel=false

Is there some debug logging I could look at to see why these requests are failing?

Missing man page for Xvnc

Tarball contains /usr/local/man/man1/Xvnc.1, but it's empty. Since unix/xserver/hw/vnc/Xvnc.man exists, it seems like a tarball build issue. Per Debian Policy, programs must have man pages.

Kasm for armhf / arm64

Hello, I really enjoy Kasm and it's features. But, I would like to request a version of kasm for arm. If not armhf but arm64. You don't need to keep updating it but, just probably create a single version for kasm on arm. I sadly don't have any other computer except a chromebook and a raspberry pi to do this. I know it will be hard work and a lot of time put into it but, if I remember on the readme.md there was a page talking about support for arm.
Does the version still exist and if it does can you link it please?

Building a deb package for Ubuntu 18

Hi,

I'm in the process of making a deb for Ubuntu 18. Here are my notes, based on kasmvnc-Linux-x86_64-0.9.tar.gz that Docker build made:

  • swrast_dri.so is in libgl1-mesa-dri, but bundled in the tar. No binaries in /usr/local/bin/ even depend on it. Should I just ditch it? If it's used by Xorg is it really needed? It'll conflict with other packages that have it and will need to be resolved in some way.
  • man1/Xserver.1 should be included in the distro. I'm ditching it.
  • vncserver(1), vncpasswd(1), etc. The other packages use naming like this:
    • /usr/bin/tigervncserver
    • /usr/bin/tightvncserver
    • Would you like to convert to a similar scheme? kasmvncserver?
  • There's a virtual package of vnc-server, and KasmVNC will be one of the alternatives.

If you create any files while the vnc server runs, where do they go?

Building a deb package for Ubuntu 20

I've added branch create_ubuntu20_package with support for build-tarball <os> <os_ver>, build-deb and test-deb (e.g. build-tarball ubuntu 20.04).

debs are created in builder/build/<os>_<os_ver/.

When testing Ubuntu 20 package I get:

139991279716096:error:14161044:SSL routines:state_machine:internal error:../ssl/statem/statem.c:372:

API handler for getting a screenshot

@clbr

Add an API handler on the KasmVNC webserver at /api/get_screenshot. The path should take the following arguments. The api will return a screenshot of the current screen as a JPEG image. Use progressive bilinear scaling when the requested resolution is smaller than actual. Cap the resolution at actual for maximum size. Owner permissions are required to make this API call.

width - default to actual
height - default to actual
quality - default to 7, scale is 0 to 9 jpeg quality
deduplicate (true|false) - Default to false. Cache the last requested screenshot. If deduplicate is set to false, the parameters were the same as the last request, and the screen has not been updated since the last request, just resend the cached image. If deduplicate is set to true, the parameters were the same as the last request, and the screen has not been updated since the last request, then return a hash of the cached image. This allows the requester to store the hash instead of the actual image and save processing and bandwidth depending on the use case.

Upgrade to TLS 1.2

Looks like we are using TLS 1.1 or 1.0. By default firefox is configured to only allow TLS 1.2 or above.

Create rpm for Fedora 33

@clbr I'm having problems building on Fedora 33, could you please give me a hand?

configure: error: Package requirements (glproto >= 1.4.17 gl >= 7.1.0) were not
met:

Package dependency requirement 'gl >= 7.1.0' could not be satisfied.           
Package 'gl' has version '1.2', required version is '>= 7.1.0'                 

Consider adjusting the PKG_CONFIG_PATH environment variable if you             
installed software in a non-standard prefix.                                   

Alternatively, you may set the environment variables GL_CFLAGS                 
and GL_LIBS to avoid the need to call pkg-config.                              
See the pkg-config man page for more details.

Here's what provides libGL:

[root@8184883e4598 /]# dnf provides /usr/lib/libGL.so*                         
Last metadata expiration check: 1:51:00 ago on Mon Feb 15 08:56:09 2021.       
libglvnd-devel-1:1.3.2-2.fc33.i686 : Development files for libglvnd            
Repo        : fedora
Matched from:
Filename    : /usr/lib/libGL.so

libglvnd-glx-1:1.3.2-2.fc33.i686 : GLX support for libglvnd                    
Repo        : fedora
Matched from:
Filename    : /usr/lib/libGL.so.1
Filename    : /usr/lib/libGL.so.1.7.0

I could patch configure.ac to ignore libGL version, in fact, it compiles successfully if I do.

Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.