Bitácora — 2026-10-26

Sprint: 0 (Configuración inicial)
Objetivo del día (uno solo): Conectar GitHub por SSH y construir el ecosistema de segundo cerebro (vault + web + auth).

Qué hice

  • GitHub SSH: Generé un par de claves ed25519 (~/.ssh/id_ed25519), el usuario las autorizó en GitHub y verifiqué el handshake (ssh -T git@github.com → “successfully authenticated”). Probé acceso real con git ls-remote.
  • GitHub Access Console: Construí una consola web local (Python, sin dependencias) que muestra el estado real de la conexión SSH: clave, huella, handshake y registro en vivo. Diseño glassmorphism con tema morado. Desplegada en Cloudflare Pages (instantánea redactada).
  • Segundo Cerebro (Quartz): Convertí la bóveda de Obsidian en un sitio estático con Quartz v5. Grafo interactivo, búsqueda, backlinks, modo oscuro, callouts, wikilinks. Tema morado. Desplegado en Cloudflare Pages (público).
  • Auth Portal: Construí un portal de autenticación (login, registro, logout) con base de datos real (Cloudflare D1 / SQLite). Avatares DiceBear (8 estilos), personalización de color y avatar, preferencias persistentes. Diseño morado con animaciones y partículas.
  • Vault en GitHub: Inicialicé el repo git de la bóveda y lo subí a GitHub (privado). Configuré CI/CD con GitHub Actions.
  • Conexiones cruzadas: Enlaces entre GitHub Console, Segundo Cerebro, Auth Portal y Vault en GitHub en pies de página y página de inicio.
  • Diseño: Unifiqué todo el ecosistema con tema morado (violeta 8b5cf6, lavanda a78bfa). Eliminé todos los emojis y los reemplacé por iconos SVG.
  • Migración de archivos: Moví todo el código de 08_Proyectos/ a Documentos/Proyecto predeterminado/ para que la bóveda solo contenga información.

Qué entendí con mis palabras

  • SSH vs PAT: SSH es para operaciones git (clone, push, pull). Para API (issues, PRs) se necesita un token o gh. SSH no da acceso a la API de GitHub.
  • Cloudflare Pages + Functions: Pages sirve archivos estáticos; Functions (en functions/) son endpoints serverless que corren en el edge. D1 es SQLite en el edge, accesible desde Functions.
  • Quartz v5: Usa configuración YAML (no TS como v4). Los estilos se personalizan en quartz/styles/custom.scss. El grafo y la búsqueda son plugins habilitados por defecto.
  • Symlink content: Quartz apunta a la bóveda via symlink, así que cualquier cambio en las notas se refleja al rebuild.
  • Cloudflare Access: Requiere activar Zero Trust (plan gratuito). Sin activarlo, el sitio queda público.

Bloqueos

  • Cloudflare Access: No se pudo activar porque requiere seleccionar un plan (posible verificación de tarjeta). El sitio quedó público.
  • GitHub Actions CI/CD: El workflow está creado pero necesita secrets (CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID) que deben configurarse manualmente en GitHub.
  • D1 local: El desarrollo local requiere aplicar el schema manualmente al archivo sqlite local.

Uso de IA

  • Le pregunté: Cómo estructurar un sistema de auth con D1, cómo configurar Quartz v5, cómo generar avatares SVG con DiceBear.
  • Acepté: La arquitectura de Pages Functions + D1, el uso de DiceBear para avatares, el tema morado unificado.
  • Error o límite de la IA: Las versiones de wrangler cambian rápidamente (v4 vs v3). Algunos comandos (pages project create) ya no funcionan como antes. Hubo que usar la API REST directamente.

Evidencia

Siguiente paso (uno solo)

Configurar los secrets de GitHub Actions para que el despliegue del segundo cerebro sea automático al hacer push.


Regla: si no hay evidencia, la entrada describe intención, no aprendizaje.