@@ -602,6 +602,99 @@ Expected outcomes
602
602
<https://github.com/openwisp/ansible-openwisp2> `_ and `docker-openwisp
603
603
<https://github.com/openwisp/docker-openwisp/> `_.
604
604
605
+ OpenWISP VPN Sync Linux Package
606
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
607
+
608
+ .. image :: ../images/gsoc/ideas/2025/vpn-sync.webp
609
+
610
+ .. important ::
611
+
612
+ Languages and technologies used: **Linux **, **Python **, **Django **,
613
+ **WebSockets **, **OpenVPN **, **WireGuard **, **WireGuard over VXLAN **,
614
+ **ZeroTier **.
615
+
616
+ **Mentors: ** *Federico Capoano *.
617
+
618
+ **Project size: ** 350 hours.
619
+
620
+ **Difficulty level: ** medium/hard.
621
+
622
+ This GSoC project aims to simplify the deployment and management of VPN
623
+ servers integrated with OpenWISP. The goal is to develop an
624
+ easy-to-install program that synchronizes VPN configurations with OpenWISP
625
+ in real-time, reducing manual intervention and ensuring configuration
626
+ consistency across all managed VPN servers.
627
+
628
+ This program will run on Linux-based servers and will:
629
+
630
+ - Be implemented in Python to ensure maintainability and extensibility.
631
+ - Use a Makefile to generate installation packages for major Linux
632
+ distributions:
633
+
634
+ - **DEB ** (for Debian, Ubuntu, and related distributions)
635
+ - **RPM ** (for Red Hat, Fedora, and similar systems)
636
+ - **Snap ** (for broader Linux compatibility)
637
+
638
+ - Establish a **WebSocket connection ** with OpenWISP to listen for changes
639
+ in the VPN Server object and synchronize local settings accordingly.
640
+ - Keep the local list of peers and the **certificate revocation list
641
+ (CRL) ** updated whenever VPN clients are added, removed, or modified.
642
+ - Support the following VPN tunneling technologies:
643
+
644
+ - **OpenVPN **
645
+ - **WireGuard **
646
+ - **WireGuard over VXLAN **
647
+ - **ZeroTier **
648
+
649
+ - Provide a **command-line utility ** to simplify the initial setup,
650
+ enabling users to:
651
+
652
+ - Select the VPN software to be used.
653
+ - Verify whether the required system packages are installed and display
654
+ a clear warning if dependencies are missing.
655
+ - Enter the necessary details to securely connect and synchronize with
656
+ OpenWISP.
657
+
658
+ - Support running **multiple instances **, with each instance managing a
659
+ separate VPN server object independently.
660
+ - Implement **structured logging ** with dedicated log files for each
661
+ instance, adhering to Linux logging best practices and supporting log
662
+ rotation.
663
+ - Include a **developer-friendly README ** with clear setup instructions.
664
+ - Update the **OpenWISP documentation ** to cover installation,
665
+ configuration, and best practices.
666
+
667
+ To support this project, OpenWISP Controller will need to be updated to
668
+ expose a **WebSocket endpoint **. This endpoint will allow the new VPN
669
+ synchronization program to listen for real-time configuration updates.
670
+
671
+ Prerequisites to Work on This Project
672
+ +++++++++++++++++++++++++++++++++++++
673
+
674
+ Applicants must have a solid understanding of:
675
+
676
+ - **Python ** and **Django **.
677
+ - **WebSockets **.
678
+ - At least one of the supported VPN technologies (**OpenVPN, WireGuard,
679
+ WireGuard over VXLAN, ZeroTier **).
680
+ - **System administration and Linux packaging ** (preferred but not
681
+ required).
682
+
683
+ Expected Outcomes
684
+ +++++++++++++++++
685
+
686
+ - A Python-based VPN synchronization tool.
687
+ - A command-line setup utility for easy first-time configuration.
688
+ - WebSocket-based synchronization between VPN servers and OpenWISP.
689
+ - Automated packaging for major Linux distributions.
690
+ - Structured logging with proper log rotation.
691
+ - OpenWISP Controller enhancements to support WebSocket-based
692
+ synchronization.
693
+ - Comprehensive **documentation **, including setup guides and best
694
+ practices.
695
+ - Automated tests to ensure reliability and stability.
696
+ - A **short tutorial video ** demonstrating installation and usage.
697
+
605
698
Enhancing Uspot Captive Portal for OpenWrt
606
699
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
607
700
0 commit comments