Solución de problemas
Lo primero, siempre:
make doctor # requisitos, permisos, puerto y motoresmake status # contenedores e imágenes de los motoresmake logsLos logs de la app no contienen contraseñas, tokens ni claves: puedes compartirlos al pedir ayuda. Aun así, revísalos antes por si incluyen nombres de repositorios o dominios que prefieras no publicar.
| Síntoma | Causa probable | Solución |
|---|---|---|
opengrep aparece como Exited |
Es su comportamiento: solo construye la imagen del motor y comprueba que arranca. | Nada. |
La construcción falla en sha256sum -c |
El binario de Opengrep descargado no coincide con el hash fijado. | No continúes: reintenta más tarde y, si persiste, abre un issue. Nunca quites la comprobación. |
El primer make up tarda mucho más que unos minutos |
Los ~800 MB de imágenes pasan por una VPN o un proxy corporativo que frena o inspecciona el registro de contenedores (ghcr.io, cuyas capas salen de pkg-containers.githubusercontent.com). Medido: más de 25 minutos con la VPN de una empresa, 3 sin ella. |
Haz el primer make up sin la VPN, o pide a quien lleve la red que exceptúe esos dos dominios de la inspección. Solo pasa una vez: los arranques siguientes reutilizan las imágenes. |
make up construye las imágenes (Building, pnpm install, pip install) aunque querías las publicadas |
.env no tiene compose.images.yaml en COMPOSE_FILE (por ejemplo, se corrió make up antes de make setup PREBUILT=1). |
make setup PREBUILT=1 y luego make up. grep COMPOSE_FILE .env debe mostrar compose.images.yaml. |
| Windows: todo va muy lento en WSL2 | El repositorio está en el disco de Windows (/mnt/c/...), que WSL2 lee mucho más despacio. |
Clónalo dentro de Linux (cd ~ && git clone ...). |
El panel no abre en 127.0.0.1:8766 |
Otro servicio usa el puerto o el contenedor no arrancó. | Cambia PITANGUS_HOST_PORT y también PITANGUS_PUBLIC_URL y PITANGUS_ALLOWED_ORIGINS en .env. |
| Host no permitido (403) | Abres el panel con una URL que no está en PITANGUS_ALLOWED_ORIGINS. |
Añádela en .env y reinicia. |
| El contenedor se para con expone el panel por HTTP en claro | PITANGUS_PUBLIC_URL apunta fuera de esta máquina sin HTTPS. |
Pon HTTPS delante (ver README) o vuelve a http://127.0.0.1:8766. |
| No encuentro el código de configuración | Salió en los logs del primer arranque. | make setup-code. Si ya hay un usuario creado, el código no existe: entra con ese usuario. |
Permission denied en data/ o config/ |
Las carpetas las creó Docker como root. | sudo chown -R $(id -u):$(id -g) data config; si tu .env tiene otro UID/GID, bórralo y ejecuta make setup. |
| No se pudo descifrar un secreto | Cambió PITANGUS_MASTER_KEY o se perdió config/master.key. |
Restaura la clave; si no es posible, Olvidar la App y vuelve a conectar GitHub y Jira. |
| Un motor sale como No probado | Docker no es accesible desde el contenedor o falta la imagen. | make status dice qué imagen falta: make build para Opengrep y make engines para Trivy y Gitleaks. |
| El CVE tracker va lento al empezar | La copia local de NVD se está descargando (se ve el progreso arriba). | Espera, o añade PITANGUS_NVD_API_KEY. |
Linux: análisis sin hallazgos que no cuadran, o cachés trivy-cache-<uid> nuevas |
Antes del 23-sep-2026 se lanzaban los motores como root sin capacidades, que en Linux no puede leer las carpetas privadas de la app y devolvía cero hallazgos sin avisar. Ahora corren con el UID de la app; si una caché antigua la creó root, se usa una nueva a su lado. | Vuelve a lanzar los análisis hechos en Linux antes de actualizar. Las cachés viejas (data/trivy-cache, data/grype-cache) se pueden borrar con sudo rm -rf si ya existe la versión con sufijo. |
| Un análisis quedó Fallido tras reiniciar | Al arrancar se marcan como fallidos los que estaban a medias. | Vuelve a lanzarlo. |
| Perdí el segundo factor | — | Otro administrador lo quita en Usuarios, o por CLI: make cli ARGS="user reset-totp --username tu-usuario". |
| Olvidé la contraseña | — | Usuarios → Enlace de contraseña, o user reset-password por CLI. |
| El panel, un informe o un comentario de PR sale en otro idioma | El panel sigue al navegador; todo lo demás usa PITANGUS_DEFAULT_LOCALE. |
Usa el selector de idioma de la barra lateral (o de la pantalla de inicio de sesión); para informes, comentarios en PRs, avisos, Jira y la CLI, pon PITANGUS_DEFAULT_LOCALE=es o en en .env y ejecuta docker compose up -d. |