Serve a desktop or single application over VNC in Browser using Docker
Find a file
Manuel 2e3a3c59c3
chore: gitattributes, README, Docker
* Add gitattributes
* Update README to include additional configuration instructions
* Update OBS app to use prebuilt Docker images
* Remove obsolete links attribute from compose files
* Use cage based image by default for OBS app
* Fix use of yaml anchors in compose files for new compose version
2023-04-02 23:12:21 +02:00
apps/obs chore: gitattributes, README, Docker 2023-04-02 23:12:21 +02:00
caddy Add OBS application 2022-10-02 20:32:03 +02:00
.env Add OBS application 2022-10-02 20:32:03 +02:00
.gitattributes chore: gitattributes, README, Docker 2023-04-02 23:12:21 +02:00
.gitignore Add OBS application 2022-10-02 20:32:03 +02:00
compose.yml chore: gitattributes, README, Docker 2023-04-02 23:12:21 +02:00
LICENSE.txt Add OBS application 2022-10-02 20:32:03 +02:00
prepare.sh Add OBS application 2022-10-02 20:32:03 +02:00
README.md chore: gitattributes, README, Docker 2023-04-02 23:12:21 +02:00

Desktop in Docker

This serves as a reference for how to run an arbitrary desktop environment, window manager or single application in docker and served securely in Browser using Guacamole.

Run

First we need to prepare the database because Guacamole is a bit special in this regard.

It should also ask you what domain Caddy should use to serve Guacamole on, it should automatically try to get a valid certificate for your domain.

$ ./prepare.sh
Domain Guacamole should be served on [localhost]: desktop.mydomain.com
Preparing folder guacamole/init and creating guacamole/init/initdb.sql
Setting permissions for user directory (chown needs root)
everything done

After that you can already start the containers using docker-compose -f compose.yml up -d to create the network first and then optionally run docker-compose up -d to build and start the default OBS app container.

Using the default guacamole credentials guacadmin:guacadmin, you can now create a connection using obs:5900 as network parameters in Settings > Connection > New Connection with VNC as protocol.

Config

There are a few environment variables you can set in .env that are used by docker-compose for the compose.yml.

If you want to serve it locally for tesing you can uncomment CADDY_HTTP and CADDY_HTTPS in the reference .env file. By default docker makes it listen on port 80 and 443 on all interfaces.