No description
- HTML 53.9%
- Python 43.2%
- CSS 2.5%
- Shell 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Todo lo decidido en julio vivia en una conversacion que no viaja con el repositorio. Se escribe lo que no se deduce leyendo el codigo: - estado-del-proyecto.md: el modelo en cuatro niveles y POR QUE es asi, las dos fuentes de verdad, el ciclo de vida de una actividad, las decisiones que no se ven en el codigo (borrar es reversible, retirar de la cartera no es borrar, el lugar condiciona la planificacion), como se prueba esto —incluido el node del contenedor de Cal.diy, que es el unico de la maquina— y lo que esta a medias. - levantar-en-otra-maquina.md: que no viaja en el clon (.env, backups, uploads y los datos de NocoDB, que estan en un volumen), en que orden montarlo y con que hay que tener cuidado. - backlog.md: lo que queda, con lo averiguado del codigo en cada punto. - plan-modelo-servicio.md: el plan del refactor, con el diseno del cierre mensual y la anulacion por el alumno, que estan pensados y sin implementar. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
| authelia | ||
| data | ||
| docs | ||
| nginx | ||
| scripts | ||
| secrets | ||
| sitio | ||
| stack/initdb | ||
| traefik | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
juliamoreno.yoga
Presencia digital y herramientas de negocio de Julia Moreno · Yoga (Hatha yoga en Nerja, Maro y Almuñécar).
Estructura
sitio/— web estática en 4 idiomas (ES raíz,/en/,/fr/,/de/), SEO local, schema LocalBusiness, hreflang y sitemap.docker-compose.yml— todo el despliegue, con perfiles:web: solo el sitio (nginx tras Traefik, TLS automático, redirección canónica desde www y juliamorenoyoga.com).negocio: Postgres + Umami (analítica sin cookies). El mínimo para medir.todo: añade Cal.com (reservas), Listmonk (boletín), captador Python (formularios) y NocoDB (alumnos/bonos).
nginx/sitio.conf— configuración del sitio (gzip, caché, cabeceras).stack/initdb/— creación de las BDs del stack.scripts/bootstrap-secrets.sh— genera .env y secretos (solo en el VPS).docs/— guía de despliegue y generador del manual de usuario.
Despliegue
git clone <repo> /opt/juliamoreno && cd /opt/juliamoreno
./scripts/bootstrap-secrets.sh
docker compose --profile web up -d # el sitio
docker compose --profile negocio up -d # + analítica
# más adelante:
docker compose --profile todo up -d
Requisitos: Traefik en la red externa proxy con entrypoint websecure
y certresolver letsencrypt; DNS del dominio y subdominios
(stats, reservas, correo, auto, datos) apuntando al VPS.
Contenido dinámico
- Precios y horarios: data/contenido.json + scripts/build-web.py (ver docs/backoffice-precios-horarios.md).
- Actividades con sondeo de demanda: docs/actividades-sondeo.md.
- Traducción es→en/fr/de vía build-web.py+DeepL: docs/traduccion-cambiar-motor.md.
Reglas del repo
- Ni
.envnisecrets/se versionan jamás (ver .gitignore). - Los paneles
auto.ydatos.deben protegerse con Authelia u otro middleware de autenticación en Traefik: son internos. - Marcadores pendientes en
sitio/: [TELÉFONO], [DIRECCIÓN], [DÍA]/[HORA], [PRECIO], usuario de Instagram.
Backoffice de contenido (precios, horarios, actividades)
Julia edita en NocoDB (datos.juliamoreno.yoga); la web se regenera sola.
- Precios y horarios: valores en tablas; ver docs/backoffice-precios-horarios.md
- Actividades y talleres: Julia escribe en español; build-web.py traduce a EN/FR/DE con DeepL y regenera; ver docs/traduccion-cambiar-motor.md para cambiar el motor de traducción.
- Generador: scripts/build-web.py (solo toca las secciones entre marcadores).
- Despliegue automático de código: docs/cicd-despliegue.md
Flujos:
- CONTENIDO (Julia, NocoDB) -> build-web.py (traduce + genera)
- CÓDIGO (Jose/soporte, git push) -> CI/CD -> build-web.py