# HokoriTemp - Servidor de Archivos Temporales Una aplicación web en Flask para subir y compartir archivos de forma temporal, similar a filebin pero con funcionalidades adicionales. ## Características - **Subida de archivos:** Interfaz drag & drop para subir archivos - **Enlaces temporales:** Los archivos expiran automáticamente después de 24 horas - **Gestión de enlaces:** Página para ver y gestionar todos los enlaces activos del usuario - **Almacenamiento local:** Los enlaces se guardan en localStorage del navegador - **Interfaz moderna:** Diseño responsive con Tailwind CSS ## Instalación 1. **Clonar el repositorio:** ```bash git clone cd hokoritemp ``` 2. **Activar el entorno virtual:** ```bash # Windows .\venv\Scripts\Activate.ps1 # Linux/Mac source venv/bin/activate ``` 3. **Instalar dependencias:** ```bash pip install -r requirements.txt ``` ## Uso ### Ejecutar el servidor ```bash # Ejecutar con configuración por defecto (localhost:5000) python app.py # Ejecutar en puerto específico python app.py --port 8080 # Ejecutar en host específico python app.py --host 0.0.0.0 --port 8080 # Ejecutar en modo debug python app.py --debug # Ejecutar con HTTPS (requiere certificados) python app.py --https ``` ### Argumentos disponibles - `--host`: Host del servidor (default: 127.0.0.1) - `--port`: Puerto del servidor (default: 5000) - `--https`: Usar HTTPS - `--debug`: Modo debug ## Estructura del proyecto ``` hokoritemp/ ├── app.py # Aplicación principal Flask ├── requirements.txt # Dependencias del proyecto ├── uploads/ # Carpeta donde se guardan los archivos ├── templates/ # Plantillas HTML │ ├── index.html # Página principal de subida │ └── view.html # Página de gestión de enlaces ├── static/ # Archivos estáticos │ ├── styles.css # Estilos CSS │ ├── app.js # JavaScript principal │ └── view.js # JavaScript para vista de enlaces └── README.md # Este archivo ``` ## Funcionalidades ### Página Principal (/) - Interfaz drag & drop para subir archivos - Límite de 16MB por archivo - Generación automática de enlaces temporales - Guardado automático en localStorage ### Página de Enlaces (/view) - Lista todos los enlaces guardados en localStorage - Muestra tiempo restante hasta expiración - Permite copiar y abrir enlaces - Filtra automáticamente enlaces expirados ### API Endpoints - `POST /upload`: Subir archivo - `GET /download/`: Descargar archivo - `GET /api/links`: Obtener enlaces (para futuras implementaciones) ## Configuración ### Variables de entorno Puedes crear un archivo `.env` con las siguientes variables: ```env SECRET_KEY=tu_clave_secreta_aqui MAX_CONTENT_LENGTH=16777216 UPLOAD_FOLDER=uploads ``` ### Límites - Tamaño máximo de archivo: 16MB - Tiempo de expiración: 24 horas - Tipos de archivo: Todos los tipos permitidos ## Desarrollo ### Agregar nuevas funcionalidades 1. Modifica `app.py` para agregar nuevas rutas 2. Actualiza las plantillas HTML según sea necesario 3. Agrega nuevas dependencias a `requirements.txt` ### Personalización - Cambia el tiempo de expiración en `app.py` (línea 58) - Modifica el límite de tamaño en `app.py` (línea 12) - Personaliza el diseño editando las plantillas HTML ## Seguridad - Los archivos se guardan con nombres únicos (UUID) - Se usa `secure_filename` para sanitizar nombres de archivo - Los archivos expiran automáticamente - No se almacenan metadatos sensibles ## Licencia Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.