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.
- ๐ 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
# 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
# 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/
# 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
# 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
# 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
# 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
# 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
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฎ 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 โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Estructura de la base espacial
~/.connectvpn.conf/
โโโ David_cruz.ovpn โ "Dynamic Station"
โโโ julian.ovpn โ "Howden Outpost"
โโโ *.ovpn โ Otras estaciones espaciales
# 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
# 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
# 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
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 |
- Rust 1.70+
- OpenVPN instalado
- Configuraciones VPN en
~/.connectvpn.conf/
# 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
- Fork la nave espacial
- Crea una rama de caracterรญsticas (
git checkout -b feature/AmazingSpaceFeature
) - Commit tus mejoras (
git commit -m 'Add some AmazingSpaceFeature'
) - Push a la rama (
git push origin feature/AmazingSpaceFeature
) - Abre un Pull Request a la estaciรณn principal
MIT License - Libertad total para explorar el cosmos digital.
- 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