Running gScreen in the cloud
Back to HelpgScreen is very easy to set up in a server provided by a cloud provider such as DigitalOcean, AWS, or Google Cloud.
Why would you want to do this? The main reason is that it's a lot easier to share your slideshow with multiple viewers this way, especially when all viewers are not on the same home network. As an example, you could use this to provide a private stream of family photos & videos to grandparents, or other loved ones.
Step 1: Acquire hardware
Setting up a server is out-of-scope here, but it's quite easy to get started with one of these tutorials:
Make sure to pick a Linux distribution like Ubuntu or Debian; Windows and other UNIX variants are not supported at the moment.
Step 2: Download and set up gScreen
Follow the steps in the Getting Started guide to download gScreen and connect it to your Google account. Once that's done you should be able to run this command to start the server:
❯ ./gscreen start --data-dir ~/gscreen-db
Starting web server at 127.0.0.1:9999
The webserver is running on localhost, and so isn't accessible from the outside world just yet. This is by design...please consider the security of your media very carefully if you plan to run the webserver on 0.0.0.0.
Step 3: Allow external access
You now want to selectively allow certain people to access this webserver. There are many ways to do this, here are just a few:
- oauth2-proxy
- Cloudflare Access
- traefik-forward-auth
- Caddy with basic auth or OAuth
- Tailscale
- setup-ipsec-vpn (or any other VPN, really)
Feel free to get in touch if you'd like to discuss any of these options.
Step 4: Secure the server
Now that you have authentication set up, make sure your server is safe from side-channel attacks. This is a comprehensive guide to basic Linux server security: https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
Step 5: You're done!
You should now have a publicly accessible endpoint (which is authenticated and only allows a whitelist of users through) that proxies traffic to the webserver running on 127.0.0.1:9999. Any number of viewers can use this for a shuffled stream of media from your Google Photos account.
