Using Caddy to host PWAs for teaching and developing robotics software

Hey folks, I’d like to showcase Caddy being used for teaching and developing robotics software:

Specifically, we’re developing a template for open-source educational platforms to accessibly teach robotics to young and disadvantaged students, where Caddy is used to host multiple Progressive Web Apps, allowing users to visualize and debug robotic software stacks entirely from a web browser.

By combining Caddy with Dev Containers, students can easily self host these PWAs locally or from cloud base development environments, such as GitHub Codespaces, allowing instructors to customize, curate, and share course related materials, while bypassing any potentially tedious or error prone setup process.

For reference, you can view the exact Caddyfile being used, as of writing, right here:

As a roboticist, this was largely a (enjoyable) learning process for me, and was developed and documented over the course of these two PRs. Just Crtl+F Caddy for the relevant sections:

Thanks to the fantastic docs for Caddy, developing a suitable Caddyfile was perhaps the easiest task for this project, and so I’d like to highlight that. Still, this is a bit new to me, so I’d also like to ask for feedback or recommendations. There’s still plenty to learn, and I’m guessing this could be simplified or improved.

I’ll be giving a mini workshop for the rest of my community to disseminate this template, so I’d like to ensure I’m following basic best practices in the template as a suitable example:

Cheers to the Caddy devs,