Ich habe mich die letzten Tage ein wenig in Python3 und die UI Gestaltung mit PyQt5 eingearbeitet. Ja, alles von Anfang an. War ein Haufen Arbeit und alle Dinge habe ich noch nicht verstanden ;)

Das Projekt hört auf den netten Namen WireguardUI und damit sollte auch klar sein, was man damit machen kann!? Tunnel an und aus LOL

Das Hauptfenster

Das Setup-Fenster

Das Fenster soll später die wg0.conf erstellen. So gut wie fertig ;)

Es wird alles in einer XML Config zwischengespeichert usw.

<config>
<interface>
<IPv4>10.10.1.15</IPv4>
<IPv6>xxxx:xxx:c0c:59e6:100::18</IPv6>
<Listen_Port>51820</Listen_Port>
<DNS>1.1.1.1</DNS>
</interface>
<peer>
<IPv4>1.1.1.1</IPv4>
<Port>51820</Port>
<Public_Key>None</Public_Key>
<PSK_Key>None</PSK_Key>
<Allowed_IPs>0.0.0.0/0, ::/0</Allowed_IPs>
</peer>
</config>

Und hier ein Teil des Codes

# Hier definieren wir ein Layout. Das soll man so machen! Habe ich im Python Forum gelesen.
#def createFormGroupBox(self):
self.formGroupBox = QGroupBox("Form layout")
layout = QFormLayout()
layout.addRow(QLabel("Interface"))
layout.addRow(QLabel("Interface IPv4 Address:"), self.lineedit1_ipv4)
layout.addRow(QLabel("Interface IPv6 Address:"), self.lineedit2_ipv6)
layout.addRow(QLabel("Listen Port:"), self.lineedit3_listen_port)
layout.addRow(QLabel("DNS:"), self.lineedit4_dns)
layout.addRow(QLabel("Peer"))
layout.addRow(QLabel("Server IPv4 Address:"), self.lineedit5_peer_ipv4)
layout.addRow(QLabel("Server Port:"), self.lineedit6_peer_port)
layout.addRow(QLabel("Public Key"), self.lineedit7_peer_public_key)
layout.addRow(QLabel("PSK Key"), self.lineedit8_peer_psk_key)
layout.addRow(QLabel("Allowed IPs"), self.lineedit9_peer_allowed_ips)
layout.addRow(self.button1)
layout.addRow(self.button2)
self.formGroupBox.setLayout(layout)

Hoppla, wenn man aus VSCode ausschneidet, sieht das hier in Joomla! so aus. WOW

Und wer nun Lust auf mehr hat, die nächste Zeit werde ich wohl öfter in meinem Forum drüber schreiben ;)