{{tag>linux server debian vnc setup vncserver tigervnc gnome xfce}}
======VNC Server======
This section is a bit of a mess and needs a clean up.....
I want a simple server GUI VNC system. Sadly most the instructions on the net do not seem to meet my needs.
* Install a GUI
* A light desktop system, e.g. xfce
* The x11 windows manager system
* A display manager, optional
* ''sudo apt install --no-install-recommends xfce4 xserver-xorg'', xfce-goodies is an option package
After setting up a basic Debian server I do the following.
Some additional confusing notes:
* ''vncserver -list'' on server to check running server sessions
* ''vncserver -kill :1'' to kill the :1 server listed
* ''vncserver -localhost no -geometry 800x600 -depth 24'', use the ''-localhost no'' option to allow remote connection.
I had a lot of problems getting tigervncserver to work with xfce. The site [[https://unix.stackexchange.com/questions/762533/tigervnc-xfce-startup-failing-on-new-debian-12-bookworm-install-another-sessio|TigerVNC Xfce startup failing on new Debian 12 bookworm install. "Another session manager is already running"]]
This recommended the following ''~.vnc/xstartup'' configuration that simply worked, it took a long time to find a solution:
#!/bin/bash
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session xfce4-session
The parameter ''vncconfig -iconic'' is for X clipboard support.
My ''~./vnc/config'':
session=xfce
geometry=2000x1200
localhost=false
The ''localhost=false'' parameter means that you do not need ssh to access. As this is on my LAN only I do not see the need for SSH. (If i need WAN access I can Wireguard VPN into my local LAN.)
When I finally got tigervncserver with xfce on Debian 12 the XFCE session came up with an annoying authorisation request that I found a resolution at [[https://www.geekdecoder.com/how-to-fix-authentication-is-required-to-create-a-color-profile-managed-device-on-ubuntu-22-04/|How to fix “Authentication is required to create a color profile/managed device”]]
====Newer references====
*How to Forge [[https://www.howtoforge.com/how-to-install-vnc-server-on-debian-12/|How to Install VNC Server on Debian 12]]
*[[https://shape.host/resources/how-to-set-up-and-install-vnc-server-on-debian-12|How to Set Up and Install VNC Server on Debian 12]]
*[[https://computingforgeeks.com/install-and-configure-tigervnc-vnc-server-on-debian/|Install and Configure TigerVNC VNC on Debian 12/11/10]]
*[[https://github.com/novnc/noVNC|Github noVNC]]
*[[https://novnc.com/info.html|noVNC]]
*[[https://guacamole.apache.org/|Apache Guacamole]]
*[[https://guacamole.apache.org/doc/gug/using-guacamole.html|Using Guacamole]]
*[[https://www.howtoforge.com/how-to-use-apache-guacamole-to-create-a-vnc-connection/|How to use Apache Guacamole to create a VNC Connection]]
*[[https://medium.com/@anshumaansingh10jan/unlocking-remote-access-a-comprehensive-guide-to-installing-and-configuring-apache-guacamole-on-30a4fd227fcd|Unlocking Remote Access: A Comprehensive Guide to Installing and Configuring Apache Guacamole on Ubuntu]]
*[[https://www.smarthomebeginner.com/install-guacamole-on-docker/|Install Guacamole on Docker – VNC, SSH, SFTP, and RDP like a Boss!]]
++++Old, tl;dr;|
====Old VNC Setup Notes====
For 18.04 I decided to go with TigerVNC according to Linuxize [[https://linuxize.com/post/how-to-install-and-configure-vnc-on-ubuntu-18-04/|How to Install and Configure VNC on Ubuntu 18.04]]. The main difference is that I can not be bothered using a secure link in my home private network. So to allow a direct connection add ''-localhost no'' to the TigerVNC command line to allow direct connection, see GitHub TigerVNC notes unable to connect to socket: [[https://github.com/TigerVNC/tigervnc/issues/117|Connection refused(10061) #117]]
The basic set up is given in have the know how [[http://www.havetheknowhow.com/Configure-the-server/Install-VNC.html|Ubuntu Sever install VNC]], with more detailed startup details given in [[http://www.havetheknowhow.com/Configure-the-server/Run-VNC-on-boot.html|Ubuntu Server: How to run VNC on startup]].
I prefer a full xfce desktop to a cut down gnome one, so I installed it instead, see [[https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04|How to Install and Configure VNC on Ubuntu 16.04]] from Digitalocean.
A concise setup is here [[https://linuxconfig.org/vnc-server-on-ubuntu-18-04-bionic-beaver-linux|VNC server on Ubuntu 18.04 Bionic Beaver Linux]].
I basically follow the Have the know how instructions, but instead of ''sudo apt install gnome-core'', use ''sudo apt install xfce4 xfce4-goodies''. I have been using vnc4server, not tightvncserver. Also in ~/.vnc/xstartup, only:
#!/bin/bash
unset SESSION_MANAGER
startxfce4 &
(Basically the startxfce4 &, instead of metacity &, gnome-settings-daemon &, gnome-panel &)
The xfce screen-saver seems to default on and use significant system resources, and is basically unnecessary on a headless server. To disable perform the following:
*In the xfce desktop go to the ''Applications Menu > Settings > Screensaver'' and disabled the screensaver, then from the ''File'' menu chose ''Kill Daemon''.
*Then go to the ''Applications Menu > Settings > Session and Startup'' and unchecked ''Screensaver (launch screensaver and locker program)'' in the ''Application Autostart'' tab.
(The xfce screensavers actually look quite nice, and may make sense on a standard desktop install.)
The xfce default shell seems to be sh (/bin/sh), I prefer bash (/bin/bash). To check the current shell, type: ''echo $SHELL''. To use bash simply type ''bash''. To make permanent add the line ''exec /bin/bash'' to the end of ''vim ~/.profile''. You will need to restart VNCserver for this to take effect.
===Some other important tips:===
*To start server ''vncserver -geometry 2200x1340''. (I have 2 preferred geometries, one for smaller screens (1880x1040) and one for larger (2200x1340))
*To stop server "vncserver -kill :1" or :2
*The server log files are stored in ~/.vnc, ''less ~/.vnc/KPTreeServer:1.log'' or :2. (A log files may contain a number of errors and warnings, however this does not necessarily mean the vncserver will not operate correctly.)
*The .pid files in ~/.vnc generally show which vnc are currently running, performance can be checked by viewing the log file. The running vnc server process(es) can also be checked with the command ''ps -A | grep vnc''
*The vncserver startup configuration file: ''vim ~/.vnc/xstartup''
*I set up cron to run the following script at boot: ''vim ~/Myscripts/StartVNC.sh'', StartVNC.sh:
#!/bin/sh
/usr/bin/vncserver -geometry 1880x1020
/usr/bin/vncserver -geometry 2350x1335
*The cron script statement is ''/home/homedirectory/Myscripts/StartVNC.sh >/dev/null 2>&1''
(I elected not to use the systemd setup described in the Digitalocean set instructions as I normally run 2 vncservers with different geometries to allow better performance on tablet/laptop/desktop computers.)
If connection is refused may need to use option ''-localhost no'', e.g. ''vncserver -localhost no''
++++
====Some preferred graphical programs:====
*Synaptic package manager - a graphical package manager; package: synaptic (To use: ''gksudo synaptic &'', will only work with root privileges.)
*[[https://virt-manager.org/|Virtual machine manager]] - a graphical virtual machine manager; package: virt-manager
*[[https://www.xnview.com/en/|XnView]] - a photo display manipulation program
*[[https://www.byobu.org/|Byobu]] - a fancy terminal; package byobu
*Gnome file manager; package: nautilus. (CLI: ''gksudo nautilus &'', but be very careful if using in root...)
*Gnome disk utility; package: gnome-disk-utility. (CLI: ''gksudo gnome-disk &'', but be care if using in root...)
*Gnome disk usage utility; package: boabab. (CLI: boabab &)
++++Home Server Index|
*[[home_server:home_server_setup:summary]]
*[[home_server:home_server_setup:home_it_setup]]
*[[home_server:home_server_setup:Network_setup]]
*[[home_server:home_server_setup:kvm]]
*[[home_server:home_server_setup:vnc_setup]]
*[[home_server:home_server_setup:disk_check]]
*[[home_server:home_server_setup:other_services:index]]
++++
<- home_server:home_server_setup:kvm|Prev ^ home_server:home_server_setup:summary|Start page ^ home_server:home_server_setup:disk_check|Next ->