Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zoomrec

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.

Tested environment

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

Deployment

  1. Run GITHUB_USERNAME=... DOMAIN=... ./cloud-init.yaml.gen.sh to 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.
  2. Deploy a VM, make sure to pass the generated cloud-init.yaml file as an initialization script.
  3. 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.
  4. In the meanwhile setup DNS records to point your domain to the IP address of your new VM.
  5. 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.
  6. 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.
  7. In Guacamole, create a new connection with protocol RDP, address 172.17.0.1, port 3389, assign some name.
  8. At this point, you can connect to this connection, and you should see the Xfce4 desktop with Zoom, Firefox and Midori installed.

Under the hood

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.

About

Deploy Zoom in the cloud for unattended meeting recording

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages