# 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.