====== Guacamole ======
| [[https://guacamole.apache.org/|www/guacamole-client]] |
//Apache Guacamole is a clientless remote desktop gateway, supporting VNC, RDP and SSH.//
===== Set up Guacamole on FreeBSD =====
==== Update the system and install required packages ====
freebsd-update fetch && freebsd-update install
pkg update && pkg upgrade
pkg install guacamole-client guacamole-server
cp /usr/local/etc/guacamole-client/user-mapping.xml.sample /usr/local/etc/guacamole-client/user-mapping.xml
sysrc tomcat8_enable="YES"
sysrc guacd_enable="YES"
==== Prerequisites for the database ====
Guacamole-Client requires a database located on local or remote server. In this example we use %%MariaDB%% as it is widely known and supported.
At the time of writing %%MariaDB%% 10.3 is the latest version and the %%MySQL%% Java Connector is at 8.0.15
pkg install mariadb103-server mysql-connector-java-8.0.15
sysrc mysql_enable="YES"
/usr/local/etc/rc.d/mysql-server start
==== Set up MariaDB SQL database ====
First we secure the new installation and set a root password for the %%MariaDB%%
mysql_secure_installation
Now it is time to connect to %%MariaDB%% and create our database
mysql -u root -p
CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'localhost' IDENTIFIED BY 'S3curePassw0rd';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'localhost';
FLUSH PRIVILEGES;
quit
==== Prepare Guacamole ====
We add the tables and setup basic file and folder structure
cd /usr/local/share/guacamole-client/
tar xvfz guacamole-auth-jdbc.tar.gz
cd guacamole-auth-jdbc-1.0.0/mysql/schema
cat *.sql | mysql -u root -p guacamole
mkdir /usr/local/etc/guacamole-client/extensions
mkdir /usr/local/etc/guacamole-client/lib
cp /usr/local/share/guacamole-client/guacamole-auth-jdbc-1.0.0/mysql/guacamole-auth-jdbc-mysql-1.0.0.jar /usr/local/etc/guacamole-client/extensions/
cp /usr/local/share/java/classes/mysql-connector-java.jar /usr/local/etc/guacamole-client/lib/
cd /usr/local/etc/guacamole-client/
cp guacamole.properties.sample guacamole.properties
==== Connect Guacamole and MariaDB ====
The file **guacamole.properties** must be filled with our new environment
guacd-hostname: localhost
guacd-port: 4822
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: S3curePassw0rd!
mysql-default-max-connections-per-user: 0
mysql-default-max-group-connections-per-user: 0
==== Restart the daemons ====
Finally we restart **guacd** and **tomcat8**
/usr/local/etc/rc.d/guacd restart
/usr/local/etc/rc.d/tomcat8 restart
==== Notes and further information ====
If you get a blank screen while connecting to http:%%//%%%%<%%yourhost>:8080/guacamole/ check the logs:
tail -f /usr/local/apache-tomcat-8.0/logs/catalina.out
Maybe the timezone of %%MariaDB%% is wrong or unrecognized, then you have to set a new one that fits your region
mysql -u root -p
SET GLOBAL time_zone = '+2:00'; (hours counting from UTC)
----
{{tag>HowTo Ports}}