El "AirDrop" Universal para Linux.
Transfiere archivos entre tu PC y cualquier dispositivo móvil (iOS/Android) sin instalar nada en el teléfono.
PortalDrop es una herramienta de escritorio minimalista construida con Python y Qt6 (PySide6).
Resuelve un problema común: Pasar una foto o documento del móvil al PC (o viceversa) rápidamente, sin cables, sin subir cosas a la nube, y sin comprimir la calidad (como hace WhatsApp).
- Sin instalación en el móvil: Solo escaneas un QR y listo. Usa el navegador web.
- Arrastrar y Soltar: Arrastra un archivo a la ventana para generar un enlace de descarga instantáneo.
- Bidireccional: ¿Quieres pasar una foto del móvil al PC? Pulsa "Recibir" y súbela desde el navegador.
- Privacidad Local: Los archivos nunca salen de tu red WiFi. La transferencia es directa (P2P local).
- Interfaz Moderna: Modo oscuro nativo y diseño limpio.
- Python 3.10 o superior.
- Estar conectado a la misma red WiFi/LAN en ambos dispositivos.
# Clonar el repositorio
git clone https://github.com/AnabasaSoft/PortalDrop.git
cd PortalDrop
# Crear entorno virtual
python3 -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txtAsegúrate de tener el archivo portaldrop-512.png en la carpeta para ver el icono.
python PortalDrop.pyEl móvil no carga la página / "Connection Refused"
Esto suele ser culpa del cortafuegos (Firewall) de Linux.
- Solución rápida: Asegúrate de permitir el tráfico en el puerto 8000.
sudo ufw allow 8000/tcp
- Nota: Si tu IP local cambia, reinicia la aplicación.
- Frontend: PySide6 (Qt6).
- Backend: Servidor HTTP nativo de Python (
http.serverysocketserver) ejecutado en hilos separados (QThread) para no congelar la interfaz. - Red: Detecta automáticamente la IP de la LAN abriendo un socket UDP efímero.
- Protocolo: HTTP estándar. Los archivos se envían tal cual (binario) mediante
Multipart/Form-Datapara subidas.
Si quieres distribuir PortalDrop sin necesidad de instalar Python, puedes crear un ejecutable con PyInstaller:
# Instalar PyInstaller
pip install pyinstaller
# Crear ejecutable
pyinstaller --onefile --windowed --icon=portaldrop-512.png --name=PortalDrop PortalDrop.pyEl ejecutable estará en la carpeta dist/.
Este proyecto se ofrece bajo un modelo de Doble Licencia (Dual License):
-
LGPLv3 (GNU Lesser General Public License v3): Ideal para proyectos de código abierto. Si usas esta biblioteca (especialmente si la modificas), debes cumplir con las obligaciones de la LGPLv3. Esto asegura que las mejoras al núcleo open-source se compartan con la comunidad.
-
Comercial (Privativa): Si los términos de la LGPLv3 no se ajustan a tus necesidades (por ejemplo, para incluir este software en productos propietarios de código cerrado sin revelar el código fuente), por favor contacta al autor para adquirir una licencia comercial.
Para más detalles, consulta el archivo LICENSE incluido en este repositorio.
Desarrollado por Daniel Serrano Armenta
- 📧 Email: [email protected]
- 🐙 GitHub: github.com/anabasasoft
- 🌐 Portafolio: danitxu79.github.io
Si encuentras útil este proyecto, ¡no olvides darle una ⭐ en GitHub!