╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ PASOS PARA SUBIR A DESBLOQUEO.CL CON FILEZILLA ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════╝ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 1: CONFIGURAR CONEXIÓN EN FILEZILLA │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ File → Site Manager → Nueva carpeta Llenar: ├─ Protocolo: SFTP (SSH File Transfer Protocol) ├─ Host: desbloqueo.cl ├─ Puerto: 22 ├─ Usuario: [Tu usuario FTP] ├─ Contraseña: [Tu contraseña FTP] └─ Tipo de conexión: Normal Guardar y Conectar ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 2: NAVEGACIÓN EN FILEZILLA │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ LADO IZQUIERDO (Tu computadora): LADO DERECHO (Servidor): C:\Users\Ingeniería\Documents\ /public_html/ Proyectos Claude\ └─ perfumados/ perfumados_mejorado\ (crear si no existe) ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 3: CREAR CARPETA EN SERVIDOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ 1. En FileZilla lado DERECHO (Sitio remoto) 2. Navegar a /public_html/ 3. Click DERECHO en zona vacía 4. "Create directory" 5. Nombre: perfumados 6. OK ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 4: SUBIR ARCHIVOS Y CARPETAS │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ ARCHIVO / CARPETA SUBIR? NOTAS ──────────────────────────────────────────────────────────────────────────────────────────────── app.py ✅ Archivo principal models.py ✅ Modelos de BD utils.py ✅ Utilidades requirements.txt ✅ Dependencias passenger_wsgi.py ✅ Entry point (editar después) .htaccess ✅ Config Apache (editar después) restart.txt ✅ Crear en servidor (vacío) README.md ✅ Documentación .gitignore ✅ Git ignore templates/ ✅ Carpeta completa (HTML) static/ ✅ Carpeta completa (CSS/JS) ──────────────────────────────────────────────────────────────────────────────────────────────── venv/ ❌ Se crea en servidor .env ❌ Se crea en servidor instance/ ❌ Se crea automáticamente logs/ ❌ Se crea automáticamente tmp/ ❌ Se crea automáticamente __pycache__/ ❌ Se crea automáticamente CÓMO SUBIR: 1. Lado IZQUIERDO (local): Seleccionar archivo/carpeta 2. DOBLE CLICK o Click DERECHO → Upload 3. Esperar a que aparezca en lado DERECHO ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 5: CREAR Y EDITAR .env EN SERVIDOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ 1. Lado DERECHO → Click DERECHO → Create new file 2. Nombre: .env 3. Click DERECHO en .env → View/Edit 4. Copiar esto: ─────────────────────────────────────────── FLASK_ENV=production SECRET_KEY=usa-una-clave-super-secreta-aqui-de-min-32-caracteres DEBUG=False DATABASE_URL=sqlite:///instance/perfumados.db MAIL_SERVER=smtp.gmail.com MAIL_PORT=587 MAIL_USE_TLS=True ─────────────────────────────────────────── 5. Guardar (Ctrl+S o File → Save) ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 6: EDITAR passenger_wsgi.py EN SERVIDOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ 1. Lado DERECHO → Click DERECHO en passenger_wsgi.py → View/Edit 2. Cambiar estas líneas: ─────────────────────────────────────────── PROJECT_ROOT = '/home/tu_usuario/public_html/perfumados' VENV_PATH = '/home/tu_usuario/public_html/perfumados/venv' ─────────────────────────────────────────── ⚠️ Reemplazar "tu_usuario" con tu usuario real (Pregunta a tu proveedor si no lo sabes) 3. Guardar ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 7: EDITAR .htaccess EN SERVIDOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ 1. Lado DERECHO → Click DERECHO en .htaccess → View/Edit 2. Cambiar estas líneas: ─────────────────────────────────────────── PassengerAppRoot /home/tu_usuario/public_html/perfumados PassengerBaseURI /perfumados PassengerPython /home/tu_usuario/public_html/perfumados/venv/bin/python3.10 ─────────────────────────────────────────── ⚠️ Reemplazar "tu_usuario" con tu usuario real 3. Guardar ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 8: CONECTAR POR SSH Y CONFIGURAR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ Abrir terminal (Windows → Command Prompt, Mac/Linux → Terminal): 1. Conectar: ssh usuario@desbloqueo.cl [Ingresar contraseña] 2. Navegar: cd public_html/perfumados 3. Crear entorno virtual: python3 -m venv venv 4. Activar: source venv/bin/activate 5. Instalar dependencias: pip install -r requirements.txt 6. Inicializar BD: python3 app.py [Aparecerá "Running on..." - presionar Ctrl+C para salir] 7. Verificar archivo restart.txt existe: ls -la restart.txt ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 9: PROBAR EN NAVEGADOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ Abrir navegador y ir a: https://www.desbloqueo.cl/perfumados/login Login con: ├─ Email: admin@perfumados.cl └─ Contraseña: admin123 Si ves el login → ¡ÉXITO! 🎉 ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PASO 10: CAMBIAR CONTRASEÑA ADMIN (MUY IMPORTANTE) │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ Desde terminal SSH: ssh usuario@desbloqueo.cl cd public_html/perfumados source venv/bin/activate python3 Luego en Python: from app import app, db from models import Usuario with app.app_context(): admin = Usuario.query.filter_by(email='admin@perfumados.cl').first() admin.set_password('TU_NUEVA_CONTRASEÑA_SEGURA') db.session.commit() print("Contraseña actualizada") exit() ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ ESTRUCTURA FINAL EN SERVIDOR │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ /home/tu_usuario/public_html/ └── perfumados/ ├── app.py ✅ Subido ├── models.py ✅ Subido ├── utils.py ✅ Subido ├── requirements.txt ✅ Subido ├── passenger_wsgi.py ✅ Subido (editado) ├── .htaccess ✅ Subido (editado) ├── .env ✅ Creado en servidor ├── restart.txt ✅ Creado en servidor ├── README.md ✅ Subido ├── .gitignore ✅ Subido ├── venv/ ✅ Creado en servidor ├── templates/ ✅ Subida ├── static/ ✅ Subida ├── instance/ ✅ Se crea automáticamente └── logs/ ✅ Se crea automáticamente ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PROBLEMAS Y SOLUCIONES │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ PROBLEMA: Error 500 al acceder SOLUCIÓN: 1. Tocar restart.txt (Click DERECHO → Edit → guardar) 2. Esperar 30 segundos 3. Recargar navegador PROBLEMA: "Database is locked" SOLUCIÓN: ssh usuario@desbloqueo.cl rm /home/usuario/public_html/perfumados/instance/perfumados.db touch /home/usuario/public_html/perfumados/restart.txt PROBLEMA: "Module not found" SOLUCIÓN: ssh usuario@desbloqueo.cl source /home/usuario/public_html/perfumados/venv/bin/activate pip install -r /home/usuario/public_html/perfumados/requirements.txt PROBLEMA: GPS no valida SOLUCIÓN: Editar models.py línea ~180 Actualizar coordenadas en LOCALES_CONFIG Tocar restart.txt ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ CHECKLIST FINAL │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ ☐ Archivos subidos a /public_html/perfumados/ ☐ .env creado y editado en servidor ☐ passenger_wsgi.py editado con rutas reales ☐ .htaccess editado con rutas reales ☐ SSH: venv creado ☐ SSH: dependencias instaladas ☐ SSH: BD inicializada ☐ restart.txt creado ☐ Prueba en navegador exitosa ☐ Contraseña admin cambiada ☐ Coordenadas GPS verificadas ☐ Backup de BD programado ☐ Logs monitoreados ═════════════════════════════════════════════════════════════════════════════════════════════════════ ¡LISTO PARA PRODUCCIÓN! 🚀 ═════════════════════════════════════════════════════════════════════════════════════════════════════