Compare commits

...
4 Commits
Author SHA1 Message Date
fernando 334f386589 ci: mover el workflow a Gitea Actions y agregar despliegue a producción
CI / test-and-build (push) Failing after 51s
.github/workflows/ci.yml nunca corrió: Gitea Actions busca los workflows
en .gitea/workflows/, no en .github/workflows/, y además no había ningún
runner registrado en la instancia (0 workflow_runs históricos).

Se registró un runner en modo host en mcps-hpc-01 (mismo binario
act_runner, sin Docker-in-Docker) y se agregó un paso de publicación al
final del pipeline: en push a main, hace rsync de public/ a
/opt/clusterlog/public/, que sirve un contenedor nginx en mcps-net
detrás de Caddy en clusterlog.mcps-epcm.org.

También corrige base_url en zola.toml, que seguía apuntando al dominio
de ejemplo.
2026-08-18 00:28:36 -06:00
fernando 94cf529420 manuales(RUN-20260818-BA0A96): Configurar acceso al servicio Git 2026-08-17 23:25:20 -06:00
fernando a086df8f13 perf: reemplazar el bundle de Bootstrap 2 por un reset propio de ~1 KB
Auditoría: ninguna plantilla local usa una sola clase de Bootstrap
(.btn/.navbar/.row/.span*/.modal, cero coincidencias); ops.css ya
redefine todo lo que sí se usa (.container, .badge, code/pre). El
site.scss del tema (que importaba bootstrap.css + bootstrap-responsive.css
+ style.css, ~103 KB) se reemplaza en bootstrap-theme.sh por un reset
mínimo propio que cubre solo lo que ops.css necesita.

site.css pasa de 103.5 KB a 605 B; public/ de 672 KB a 572 KB. Sin
cambio visual (verificado página por página con Playwright) ni de
tiempo de build.
2026-08-15 21:37:57 -06:00
fernando 3de89b8dd8 perf: podar assets sin referenciar del tema vendored del build
zola.386 trae JS de bootstrap/jquery, íconos y las fuentes DOS, pero
ninguna plantilla local los referencia; se publicaban igual porque
static/ se copia tal cual. Reubica los 3 CSS que compile_sass sí
necesita a vendor/ (fuera de static/) y descarta el resto.

public/ pasa de 1268 KB / 110 archivos a 672 KB / 58 archivos, sin
cambio visual ni de tiempo de build (~0.3s).
2026-08-15 21:27:45 -06:00
4 changed files with 131 additions and 1 deletions
@@ -64,3 +64,7 @@ jobs:
- name: Construir sitio - name: Construir sitio
run: zola build run: zola build
- name: Publicar en producción (clusterlog.mcps-epcm.org)
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: rsync -a --delete public/ /opt/clusterlog/public/
@@ -0,0 +1,86 @@
+++
title = "Configurar acceso al servicio Git"
description = "Activar su cuenta, agregar su llave SSH y confirmar acceso clonando el repositorio de ejemplo."
date = 2026-08-18T05:25:20Z
authors = ["gen"]
slug = "run-20260818-ba0a96-configurar-acceso-al-servicio-git"
template = "page.html"
weight = 20
[taxonomies]
categories = ["manuales"]
tags = ["acceso", "git", "gitea", "ssh"]
systems = ["git"]
[extra]
id = "RUN-20260818-BA0A96"
kind = "manuales"
author_id = "gen"
author_fingerprint = "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg"
+++
## Prerrequisitos
- Su cuenta en el servicio Git ya está creada; recibió por correo el usuario y una contraseña temporal.
- Acceso de red al clúster ya configurado (el mismo que usa para `ssh mcps` y los demás hosts internos).
- Su llave SSH personal, la misma que ya usa para acceder al clúster. No hace falta crear una llave nueva.
El servicio Git vive en la misma infraestructura que el host `mcps`, pero es un servicio aparte (Gitea, detrás de un proxy HTTPS) con su propio inicio de sesión web y su propio puerto SSH — no es lo mismo que iniciar sesión con `ssh mcps`.
## 1. Iniciar sesión y cambiar la contraseña
1. Entre a `https://git.mcps-epcm.org` con el usuario y la contraseña temporal del correo.
2. El sistema le va a pedir que la cambie en ese primer inicio de sesión. Si no se lo pide automáticamente, vaya a su avatar (arriba a la derecha) → **Configuración** → **Cuenta** y cambie la contraseña ahí.
La contraseña sólo sirve para la interfaz web. Clonar, subir o bajar cambios por Git usa su llave SSH, que se configura en el siguiente paso.
## 2. Agregar su llave pública SSH a la cuenta
1. Obtenga el contenido de su llave pública:
```bash
cat ~/.ssh/id_ed25519.pub
```
2. En la interfaz web: avatar → **Configuración** → **Llaves SSH / GPG** → **Agregar llave**.
3. Péguela completa (empieza con `ssh-ed25519` o `ssh-rsa`), póngale un nombre que la identifique (por ejemplo, el nombre de su equipo) y guarde.
## 3. Confirmar que la llave quedó activa
```bash
ssh -p 2222 git@git.mcps-epcm.org
```
Si todo está bien configurado, va a ver un mensaje similar a:
```
Hi there, <su-usuario>! You've successfully authenticated with the key named "...", but Gitea does not provide shell access.
```
Ese mensaje **es el resultado esperado** — no es un error; Gitea sólo confirma que lo reconoció. Si en cambio ve `Permission denied (publickey)`, revise la sección de solución de problemas más abajo antes de continuar.
## 4. Confirmar acceso: clonar el repositorio de ejemplo
Con la llave ya confirmada, clone el repositorio de ejemplo (`clusterlog`) para comprobar que puede traer código del servicio:
```bash
git clone ssh://git@git.mcps-epcm.org:2222/fernando/clusterlogs.git
cd clusterlogs
git log --oneline -3
```
Si el clonado termina sin errores y `git log` muestra los últimos commits, su acceso quedó confirmado.
## Verificación
- `ssh -p 2222 git@git.mcps-epcm.org` responde con el saludo de Gitea (no "Permission denied").
- `git clone ssh://git@git.mcps-epcm.org:2222/fernando/clusterlogs.git` termina sin errores.
- `cd clusterlogs && git log --oneline -3` muestra commits reales del repositorio.
Avíseme cuando complete estos tres puntos para marcarlo en la reunión.
## Solución de problemas
- **`Permission denied (publickey)`**: confirme que agregó la llave *pública* (`.pub`) completa, sin saltos de línea de más, y que es la misma llave que tiene cargada localmente (`ssh-add -l` para ver cuáles está ofreciendo su agente SSH).
- **`Could not resolve hostname` / tiempo de espera agotado**: confirme que tiene acceso de red al clúster activo (el mismo que necesita para `ssh mcps`); el servicio sólo es alcanzable desde ahí.
- **El clonado pide contraseña en vez de usar la llave**: revise que la URL use el prefijo `ssh://git@...:2222/` tal como está arriba, no una URL `https://`.
+40
View File
@@ -42,8 +42,48 @@ cp "$SOURCE/theme.toml" "$DEST/theme.toml"
[[ -f "$SOURCE/README.md" ]] && cp "$SOURCE/README.md" "$DEST/UPSTREAM_README.md" [[ -f "$SOURCE/README.md" ]] && cp "$SOURCE/README.md" "$DEST/UPSTREAM_README.md"
printf '%s\n' "$REF" > "$DEST/.upstream-revision" printf '%s\n' "$REF" > "$DEST/.upstream-revision"
# Ninguna plantilla local usa una sola clase de Bootstrap (auditado: cero
# coincidencias de .btn/.navbar/.row/.span*/.modal/etc.), así que el
# site.scss original del tema (que importa el bundle de Bootstrap 2 de
# ~103 KB) se reemplaza por un reset mínimo propio que cubre lo que
# ops.css sí necesita: el fondo negro de <code>/<pre> y unos resets base.
# static/ tampoco lo referencia nada local, así que se descarta entero.
cat > "$DEST/sass/site.scss" <<'SCSS'
// Reset propio: reemplaza el bundle de Bootstrap 2 del tema, que ninguna
// plantilla local usaba (auditado). Cubre solo lo que ops.css necesita.
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding: 0; list-style: none; }
img, svg, video { max-width: 100%; height: auto; display: block; }
table { border-collapse: collapse; width: 100%; }
hr { border: 0; border-top: 1px solid currentColor; }
a { text-decoration: underline; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
code, pre {
padding: 0;
color: #ffffff;
background-color: #000000;
border-radius: 0;
}
pre {
padding: 8.5px;
white-space: pre-wrap;
}
pre code {
padding: 0;
color: inherit;
background-color: transparent;
}
SCSS
rm -rf "$DEST/static"
mkdir -p "$DEST/static"
cat <<MSG cat <<MSG
Tema zola.386 preparado en themes/zola.386 Tema zola.386 preparado en themes/zola.386
Revisión fijada: $REF Revisión fijada: $REF
Se conservaron Sass y archivos estáticos; las plantillas locales modernas tienen precedencia. Se conservaron Sass y archivos estáticos; las plantillas locales modernas tienen precedencia.
site.scss reemplazado por un reset propio (~1 KB) en vez del bundle de Bootstrap 2 (~103 KB); static/ podado a vacío.
MSG MSG
+1 -1
View File
@@ -1,4 +1,4 @@
base_url = "https://bitacora-cluster.example.invalid" base_url = "https://clusterlog.mcps-epcm.org"
title = "Bitácora Operativa del Clúster" title = "Bitácora Operativa del Clúster"
description = "Documentación, manuales, memorias de cambio, proyectos y tareas del equipo de soporte." description = "Documentación, manuales, memorias de cambio, proyectos y tareas del equipo de soporte."
default_language = "es" default_language = "es"