# 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 done ``` After that you can already start the containers using `docker-compose up -d` ## 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.