Skip to content

Davidmctf/ui-openvpn-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ UI OpenVPN Linux

Stella UA OPENVPN

Navigate through secure connections like an astronaut exploring cyberspace!

Rust License: MIT Architecture

Una aplicaciรณn moderna de gestiรณn VPN desarrollada con Rust y Clean Architecture. Reemplaza scripts bash obsoletos con un gestor profesional de conexiones OpenVPN.

๐ŸŒŸ Caracterรญsticas Espaciales

  • ๐Ÿš€ Interfaz CLI profesional con argumentos modernos y modo interactivo
  • ๐Ÿ›ฐ๏ธ Arquitectura limpia con separaciรณn de capas y principios SOLID
  • ๐ŸŒŒ TDD al 100% con tests unitarios e integraciรณn completos
  • โญ Performance nativa sin overhead de runtime
  • ๐Ÿช Interfaz GTK4 opcional para exploraciรณn visual
  • ๐Ÿ” Seguridad espacial con manejo seguro de conexiones VPN

๐Ÿš€ Instalaciรณn Ultra-Rรกpida (Un Solo Comando)

๐ŸŒŸ Instalaciรณn Automรกtica Completa:

# Instala TODO (Rust, dependencias, compila y configura)
curl -sSL https://raw.githubusercontent.com/Davidmctf/ui-openvpn-linux/main/install.sh | bash

ยกEso es todo! El script instala automรกticamente:

  • โœ… Rust y Cargo
  • โœ… Todas las dependencias del sistema (GTK4, OpenVPN, etc.)
  • โœ… Clona y compila la aplicaciรณn
  • โœ… Instala el binario globalmente
  • โœ… Crea icono en el escritorio y menรบ de aplicaciones
  • โœ… Crea aliases รบtiles (vpn, vpn-list, etc.)
  • โœ… Configura directorios VPN

๐Ÿ› ๏ธ Instalaciรณn Manual (si prefieres control total):

# Clonar desde el espacio (GitHub)
git clone https://github.com/Davidmctf/ui-openvpn-linux.git
cd ui-openvpn-linux

# Compilar el cohete
cargo build --release

# Configurar base espacial VPN
mkdir -p ~/.connectvpn.conf
cp vpn_configs/*.ovpn ~/.connectvpn.conf/

ยกDespegar! ๐Ÿš€

# Despuรฉs de instalaciรณn automรกtica (comandos globales):
ui-openvpn --help                # Ver todos los comandos
vpn list                         # Explorar VPNs (alias corto)
vpn connect julian               # Conectar a estaciรณn julian
vpn status                       # Verificar estado de la misiรณn
vpn disconnect                   # Desconectar de la estaciรณn
vpn-gui                          # Abrir interfaz grรกfica

# ยกO simplemente busca "UI OpenVPN Linux" en tu menรบ de aplicaciones! ๐Ÿš€

# Si instalaste manualmente:
./target/release/ui-openvpn --help
./target/release/ui-openvpn list
./target/release/ui-openvpn connect julian

๐Ÿ›ธ Comandos de Navegaciรณn Espacial

๐ŸŒŒ Exploraciรณn de VPNs:

# Listar todas las estaciones VPN
ui-openvpn list

# Informaciรณn detallada de una estaciรณn
ui-openvpn info julian

# Validar configuraciones espaciales
ui-openvpn validate

๐Ÿš€ Control de Misiรณn:

# Conectar a estaciรณn especรญfica
ui-openvpn connect David_cruz

# Conectar con fuerza (override conexiones existentes)
ui-openvpn connect julian --force

# Desconectar de todas las estaciones
ui-openvpn disconnect

# Estado completo de la misiรณn
ui-openvpn status --verbose

๐ŸŽฎ Modo Centro de Control (Interactivo):

# Lanzar centro de control
ui-openvpn

# Comandos disponibles en el centro:
vpn> help           # Ver comandos disponibles  
vpn> list           # Listar VPNs
vpn> connect julian # Conectar a julian
vpn> status         # Ver estado
vpn> disconnect     # Desconectar
vpn> quit           # Salir del centro

๐ŸŽจ Interfaz Grรกfica Espacial (GTK4):

# Instalar sistemas de navegaciรณn visual
sudo dnf install -y gtk4-devel cairo-devel glib2-devel pango-devel gdk-pixbuf2-devel

# Compilar con sistemas grรกficos
cargo build --features gui --release

# Lanzar interfaz espacial
./target/release/ui-openvpn --gui

๐Ÿ—๏ธ Arquitectura de la Nave Espacial

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚     ๐ŸŽฎ UI Layer (CLI/GTK4 Cockpit)         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚ CLI Commandsโ”‚ โ”‚ GTK4 Windowsโ”‚           โ”‚  
โ”‚  โ”‚ Interactive โ”‚ โ”‚  Components โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      ๐Ÿš€ Application Layer (Mission Control)โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚ VPN Service โ”‚ โ”‚    DTOs     โ”‚           โ”‚
โ”‚  โ”‚   Mappers   โ”‚ โ”‚ Orchestr.   โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚       ๐Ÿ›ฐ๏ธ Domain Layer (Core Systems)       โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚ VPN Entity  โ”‚ โ”‚ Use Cases   โ”‚           โ”‚
โ”‚  โ”‚ Repository  โ”‚ โ”‚ Interfaces  โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚    ๐Ÿ”ง Infrastructure Layer (Engines)       โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚  โ”‚   OpenVPN   โ”‚ โ”‚ File System โ”‚           โ”‚
โ”‚  โ”‚   Process   โ”‚ โ”‚ Config Mgmt โ”‚           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŒŒ Configuraciรณn de Base Espacial

Configurar estaciones VPN:

# Estructura de la base espacial
~/.connectvpn.conf/
โ”œโ”€โ”€ David_cruz.ovpn     โ†’ "Dynamic Station"
โ”œโ”€โ”€ julian.ovpn         โ†’ "Howden Outpost"  
โ””โ”€โ”€ *.ovpn              โ†’ Otras estaciones espaciales

Agregar nuevas estaciones:

# Copiar configuraciones de misiรณn
cp mi-nueva-estacion.ovpn ~/.connectvpn.conf/

# Verificar que la estaciรณn estรฉ operativa
ui-openvpn validate

# Explorar nueva estaciรณn
ui-openvpn info mi-nueva-estacion

๐Ÿงช Centro de Pruebas Espaciales

# Ejecutar pruebas de sistemas
cargo test

# Ejecutar tests con reporte detallado
cargo test --verbose

# Validar arquitectura completa
cargo clippy

# Formatear cรณdigo segรบn estรกndares espaciales
cargo fmt

๐Ÿ“ก Comandos de Ejemplo de Misiรณn

Misiรณn tรญpica de conexiรณn:

# 1. Ver estaciones disponibles
ui-openvpn list

# Output:
๐Ÿ“‹ Available VPN configurations:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  ๐Ÿ”ด Dynamic (David_cruz)
  ๐Ÿ”ด Howden (julian)  
  ๐Ÿ”ด Unknown (example-vpn)

# 2. Conectar a estaciรณn Howden
ui-openvpn connect julian

# Output:
๐Ÿ”Œ Connecting to VPN: julian
โœ… Successfully connected to julian!

# 3. Verificar estado de la misiรณn
ui-openvpn status

# Output:  
๐Ÿ“Š VPN Connection Status:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ”ด Dynamic - DISCONNECTED
๐ŸŸข Howden - CONNECTED
๐Ÿ”ด Unknown - DISCONNECTED

๐ŸŒŸ Comparaciรณn: Script Bash vs Nave Espacial Rust

Aspecto Script Bash Antiguo ๐Ÿš€ UI OpenVPN Linux
Interfaz Menรบ bรกsico numerado CLI moderno + GUI opcional
Arquitectura Script monolรญtico Clean Architecture en capas
Seguridad Bรกsica Rust memory-safe + validaciรณn
Testing Sin tests TDD al 100% cobertura
Performance Lento (bash) Nativo Rust ultra-rรกpido
Escalabilidad Limitada Extensible profesionalmente
Usabilidad Tedioso Comandos rรกpidos + interactivo
Mantenimiento Difรญcil Cรณdigo limpio y documentado

๐Ÿš€ Requisitos del Sistema Espacial

Para Operaciรณn CLI:

  • Rust 1.70+
  • OpenVPN instalado
  • Configuraciones VPN en ~/.connectvpn.conf/

Para Sistemas de Navegaciรณn Visual (GTK4):

# Fedora/RHEL/CentOS
sudo dnf install -y gtk4-devel cairo-devel glib2-devel pango-devel

# Ubuntu/Debian  
sudo apt install -y libgtk-4-dev libcairo2-dev libglib2.0-dev libpango1.0-dev

# Arch Linux
sudo pacman -S gtk4 cairo glib2 pango

๐Ÿ›ธ Contribuciones a la Misiรณn

  1. Fork la nave espacial
  2. Crea una rama de caracterรญsticas (git checkout -b feature/AmazingSpaceFeature)
  3. Commit tus mejoras (git commit -m 'Add some AmazingSpaceFeature')
  4. Push a la rama (git push origin feature/AmazingSpaceFeature)
  5. Abre un Pull Request a la estaciรณn principal

๐Ÿ“„ Licencia Espacial

MIT License - Libertad total para explorar el cosmos digital.

๐ŸŒŒ Agradecimientos

  • Astronauta Logo: Inspirado en la exploraciรณn espacial y la navegaciรณn segura por el ciberespacio
  • Clean Architecture: Para mantener el cรณdigo organizado como una estaciรณn espacial
  • Rust Language: Por la velocidad y seguridad de un cohete espacial
  • OpenVPN: Por las conexiones seguras a travรฉs del universo digital

๐Ÿš€ ยกQue tengas un buen viaje por el ciberespacio! โœจ

Desarrollado con amor espacial por @Davidmctf

About

Ui open vpn linex administrator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •