+++ 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) {% raw %} ```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/ ``` {% endraw %} ## 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.