ckan-datos — plan inicial (CKAN local personal)
Fecha: 2026-09-09. Repo: ~/nef/ckan-datos/ (vacío, no git).
Contexto: second-brain + datapub + marvelousdb + DVS resources.
1. Qué sabemos de CKAN
- CKAN = Comprehensive Knowledge Archive Network, Open Knowledge Foundation.
- Sirve para: catálogo de datasets → organizaciones → recursos (archivos/APIs), con metadatos (título, licencia, tags, formato), búsqueda facetada, API REST, DataStore + DataPusher para previsualizar CSVs.
- Stack real: Python (Flask, 2.10/2.11 actual), PostgreSQL + PostGIS, Solr (búsqueda), Redis (colas/cache). Pesado para laptop si lo corres completo.
- Licencia: AGPLv3. 100% gratuito si lo auto-hospedas. Lo que cobran terceros es hosting gestionado / soporte (ej. CKAN Cloud), no el software.
- Repo oficial: https://github.com/ckan/ckan + compose de referencia: ckan-docker (db, solr, redis, ckan).
2. Por qué parece “no gratuito”
- No hay paywall del código. La confusión viene de: demos limitadas, ofertas SaaS, y costo de infra (servidor, dominio, mantenimiento).
- Para uso personal local: costo = 0, solo disco/RAM + tu tiempo.
3. ¿Se puede en local para uso personal? Sí
- Vía Docker:
ckan/ckan+ postgres + solr + redis. ~4 contenedores, ~2-4GB RAM. - En macOS (este equipo darwin) funciona con Docker Desktop / OrbStack.
- Alternativa ligera recomendada para empezar: no levantar CKAN día 1, sino modelar tus datas “estilo-CKAN” en archivos.
4. Lo que ya tienes (inventario nef/second-brain)
- second-brain: grafo local-first, estado en
content/nodes/*.md+content/projects/*.md, derivado adist/. Nunca se escribe de vuelta. Incluyekind: dataset(usar para puente). second-brain/data/: book-cache, paper-cache, enrich-cache, cursos, puente-cursos.json.datapub/:_raw/,index.csv,transcripts/,tareas.md(27 charlas) — candidato piloto #1.decisions/2026-09-09-capa-recursos-dvs-local.md: 1009 filas resources.json → 495 notas encontent/resources/local-only — candidato piloto #2.- marvelousdb decisiones 2026-08-07: sqlite + tmdb-films — candidato piloto #3.
- Principio local-first: nada de esto debe subir a nodo.ws sin curación.
5. Decisión: CKAN-lite primero, CKAN-full después
No montar CKAN completo en fase 0. Scope down:
Fase 0 — espejo CKAN-lite en este repo (esta semana, sin Docker):
datasets/<slug>/datapackage.json(nombre, título, org, licencia, tags, recursos con path/formato) +README.md+ datos endata/.- 2 pilotos:
datapub-catalogo(desde datapub/index.csv),dvs-resources(desde resources.json, solo 495 estudiables). organizaciones.md: second-brain, datapub, marvelousdb, surtido.scripts/validar.py: chequea que todo recurso exista, que datapackage.json sea válido.
Fase 1 — CKAN real en Docker (solo si Fase 0 te sirve):
infra/docker-compose.ymlbasado en ckan-docker, puerto 5000, volúmenes a./datasets.- Cargar los 2 pilotos vía API (
ckanapi). - Medir: ¿vale el costo RAM/mantenimiento vs CKAN-lite?
Fase 2 — puente second-brain:
- Script que convierte
kind: dataset→datasets/<slug>/datapackage.json. Nunca al revés (regla: no inventar memoria, no escribir al grafo desde aquí).
6. Estructura propuesta para ckan-datos/
ckan-datos/
README.md (qué es / qué no es: laboratorio, no portal público)
organizaciones.md
datasets/
datapub-catalogo/datapackage.json + README.md + data/index.csv
dvs-resources/datapackage.json + README.md
scripts/validar.py
infra/docker-compose.yml (fase 1, no ahora)
7. Próximo movimiento concreto (quién lo ve esta semana)
git init+ README mínimo.- Crear
datasets/datapub-catalogo/copiandodatapub/index.csv+ datapackage.json manual. scripts/validar.pyde 30 líneas. Si eso se usa 2 veces, pasar a DVS + Docker.
No hacer
- No importar los 1009 recursos crudos ni libros/eventos excluidos en decisión DVS.
- No exponer CKAN público sin definir licencias.
- No tocar
second-brain/lib|content/nodesdesde aquí.