DESPLIEGUE
Desarrollo local
Clona el proyecto y levanta tu propio entorno de pruebas.
Guilda Work es una app Flask + SQLite (Python 3.11+), sin dependencias obligatorias de infraestructura para el modo de escritorio — el modo hospedado (multi-tenant, SSO, herramientas conectadas) sí necesita el stack Docker completo, ver Autoalojamiento.
-
1
Entorno virtual y dependencias
python -m venv .venv, actívalo, ypip install -r requirements.txt. -
2
Arranca la app
python run.py— creadata/registro.dbla primera vez, sin pasos previos. Abre una ventana nativa (WebView2), no un navegador. -
3
Ejecuta los tests
pip install -r requirements-dev.txt && pytest— cada módulo de integración externa mockea su cliente HTTP de bajo nivel; ningún test tocadata/registro.dbni depende de un contenedor real, cada uno usa su propia base de datos temporal.
python -m venv .venv
source .venv/bin/activate # .venv\Scripts\activate en Windows
pip install -r requirements.txt
python run.py
Estructura del proyecto
app/
main.py # rutas Flask + arranque de la ventana nativa (pywebview)
db.py # esquema y acceso a SQLite
export.py # exportación a JSON/CSV/Markdown + resumen automático nocturno
importador.py # importación de JSON/CSV de vuelta a la base
ai_local.py # integración con Ollama / LM Studio
rutas_api.py # API REST con token (ver Referencia de la API)
rutas_docs.py # esta misma Guía para desarrolladores
rutas_tareas.py # blueprint de la pestaña Tareas (lista + calendario estilo Outlook)
rutas_correo.py # blueprint del cliente de correo IMAP/POP3/SMTP
correo.py # lógica de correo (conexión, sincronización, envío HTML)
templates/ # HTML (Jinja2)
static/ # CSS/JS, logo.png, favicon.ico
data/
registro.db # se crea automáticamente
backups/ # copias diarias automáticas
exports/auto/ # resúmenes automáticos nocturnos (Markdown)
tests/ # pytest
run.py # punto de entrada (arranca el servidor + la ventana)
cli.py # acceso a los datos por línea de comandos, sin servidor
mcp_server.py # servidor MCP local (stdio) para Claude/Codex
mcp_server_remoto.py # servidor MCP remoto (streamable-http + OAuth2) para ChatGPT
requirements.txt # dependencias para ejecutar la app
requirements-dev.txt # + pytest
requirements-mcp.txt # + mcp, solo para los servidores MCP
Leer los datos sin arrancar la app
cli.py es de solo lectura y no requiere que la app esté corriendo — útil para scripts o para que un agente de IA con acceso a la carpeta consulte el histórico directamente:
python cli.py menus
python cli.py export --formato json --desde 2026-07-01 --hasta 2026-07-31
python cli.py demo # datos de ejemplo para pruebas/demos
python cli.py backup # fuerza una copia de seguridad ahora mismo
También puedes leer data/registro.db directamente con sqlite3 (esquema en app/db.py) para consultas que la CLI no cubra.
Servidor MCP en desarrollo
pip install -r requirements-mcp.txt
claude mcp add guilda-work-dev -- python mcp_server.py
mcp vive en un requirements-mcp.txt aparte a propósito — la app de escritorio empaquetada con PyInstaller no lo necesita, y así el .exe no carga una dependencia que la mayoría de usuarios nunca usa.Generar el .exe de escritorio (Windows)
pyinstaller --onefile --windowed --name "GuildaWork" ^
--icon "assets/icon.ico" ^
--add-data "app/templates;app/templates" ^
--add-data "app/static;app/static" ^
run.py
El ejecutable queda en dist/GuildaWork.exe. La primera vez que se ejecuta crea data/registro.db junto al propio .exe (no en una carpeta temporal), así que los datos persisten entre ejecuciones aunque lo muevas de sitio — llévate la carpeta data/ con él si lo haces. Este modo no pasa por MCP ni por la API REST multi-tenant: es un único usuario local de confianza, sin pantalla de login.