GSoC’23

I just had one of the quickest summers ever. This summer I worked on Cockpit, and the experience has been so enjoyable that it’s nearly winter before I realize it.

To begin, I got in touch with the Cockpit team through the Google Summer of Code (GSoC) 2023 program back in March.

GSoC is a prestigious program that offers programmers the opportunity to contribute to open-source projects and gain valuable experience. This year, I had the privilege of participating in GSOC 2023.

Over the course of 8 months, I gained hands-on experience with sysadmin, computer networking, and well known VPN protocols like WireGuard and OpenVPN. I’ll just expand on that in the rest of this article.

So What is Cockpit?

Cockpit a modern user-friendly graphical interface for Linux servers. Have a Linux server? Install Cockpit! And you can manage it any where (windows, mac, linux) and anytime using your web browser!

Want more coolness? If you daily drive a linux workstation, install Cockpit Client to connect to and administer your linux servers without installing a byte. It’s magic 🪄.

Cockpit is very modular. Every aspect of a system is nicely separed into pages/plugins. And each page is packed with most of useful options a sysadmin may need. In the Networking page, for example, you can view your network usage, see network logs, configure firewall rules and any interface managed by NetworkManager.

It is a one-stop shop for managing everything about a system, from an overview of CPU and memory utilization to managing storage devices, containers, virtual machines, file browsing, examining systemd services and logs, and networking etc.

Here is a little screenshot of the Overview page:

cockpit overview page

Speaking of networking, wouldn’t it be wonderful if we could effortlessly set up cutting-edge VPN protocols securely in just a few clicks? This would not only enhance security for individual use cases without relying on closed-source third-party services but also address the needs of enterprises. I’m delighted to announce that I did just that ;)

Bringing VPN Support to Cockpit

I won’t delve into the technical intricacies here, because it’s too much stuff to cover. In fact, I spent more time thinking and troubleshooting than actually writing code over the summer, hehe. The original issue cockpit-project/cockpit#16992 touches on some of that. If you want to get straight to code, you’ll find most of it in my PRs on GitHub.

The first tunnel we decided to implement was WireGuard, as it’s simpler than OpenVPN, has less options to deal with and represents a latest technology garnering much attention.

Here’s a glimpse of the final result:

cockpit wireguard dialog

It was a large undertaking, so it had to be splitted into separate PRs.

The next endeavor was OpenVPN, a project of considerable scale that might take a few more months to complete. I’m currently focusing on PKI mode.

Here’s a demo of the progress so far:

You can also track the ongoing work in PR#19363.

Other contributions

Being a curious person, I’ve always been very interested in other areas of Cockpit besides networking or the VPN work. Here’s a glimpse of some other contributions I’ve made:

Conclusion

Participating in GSOC 2023 and contributing to the Cockpit project has been a rewarding and enlightening experience. It allowed me to apply my skills, work with fantastic people, and make a tangible impact on a project that will hopefully be useful to server administrators around the world.

I believe reviewing code and providing valuable suggestions is as crucial as writing it. I’d like to thank KKoukiou, jelly, mvollmer, and garrett for their reviews and feedback. Special gratitude to GSOC, and of course, my mentor Martin Pitt who did everything above and a lot more, who supported me throughout this journey.

Stay tuned for more updates, and keep exploring the ever-expanding possibilities of Cockpit and open-source software!

Published on:


If you have something in mind, please don't hesitate to reach out to me via email.