Cloud-init template to deploy a server with Zoom and Guacamole installed. The intended use case is unattended meeting recording: connect to the remote desktop with your browser, join a Zoom meeting, hit the record button, and close the browser — the recording will go on.
- DigitalOcean basic regular droplet with 2 GB RAM and 1 CPU.
- Ubuntu 22.04.
It's recommended to give more RAM and CPU cores, though, otherwise the recording quality might suffer.
- Run
GITHUB_USERNAME=... DOMAIN=... ./cloud-init.yaml.gen.shto generate the cloud-init.yaml file with your values. There are also some random passwords generated by this command — they are only used to connect the services on the server together, the user doesn't need to know them. - Deploy a VM, make sure to pass the generated cloud-init.yaml file as an initialization script.
- Wait until cloud-init finishes the setup; it takes some time. You should be
able to monitor the progress in
/var/log/cloud-init-output.log. The VM should reboot twice. - In the meanwhile setup DNS records to point your domain to the IP address of your new VM.
- Log into the VM and run
/root/provision.sh. This script relies on the domain having been setup at this point, that's why it's not part of cloud-init.yaml. - After provision.sh finishes, Guacamole already runs. Make sure to open it in
your browser at your domain, log in as soon as possible using the default
credentials (login and password are
guacadmin) and change them immediately. - In Guacamole, create a new connection with protocol RDP, address 172.17.0.1, port 3389, assign some name.
- At this point, you can connect to this connection, and you should see the Xfce4 desktop with Zoom, Firefox and Midori installed.
Xfce4 is used as a desktop environment, Xrdp starts Xorg and provides an RDP server, Guacamole runs as a set of Docker containers managed by Docker Compose, it connects to Xrdp, uses PostgreSQL as a database and stands behind nginx reverse proxy. The HTTPS certificates are issued by Let's Encrypt. Two browsers are installed for convenient opening of Zoom links: Firefox and Midori.