diff --git a/content/memorias/2026-08-25-mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea.md b/content/memorias/2026-08-25-mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea.md new file mode 100644 index 0000000..3b3455c --- /dev/null +++ b/content/memorias/2026-08-25-mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea.md @@ -0,0 +1,66 @@ ++++ +title = "Extender el correo saliente de notificaciones a git.mcps-epcm.org (Gitea)" +description = "Continuación de MEM-20260824-254312: se agregó la misma cuenta dedicada notificaciones@mcps-epcm.org como remitente SMTP de Gitea, que no tenía sección [mailer] configurada en absoluto (recuperación de contraseña también era imposible ahí)." +date = 2026-08-25T01:01:15Z +authors = ["gen"] +slug = "mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea" +template = "memory.html" + +[taxonomies] +categories = ["memorias"] +tags = ["correo", "docker-mailserver", "gitea", "smtp"] +systems = ["gitea", "mail-server", "mcps-hpc-01", "mcps-vpn-server"] + +[extra] +id = "MEM-20260825-EED6F1" +kind = "memory" +author_id = "gen" +author_fingerprint = "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg" +risk = "medium" +ticket = "" +review_required = true +review_policy = "all-active" +reviewer_snapshot = true +reviewers = ["gen"] +started_at = "" +finished_at = "" +duration_minutes = 0 +agent = "claude-code" ++++ + +## Contexto + +El usuario pidió extender el correo saliente ya configurado para Zammad y Grafana (ver MEM-20260824-254312) también a git.mcps-epcm.org (Gitea 1.27.1, contenedor 'gitea' en mcps-hpc-01). Revisando /opt/gitea/data/gitea/conf/app.ini no había sección [mailer] en absoluto — mismo escenario que Grafana: Gitea no podía mandar ningún correo, incluyendo el de recuperación de contraseña. El contenedor ya se gestiona con un unit de systemd propio (/etc/systemd/system/container-gitea.service) que arma la config vía variables GITEA____ (convención propia de Gitea, ya usada para server/database/service/security en ese mismo unit) — se siguió el mismo patrón agregando GITEA__mailer__*, en vez de editar app.ini a mano, porque el entrypoint de Gitea vuelve a sincronizar esas variables a app.ini en cada arranque del contenedor (editar el archivo directamente se habría perdido o desincronizado en el próximo restart). La contraseña de notificaciones@ se inyectó igual que en Grafana: forma 'bare' de podman vía un EnvironmentFile dedicado (/etc/gitea-smtp.env, 600 root:root), no hardcodeada en el unit. Se respaldó el unit original antes de editar. Tras systemctl daemon-reload + restart, se confirmó que app.ini quedó con [mailer] ENABLED=true y los valores correctos, el contenedor arrancó limpio (sin errores de mail en el log) y el sitio respondió HTTP 200. No se disparó un envío real de prueba (a diferencia de Zammad): Gitea no expone un comando de CLI para probar el mailer, y el botón de 'enviar correo de prueba' vive en su panel de administración web, al que no tengo acceso desde este entorno. La credencial notificaciones@mcps-epcm.org ya se había verificado funcional por SMTP en la memoria anterior (swaks + entrega real confirmada desde Zammad), así que la confianza en que funcione aquí es alta pero no está confirmada específicamente para Gitea. + +## Cambios realizados + +- Creado /etc/gitea-smtp.env (600, root:root) con GITEA__mailer__PASSWD +- Respaldado el unit original como container-gitea.service.bak-2026-08-24 +- Agregadas variables GITEA__mailer__ENABLED/PROTOCOL/SMTP_ADDR/SMTP_PORT/FROM/USER/PASSWD al ExecStart de /etc/systemd/system/container-gitea.service, con EnvironmentFile=/etc/gitea-smtp.env +- systemctl daemon-reload + restart de container-gitea.service + +## Comandos relevantes (secretos redactados) + +```console +podman inspect gitea --format '{{range .Config.Env}}{{println .}}{{end}}' +cat /opt/gitea/data/gitea/conf/app.ini +podman exec gitea gitea --version +systemctl cat container-gitea.service +cp /etc/systemd/system/container-gitea.service /etc/systemd/system/container-gitea.service.bak-2026-08-24 +tee /etc/gitea-smtp.env # GITEA__mailer__PASSWD=, chmod 600 +systemctl daemon-reload && systemctl restart container-gitea.service +cat /opt/gitea/data/gitea/conf/app.ini # confirmar seccion [mailer] +podman logs gitea | grep -iE 'mail|error|fatal|panic' +curl -s -o /dev/null -w '%{http_code}' http://10.89.0.60:3000/ +``` + +## Validación + +- app.ini tras el restart mostró [mailer] con ENABLED=true, PROTOCOL=smtp+starttls, SMTP_ADDR=mail.mcps-epcm.org, SMTP_PORT=587, USER/FROM=notificaciones@mcps-epcm.org y la contraseña correcta +- podman logs gitea sin líneas de error/fatal/panic ni menciones de mail tras el arranque +- curl al puerto interno del contenedor devolvió HTTP 200 +- systemctl is-active container-gitea.service devolvió 'active', sin reinicios en bucle + +## Riesgo y reversión + +Restaurar /etc/systemd/system/container-gitea.service.bak-2026-08-24 sobre container-gitea.service, borrar /etc/gitea-smtp.env, systemctl daemon-reload && systemctl restart container-gitea.service para volver Gitea a su estado sin [mailer]. Pendiente: un administrador debe probar el flujo real de 'olvidé mi contraseña' en git.mcps-epcm.org (o el botón de correo de prueba en Admin > Configuración) para confirmar la entrega end-to-end, igual que sigue pendiente para Grafana. diff --git a/data/generated/site_state.json b/data/generated/site_state.json index 28e6756..1e36b59 100644 --- a/data/generated/site_state.json +++ b/data/generated/site_state.json @@ -1,14 +1,42 @@ { "version": 2, - "generated_at": "2026-08-24T20:49:04Z", - "source_sha256": "c890451b817fb13c727792dbcf5d5473c06646493435c2b1c8be6e39884a325f", + "generated_at": "2026-08-25T01:01:15Z", + "source_sha256": "24c5629b3f812fee92bb28270c4c245f3c4735eef59c8cdadb91d05aeda0813d", "stats": { "active_admins": 1, - "pending_reviews": 6, + "pending_reviews": 7, "open_tasks": 1, "active_projects": 1 }, "review_queue": [ + { + "entry_id": "MEM-20260825-EED6F1", + "title": "Extender el correo saliente de notificaciones a git.mcps-epcm.org (Gitea)", + "description": "Continuación de MEM-20260824-254312: se agregó la misma cuenta dedicada notificaciones@mcps-epcm.org como remitente SMTP de Gitea, que no tenía sección [mailer] configurada en absoluto (recuperación de contraseña también era imposible ahí).", + "date": "2026-08-25T01:01:15Z", + "author_id": "gen", + "risk": "medium", + "tags": [ + "correo", + "docker-mailserver", + "gitea", + "smtp" + ], + "systems": [ + "gitea", + "mail-server", + "mcps-hpc-01", + "mcps-vpn-server" + ], + "permalink": "/memorias/mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea/", + "content_sha256": "08a71d39d9b0fab0f2c1cd6cec76fc087157ec007748be6361e0a90e40095235", + "reviewed_by": [], + "missing_reviewers": [ + "gen" + ], + "required_count": 1, + "reviewed_count": 0 + }, { "entry_id": "MEM-20260824-254312", "title": "Configurar correo saliente para recuperación de contraseña en Zammad y Grafana", @@ -168,6 +196,37 @@ } ], "recent_memories": [ + { + "entry_id": "MEM-20260825-EED6F1", + "title": "Extender el correo saliente de notificaciones a git.mcps-epcm.org (Gitea)", + "description": "Continuación de MEM-20260824-254312: se agregó la misma cuenta dedicada notificaciones@mcps-epcm.org como remitente SMTP de Gitea, que no tenía sección [mailer] configurada en absoluto (recuperación de contraseña también era imposible ahí).", + "date": "2026-08-25T01:01:15Z", + "author_id": "gen", + "author_fingerprint": "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg", + "risk": "medium", + "review_required": true, + "review_policy": "all-active", + "reviewer_snapshot": true, + "reviewers": [ + "gen" + ], + "tags": [ + "correo", + "docker-mailserver", + "gitea", + "smtp" + ], + "systems": [ + "gitea", + "mail-server", + "mcps-hpc-01", + "mcps-vpn-server" + ], + "slug": "mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea", + "permalink": "/memorias/mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea/", + "source_path": "content/memorias/2026-08-25-mem-20260825-eed6f1-extender-el-correo-saliente-de-notificaciones-a-git-mcps-epcm-org-gitea.md", + "content_sha256": "08a71d39d9b0fab0f2c1cd6cec76fc087157ec007748be6361e0a90e40095235" + }, { "entry_id": "MEM-20260824-254312", "title": "Configurar correo saliente para recuperación de contraseña en Zammad y Grafana",