Files
gkachele-saas/demo/app.py
2026-02-12 19:05:58 +01:00

56 lines
1.6 KiB
Python

"""
GKACHELE™ SaaS PageBuilder - Sistema Modular
© 2025 GKACHELE™. Todos los derechos reservados.
"""
import os
from flask import Flask, jsonify, request
from config import SECRET_KEY, PORT
from database import init_db
from routes.auth import auth_bp
from routes.dashboard import dashboard_bp
from routes.customizer import customizer_bp
from routes.admin import admin_bp
from routes.public import public_bp
app = Flask(__name__, template_folder='templates', static_folder='static')
app.secret_key = SECRET_KEY
app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
# Inicializar Base de Datos
init_db()
# Registrar Blueprints
app.register_blueprint(auth_bp)
app.register_blueprint(dashboard_bp)
app.register_blueprint(customizer_bp)
app.register_blueprint(admin_bp)
app.register_blueprint(public_bp)
# Manejadores de Errores Globales
@app.errorhandler(500)
def handle_500(e):
response = jsonify({'success': False, 'error': 'Error interno del servidor'})
response.status_code = 500
return response
@app.errorhandler(404)
def handle_404(e):
return jsonify({'success': False, 'error': 'No encontrado'}), 404
@app.errorhandler(Exception)
def handle_exception(e):
print(f"❌ EXCEPCIÓN: {e}")
return jsonify({'success': False, 'error': str(e)}), 500
# Middleware
@app.after_request
def add_header(response):
response.headers.pop('X-Frame-Options', None)
response.headers['Content-Security-Policy'] = "frame-ancestors *;"
return response
if __name__ == '__main__':
print(f"🚀 GKACHELE™ SaaS Modular iniciado en puerto {PORT}")
app.run(debug=True, host='0.0.0.0', port=PORT)