GSoC 2023 topics - cockpit-project/cockpit GitHub Wiki

Cockpit is a free and open-source front-end tool that provides administrative access to Linux systems.

Here are some ideas for the GSoC program in 2023.

Navigator plugin modernization

"Cockpit navigator" is a featureful File System Browser for Cockpit - remotely browse, manage, edit, upload, and download files on your server through your web browser.

The project is about modernizing this plugin by following some new designs and rewrite the codebase it to follow the standards specified by https://github.com/cockpit-project/starter-kit/. This involves porting to React, add tests and much more.

A more detailed description of the expectation can be found here.

Size: Big size

Difficulty: Hard

VPN support in cockpit Network plugin

This project is about extending the network page to include support for VPN. It could include WireGuard and/or OpenVPN.

Related discussion: https://github.com/cockpit-project/cockpit/issues/16992

Existing WIP: https://github.com/gil-obradors/cockpit/tree/VPNSupport

Size: Big size

Difficulty : Hard

VBox support in cockpit Virtual Machines plugin

“Cockpit Machines,” is a plugin which interacts with libvirtd and lets users create and manage Virtual Machines. It currently only supports QEMU/KVM hypervisor driver. Libvirt itself has support for other hypervisor drivers, including VirtualBox.

This project is about extending cockpit-machines codebase to include support for VirtualBox driver.

Read more to get some idea of the tasks for this project:
  • Eliminate hard-coded APIs and parameterize the hypervisor selection while keeping hardcoded Dbus paths, virsh connections APIs etc separately
[kkoukiou@sequioa cockpit-machines]$ git grep -e '/org/libvirt/QEMU' -e 'qemu:///' | wc -l
79
  • Use Patternfly to introduce in the UI a driver selection component and let the user switch between hypervisors

  • Identify which APIs are supported by libvirt for each hypervisor and hide the unsupported operations from the UI

It's desired approach to start conservatively by introducing a minimal set of features for the new driver and incrementally enable features while extending the test suite.

Technologies used: Javascript, React, python Knowledge of virtualization technologies is a plus

Related discussion: https://github.com/cockpit-project/cockpit/issues/11711

Size: Medium size

Difficulty: Hard

Disk usage analyzer new plugin

We want to provide users with an easy way to review the use of their server's storage space. This new plugin should be able to:

  • Scan a folder, including all subfolders
  • Show percentage based disk usage similarly to Gnome's disk usage analyzer
  • Delete a file or folder for the purpose of cleaning up space
  • Once this plugin identifies that a storage is full it should send a notification to the Cockpit's main navigation panel which will warn users about low disk space, when they use Cockpit but not the specific page

Technologies used: Javascript, React, python

Related discussion: https://github.com/cockpit-project/cockpit/issues/14083, https://github.com/cockpit-project/cockpit/issues/8787

Size: Big size

Difficulty: Hard


How to start contributing?

https://github.com/cockpit-project/cockpit/wiki/Contributing

Extra requirements for applicants

A linux development environment is a must for GSoC candidate students

Contact

The members of the cockpit team are during working hours (~8:00 - 16:00 UTC) available for answering questions at #cockpit channel on matrix fedora chat.

⚠️ **GitHub.com Fallback** ⚠️