Even with the growing popularity of cloud services, the need for running native applications still exists. By using [noVNC](https://github.com/novnc/noVNC) and [TigerVNC](https://tigervnc.org), you can run native applications inside a [Docker](https://www.docker.com/) container and access them remotely using a web browser. Additionally, you can run your application on a server with more system resources than you might have available locally, which can provide increased flexibility when running large applications. In this tutorial, you'll containerize [Mozilla Thunderbird](https://www.thunderbird.net), an email client, using Docker. Afterward, you'll secure it and provide remote access using the [Caddy](https://caddyserver.com/) web server. When you're finished, you'll be able to access Thunderbird from any device using just a web browser. Optionally, you'll also be able to locally access the files from it using [WebDAV](http://www.webdav.org/). You'll also have a fully self-contained Docker image that you can run anywhere.
How To Remotely Access GUI Applications Using Docker and Caddy on Debian 10
How To Remotely Access GUI Applications Using Docker and Caddy on Debian 9
How To Remotely Access GUI Applications Using Docker and Caddy on Ubuntu 20.04
How To Remotely Access GUI Applications Using Docker and Caddy on Ubuntu 18.04