# Configuración del Proyecto HokoriTemp ## Configuración Inicial ### 1. Variables de Entorno Copia el archivo `env.example` como `.env` y configura las variables según tu entorno: ```bash cp env.example .env ``` ### 2. Configurar .env Edita el archivo `.env` con tus valores: ```env # Clave secreta (¡OBLIGATORIO cambiar!) SECRET_KEY=tu_clave_secreta_muy_segura_aqui # Configuración del servidor HOST=127.0.0.1 PORT=5000 DEBUG=False # Configuración del dominio (para reverse proxy) DOMAIN=temp.mysite.net # Configuración de archivos MAX_FILE_SIZE=16777216 # 16MB en bytes UPLOAD_FOLDER=uploads FILE_EXPIRATION_HOURS=24 ``` ### 3. Generar Clave Secreta Para generar una clave secreta segura, puedes usar Python: ```python import secrets print(secrets.token_hex(32)) ``` ## Estructura de Archivos ``` hokoritemp/ ├── app.py # Aplicación principal ├── requirements.txt # Dependencias ├── .env # Variables de entorno (crear desde env.example) ├── .gitignore # Archivos a ignorar en Git ├── env.example # Ejemplo de variables de entorno ├── README.md # Documentación principal ├── SETUP.md # Este archivo ├── uploads/ # Carpeta de archivos (se crea automáticamente) └── templates/ # Plantillas HTML ├── index.html └── view.html ``` ## Comandos Útiles ### Desarrollo ```bash # Activar entorno virtual .\venv\Scripts\Activate.ps1 # Instalar dependencias pip install -r requirements.txt # Ejecutar en modo desarrollo python app.py --debug # Ejecutar en puerto específico python app.py --port 8080 ``` ### Producción ```bash # Ejecutar en modo producción python app.py --host 0.0.0.0 --port 80 # Con HTTPS (requiere certificados) python app.py --https ``` ## Variables de Entorno Disponibles | Variable | Descripción | Valor por Defecto | |----------|-------------|-------------------| | `SECRET_KEY` | Clave secreta de Flask | `tu_clave_secreta_aqui` | | `HOST` | Host del servidor | `127.0.0.1` | | `PORT` | Puerto del servidor | `5000` | | `DEBUG` | Modo debug | `False` | | `DOMAIN` | Dominio para enlaces (reverse proxy) | `temp.mysite.net` | | `MAX_FILE_SIZE` | Tamaño máximo de archivo (bytes) | `16777216` (16MB) | | `UPLOAD_FOLDER` | Carpeta de archivos | `uploads` | | `FILE_EXPIRATION_HOURS` | Horas hasta expiración | `24` | ## Seguridad ### Archivos Sensibles - `.env` - Contiene variables sensibles (NO subir a Git) - `uploads/` - Contiene archivos subidos (NO subir a Git) - `venv/` - Entorno virtual (NO subir a Git) ### Recomendaciones 1. **Nunca** subas el archivo `.env` a Git 2. Cambia la `SECRET_KEY` por defecto 3. Configura límites de archivo apropiados 4. Usa HTTPS en producción 5. Configura un firewall apropiado ## Troubleshooting ### Error: "No module named 'dotenv'" ```bash pip install python-dotenv ``` ### Error: "Permission denied" al crear carpeta uploads ```bash # En Windows, ejecutar como administrador # En Linux/Mac chmod 755 uploads/ ``` ### Error: "Address already in use" ```bash # Cambiar puerto python app.py --port 8080 ``` ## Despliegue ### Con Apache Reverse Proxy 1. Copiar `temp.mysite.conf` a `/etc/httpd/conf.d/` 2. Configurar el dominio en `.env` 3. Ejecutar la app: `python app.py --host 127.0.0.1 --port 5000` 4. Acceder a `http://temp.mysite.net` ### Heroku 1. Crear `Procfile`: ``` web: python app.py --host 0.0.0.0 --port $PORT ``` 2. Configurar variables de entorno en Heroku Dashboard ### Docker 1. Crear `Dockerfile`: ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "app.py", "--host", "0.0.0.0"] ``` 2. Construir y ejecutar: ```bash docker build -t hokoritemp . docker run -p 5000:5000 hokoritemp ```