Un servidor FTP ligero y seguro construido con Python para transferencias rápidas de archivos dentro de una red local.
Diseñado con una arquitectura limpia, configuración basada en entorno y permisos de usuario separados, este proyecto es ideal para homelabs, desarrolladores y cualquier persona que prefiera una alternativa privada a las transferencias en la nube.
- Credenciales basadas en entorno (
.env) - Usuario administrador con permisos completos
- Usuario solo de subida (modelo de bandeja segura)
- Organización automática de archivos por fecha
- Vinculación solo a LAN para reducir la exposición
- Soporte de registros (logging)
- Dependencias mínimas
- Estructura de proyecto escalable
ftp_server/
├── main.py
├── config.py
├── handler.py
├── .env.example
├── .gitignore
│
├── ftp_root/
│ ├── users/
│ │ ├── drop/
│ │ └── admin/
│ │
│ ├── shared/
│ └── backups/
│
└── logs/
- Python 3.11+
- pip
git clone https://github.com/moder-io/FTP_server.git
cd FTP_serverpip install pyftpdlib python-dotenvCrea un archivo .env en la raíz del proyecto.
Puedes usar .env.example como plantilla.
Inicia el servidor desde el directorio del proyecto:
python main.pyLa consola mostrará la dirección IP local y el puerto.
Control total sobre el directorio del servidor.
Los permisos incluyen:
- Subir
- Descargar
- Renombrar
- Eliminar
- Gestión de directorios
Esta cuenta debe estar restringida solo a usuarios de confianza.
Diseñado como un buzón seguro.
Permitido:
- Subir archivos
No permitido:
- Ver archivos existentes
- Descargar archivos
- Eliminar archivos
Este modelo reduce el riesgo de pérdida accidental de datos.
Este proyecto está destinado para uso en red local.
FTP no proporciona cifrado. Evita exponer el servidor directamente a internet.
Si se requiere acceso remoto, considera usar:
- SFTP
- FTPS
- Soluciones VPN (WireGuard, Tailscale, OpenVPN)