Today's Deep-Dive: Apache Guacamole
Ep. 81

Today's Deep-Dive: Apache Guacamole

Episode description

The Deep Dive explores Apache Guacamole, a clientless remote desktop gateway that allows users to access their desktops from any device with a web browser, eliminating the need for special software installations. Sponsored by Safeserver, the discussion highlights Guacamole’s accessibility and versatility, supporting various protocols like VNC, RDP, and SSH for connecting to different systems, including Windows, Linux, and even mainframes. Its cloud compatibility enables users to securely access their data from anywhere, making it a valuable tool for remote work.

Apache Guacamole is open source, meaning its source code is available for anyone to modify and improve, which also eliminates licensing fees. The setup process involves installing essential dependencies and using GNU Automake for compilation, making it user-friendly. Once set up, users can log in through a web interface, manage connections, and experience seamless remote desktop access without noticeable lag. Features like clipboard integration, an on-screen keyboard, and strong security measures, including encryption, enhance its usability. Overall, Apache Guacamole provides a powerful, flexible, and secure solution for remote access needs.

Download transcript (.srt)
0:00

Welcome to the Deep Dive. Today we're going to be looking at Apache Guacamole.

0:04

Oh cool. Yeah. You familiar with this one? I am, yeah. So this is a clientless

0:07

remote desktop gateway.

0:09

Yeah. And thanks of course to Safe Server for sponsoring this Deep Dive. Right.

0:15

They can host

0:15

the software for you. They are experts in all things digital transformation. Nice.

0:19

Check them out

0:20

www.safeserver.de. Nice. So this is about accessing your computer desktops remotely,

0:27

but like without

0:29

all the usual hassle of you know installing special software. Right. On every

0:34

device. Exactly. That's

0:35

the beauty of being quietless. Yeah. Yeah. Apache Guacamole lets you connect to

0:40

your desktops from

0:41

anywhere using just a web browser. Okay so I could be like sitting at a coffee shop,

0:45

pull out my phone

0:46

and boom I'm working on my desktop just like I'm in my office. Yeah exactly. It's

0:49

like having a magic

0:50

portal to your desktop right in your pocket. Nice. And the best part is it uses

0:54

HTML5, a technology

0:55

that's already built into every modern web browser. Oh wow. So no downloads, no

0:59

plugins,

1:00

no compatibility headaches. That's pretty amazing. Yeah. But I think we need to

1:04

back up a bit for

1:05

those who might be new to this. Sure. Let's start with the basics. What exactly is

1:09

Apache Guacamole?

1:10

So at its core, Apache Guacamole is a remote desktop gateway. Think of it as a

1:16

bridge that

1:17

connects you to your desktops or servers. Okay. But instead of using traditional

1:21

client software,

1:23

it uses your web browser as the interface. So it's like a website that acts as a

1:27

window into

1:28

your remote computer. That's a great analogy. Yeah. And it's not just limited to

1:32

one type of

1:33

computer either. It supports standard protocols like BNC, RDP, and SSH, which means

1:39

you can connect

1:39

to a wide variety of systems from Windows and Linux machines to Raspberry Pis and

1:44

even mainframes.

1:45

Wait, mainframes like those giant old school computers you see in movies? Yes.

1:49

Apache Guacamole

1:50

is incredibly versatile. It can handle pretty much any type of system that allows

1:54

remote access.

1:55

Wow, that's amazing. Yeah. So we've established that it's convenient and versatile,

1:59

but why would

2:00

someone choose Apache Guacamole over other remote desktop solutions? Right. What

2:04

are the real

2:05

advantages here? Well, accessibility is a huge one, as we've discussed. It works

2:10

with just a

2:10

web browser, so you're not tied to a specific device or location. You can work from

2:15

your laptop,

2:16

your tablet, even your phone, as long as you have an internet connection. That's a

2:20

game changer for

2:20

remote work, isn't it? Especially with so many people working from home or on the

2:25

go these days.

2:26

Absolutely. And it ties into another key advantage. It's cloud compatibility. Okay.

2:31

Both Guacamole itself and the desktops you're connecting to can be hosted in the

2:36

cloud. So

2:36

I could have my entire work set up my desktop. Yeah. My files, everything running

2:41

on a server

2:42

somewhere in the cloud. Yeah. And I could access it securely from anywhere in the

2:45

world. Precisely.

2:46

It gives you incredible flexibility and resilience. You're no longer reliant on a

2:50

specific physical

2:51

machine and your data is securely stored in the cloud. And we can't forget the fact

2:55

that

2:56

Apache Guacamole is open source software. Okay. Let's break that down a bit. What

2:59

does open

3:00

source actually mean and why should people care? Open source means that the source

3:04

code of the

3:05

software is freely available to anyone. This has some major benefits. First, it

3:10

allows for

3:10

community-driven development anyone can contribute to the project report. Bugs

3:15

suggest improvements

3:16

and even create their own custom versions. So it's like a community effort

3:20

constantly evolving and

3:21

improving thanks to the contributions of passionate developers all over the world.

3:25

Exactly. And it also

3:26

means that there are no licensing fees you can download, use, and even modify the

3:31

software

3:32

completely free of charge. This makes it a particularly attractive option for

3:36

individuals,

3:37

small businesses, and organizations with limited budgets. That's a big deal,

3:41

especially when you

3:42

compare it to proprietary software that can cost a fortune in licensing fees. So we've

3:47

got this

3:47

powerful, flexible, and free tool. Right. But I'm also curious about how it all

3:51

works behind the

3:52

scenes. Like how does it actually connect to all these different systems and make

3:55

it all work so

3:56

seamlessly? Yeah. So at the heart of Apache Guacamole is a clever system of APIs.

4:02

APIs. Think of APIs

4:03

like messengers that allow different software components to communicate with each

4:07

other. So

4:08

in this case, the APIs enable Guacamole to talk to different remote desktop

4:13

protocols and translate

4:14

those interactions into something your web browser can understand. So these APIs

4:19

are the glue that

4:20

holds everything together, enabling Guacamole to talk to different remote desktop

4:25

protocols. Yeah.

4:26

And translate those interactions into something your web browser can understand.

4:29

You got it. And

4:30

the cool part is these APIs are thoroughly documented and relatively easy to

4:34

understand,

4:35

even for those who aren't seasoned programmers. That's great to hear. So not only

4:38

can you use

4:39

Guacamole to connect to different types of computers, but you can also integrate it

4:43

with

4:43

other applications and services, creating some really interesting workflows.

4:47

Absolutely. And

4:48

that's just scratching the surface of what's possible with Guacamole. But let's

4:51

save that

4:52

for later. First, let's take a closer look at the server side of things. What does

4:56

it take to

4:56

actually get Guacamole up and running? Good point. Let's get into the nitty gritty

5:01

of what makes this

5:02

all tick. All right. So before we went to the break, we were talking about, you

5:06

know, what makes this

5:07

all work? What makes Apache Guacamole tick? Let's explore what it takes to set up a

5:12

Guacamole server.

5:13

All right. So let's pretend I'm ready to roll up my sleeves, get my hands dirty.

5:17

Okay. Where do I

5:18

even begin? Well, the core of the Guacamole server is a package aptly called Guacamole

5:24

server. Okay.

5:25

And within that package, you'll find a key component called Guacte, the Guacamole

5:30

proxy demon. Okay.

5:32

It's the workhorse that handles all the communication between your web browser and

5:35

the remote

5:36

desktops you're trying to access. Okay. Guacamole. Got it. It sounds like this

5:39

little demon is doing

5:40

a lot of heavy lifting behind the scenes. It really is. It translates all the

5:44

different

5:44

remote desktop protocols like VNC, RDP, and SSH into something your web browser can

5:50

understand.

5:51

It's like a universal translator for remote access. That's pretty cool. But I'm

5:55

guessing

5:55

there are some things I need to have in place before I can even start using Guacan,

5:59

right?

5:59

You're absolutely right. Like any software, Guacamole has some dependencies, other

6:03

software

6:03

components, it needs to function correctly. Right. Some of these are essential.

6:07

Like Cairo,

6:08

a graphics library that handles the visual rendering of the remote desktop

6:12

environment.

6:13

So that's how I actually see what's happening on my remote computer. Right. Cairo

6:17

is drawing

6:17

the pictures from my web browser. Exactly. And you'll also need libraries for

6:21

handling image

6:22

formats like JPEG and PNG because after all those remote desktop screens are

6:27

essentially images being

6:29

transmitted over the network. Makes sense. Are there any other essential

6:32

dependencies I need

6:33

to worry about? Yes. One more crucial one. Okay. OSSP UUID. It's a library for

6:40

generating unique

6:41

identifiers which Guacamole uses for various internal functions. Okay. These are

6:46

the non-negotiables,

6:47

the must-haves to get Guacamole up and running. All right. So those are the

6:50

essentials. But you

6:52

mentioned earlier that there are also optional dependencies. Right. What are those

6:55

all about?

6:56

That's where things get really interesting. The optional dependencies allow you to

6:59

customize

7:00

your Guacamole setup to support specific remote desktop protocols. For instance, if

7:05

you want to

7:06

connect to Windows machines using RDP, you'll need to install FreeRDP, an open

7:11

source implementation

7:13

of the remote desktop protocol. So if I primarily work with Windows machines, FreeRDP

7:18

is a must-have.

7:19

Yeah. What about other protocols like SSH or Telnet? For SSH, you'd need LibSesh2

7:26

and OpenSSL,

7:27

which provide the secure shell connection and encryption. And for Telnet, you'd

7:32

need LibTelnet

7:32

and Pango, a library for text rendering. So it's like a build-your-run adventure

7:37

picking and choosing

7:37

the components you need based on the types of systems you want to access. Right.

7:41

That's pretty

7:42

flexible. It is, and there are even more optional dependencies for things like

7:45

audio support within

7:46

VNC, SFTP file transfer for VNC or RDP, and support for the WebP image format. Wow.

7:53

The beauty of open

7:54

source is that you can tailor your guacamole installation to fit your exact needs.

7:58

I'm starting

7:58

to see why people get so excited about open source software. Yeah. It puts you in

8:02

control. Yeah. But

8:03

let's get back to the setup process once I have all my dependencies sorted out.

8:06

What's next? So once

8:07

you have everything in place, the compilation and installation process is actually

8:13

quite straightforward.

8:14

Okay. Guacamole uses GNU Automake, a tool that simplifies the building of software

8:20

on Linux and

8:21

other Unix-like systems. So it's not like deciphering ancient hieroglyphics. Not at

8:26

all. There's a

8:26

standard configure script that helps automate a lot of the process. You essentially

8:30

run the configure

8:31

script, then make and finally make install. That's pretty simple. And after that, I'm

8:35

good to go.

8:35

Almost. You still need to start the Guacamole daemon, which can be done manually or

8:40

by using

8:40

an init script. If you have one set up once that's running, you're ready to

8:44

configure the Guacamole

8:45

web interface and start connecting to your remote desktops. So we've covered the

8:49

server side, the

8:50

dependencies and the compilation process. I'm ready to see what this all looks like

8:54

from a user's

8:55

perspective. What's it like to actually use Guacamole? That's where the real magic

8:58

happens.

8:59

We'll dive into the Guacamole user experience when we come back for part three of

9:03

our deep dive.

9:04

Okay, sounds good. All right, so we're back and we've explored what Apache Guacamole

9:09

is. We've

9:10

peeked under the hood at how the server works. Right. Now let's step into the user's

9:14

shoes and

9:14

see what it's like to actually use this clientless wonder. Yeah, this is where

9:19

Apache Guacamole really

9:20

shines. It's designed to be incredibly user friendly, even for those who aren't

9:25

tech savvy.

9:26

So I've got my Guacamole server all set up and ready to go. Okay. What's my first

9:30

step? It's

9:30

remarkably simple. You just open your web browser, type in the address of your Guacamole

9:35

server and

9:35

hit enter. You'll be greeted by a login screen. No special software to install. No

9:41

complicated

9:41

configurations. Just a web page. That's all it takes. Once you log in, you'll see a

9:46

list of

9:46

connections you've set up. Okay. These could be different remote desktop servers or

9:51

even specific

9:52

applications you've configured to access through Guacamole. So it's like a

9:55

personalized portal to

9:56

all the remote resources I need access to. Precisely. You can organize your

10:00

connections,

10:01

give them descriptive names and even group them into folders. It's all about making

10:05

remote access

10:06

as streamlined and intuitive as possible. Okay. So I've logged in, I see my list of

10:11

connections,

10:11

I click on the one I want and then what? Then Guacamole takes over, establishing a

10:15

secure

10:16

connection to your remote system and displaying its desktop environment right

10:20

within your browser

10:21

window. You'll see your familiar desktop, your files, your applications, everything,

10:26

just as if you were sitting in front of the physical machine. And this is where

10:29

HTML5 comes

10:30

into play, right? It allows Guacamole to create this immersive remote desktop

10:35

experience without

10:37

any plugins or extra software. Exactly. HTML5 is the secret sauce that makes Guacamole

10:43

so

10:43

seamless and accessible. Any device with a modern web browser can connect to a Guacamole

10:48

server and

10:49

enjoy a full-fledged remote desktop experience. But how is the actual experience of

10:53

using a remote

10:54

desktop through Guacamole compared to using a traditional remote desktop client?

10:58

Yeah. Is

10:59

there any lag or does it feel clunky? That's one of the things that surprises

11:02

people most about

11:03

Guacamole. Okay. It's designed for low latency and high performance. In most cases,

11:07

it feels

11:08

incredibly smooth and responsive. You can move your mouse, type scroll, and even

11:12

watch videos

11:13

without any noticeable lag. That's impressive. But what about features? Does Guacamole

11:17

offer

11:18

anything beyond basic remote desktop access? Absolutely. It has a range of features

11:24

that

11:24

enhance usability and productivity. For instance, it supports full clipboard

11:29

integration, meaning

11:30

you can seamlessly copy and paste text and files between your local device and the

11:35

remote desktop.

11:36

That's a must-have for anyone who regularly works with remote systems. Right. What

11:40

else?

11:40

Guacamole also has a built-in on-screen keyboard, which is incredibly useful when

11:45

accessing remote

11:46

systems from touchscreen devices like tablets or smartphones. Nice. And it supports

11:51

internationalization

11:52

so users can access Guacamole in their preferred language. So it's not just about

11:55

functionality,

11:56

it's about creating a smooth and user-friendly experience for everyone, regardless

12:01

of their

12:01

device or language preferences. Exactly. That's fantastic. But what about security?

12:05

Is it safe

12:06

to access sensitive data through Guacamole? Security is a top priority for Guacamole.

12:11

All connections are encrypted using industry standard protocols like TLS or SSH,

12:17

ensuring

12:17

that your data is protected during transmission. And since it's open source, the

12:21

code is constantly

12:22

being reviewed and scrutinized by a global community of developers, which helps

12:25

identify

12:26

and patch any potential vulnerabilities quickly. That's reassuring. It sounds like

12:30

Guacamole has

12:31

struck a great balance between usability, functionality and security. It really has.

12:35

It's a powerful

12:36

tool that can revolutionize the way we work, making remote access easier, more

12:41

secure and

12:42

more accessible than ever before. Well, it's been an amazing deep dive into Apache

12:46

Guacamole,

12:47

exploring its capabilities, its inner workings and its potential to transform how

12:51

we interact

12:52

with our computers. Yeah, it really has. And don't forget, if you're looking for

12:56

expert

12:56

support in setting up or hosting your own Guacamole solution, check out our sponsor

13:00

Safe Server. They have the experience and the know-how to guide you on your digital

13:04

transformation journey. Check them out at www.safeserver.de. So thanks again to

13:10

Safe

13:10

Server for their support and to all of you for joining us on this deep dive into

13:14

Apache

13:14

Guacamole. Yeah, thanks for listening everybody. Until next time, keep exploring,

13:20

and keep diving deep.

13:20

and keep diving deep.