Saltar al contenido principal
Un Token de Acceso Personal (PAT) de GitHub es la única credencial que desbloquea todos los artefactos de AgentEye. Con un solo token puedes descargar las imágenes Docker, los binarios de las versiones publicadas y los paquetes Python, sin necesidad de iniciar sesión por componente ni de compartir secretos. Todos los artefactos de AgentEye se distribuyen desde la organización agenteye-enterprise en GitHub; una vez que se otorga acceso a tu organización, cada desarrollador u operador genera y rota su propio token, lo que mantiene el acceso auditable y revocable por persona. Configura el token como variable de entorno y credencial de Docker una vez por máquina:
Nota sobre el nombre de usuario: GHCR ignora el nombre de usuario en docker login y se autentica exclusivamente mediante el token, por lo que cualquier valor no vacío funciona. En esta documentación se usa -u x por brevedad; los manifiestos de despliegue que crean un secreto de extracción de imágenes en Kubernetes pueden utilizar un nombre de usuario más descriptivo, como agenteye-enterprise. Ambos son válidos.

Opción A: Token Clásico (Recomendado)

Un token clásico es la opción más fiable para AgentEye, ya que el flujo de docker login e imagen de GHCR tiene el soporte más amplio y consistente para tokens clásicos. Dos alcances cubren todo lo que necesitas (extraer imágenes y descargar artefactos de versiones), de modo que te autenticas una vez y continúas sin tener que resolver problemas del registro. Uno de ellos, read:packages, es genuinamente de solo lectura; el otro, repo, es el único alcance clásico que concede acceso a artefactos de versiones privadas, y es deliberadamente amplio — GitHub lo define como control total (lectura y escritura) de repositorios privados.

1. Crear el token

Ve a GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).
CampoValor
Noteagenteye-<nombre-de-máquina-o-equipo> (p. ej. agenteye-prod-server)
ExpirationDefine un vencimiento acorde a tu política de seguridad; 90 días es un valor predeterminado razonable
Nota sobre la etiqueta: GitHub denomina este campo Note en los tokens clásicos y Token name en los tokens de grano fino. Cumplen el mismo propósito: un identificador legible para auditorías y revocaciones posteriores.

2. Seleccionar los alcances

AlcancePor qué es necesario
read:packagesExtraer imágenes Docker de ghcr.io/agenteye-enterprise/ y descargar artefactos de paquetes
repoLeer contenidos de repositorios privados, archivos sin procesar y artefactos de versiones de agenteye-enterprise/releases. Este es el alcance de GitHub definido como “Control total de repositorios privados” (lectura y escritura), no de solo lectura — es simplemente el único alcance clásico que concede acceso a artefactos de versiones privadas
No se requieren otros alcances.

3. Generar y copiar el token

Haz clic en Generate token y copia el valor de inmediato; solo se muestra una vez. Guárdalo en tu gestor de secretos o en tu entorno.

Opción B: Token de Grano Fino

Los tokens de grano fino limitan el acceso a repositorios y permisos específicos, lo que los convierte en la opción de mínimo privilegio más restrictiva. Elige esta ruta cuando la política de seguridad de tu organización exija tokens de grano fino.
Nota: El soporte de GHCR para tokens de grano fino es menos consistente que para los tokens clásicos. Si docker login o docker pull falla después de seguir estos pasos, recurre a un token clásico (Opción A).

1. Crear el token

Ve a GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
CampoValor
Token nameagenteye-<nombre-de-máquina-o-equipo> (p. ej. agenteye-prod-server)
ExpirationDefine un vencimiento acorde a tu política de seguridad; 90 días es un valor predeterminado razonable
Resource owneragenteye-enterprise
Repository accessOnly select repositoriesagenteye-enterprise/releases

2. Configurar los permisos del repositorio

En Permissions → Repository permissions, establece:
PermisoAcceso
ContentsRead-only
PackagesRead-only
Todos los demás permisos pueden dejarse en No access.
Nota: Si las imágenes de contenedor (ghcr.io/agenteye-enterprise/...) se publican como paquetes a nivel de organización en lugar de paquetes vinculados a un repositorio, el inicio de sesión de Docker puede fallar únicamente con permisos de alcance de repositorio. En ese caso, agrega un permiso a nivel de organización: Permissions → Organization permissions → Packages: Read-only.

3. Qué concede cada permiso

PermisoUtilizado para
Contents: Read-onlyDescargar docker-compose.yml, binarios de versiones y paquetes Python de agenteye-enterprise/releases
Packages: Read-onlyExtraer imágenes Docker de ghcr.io/agenteye-enterprise/

4. Generar y copiar el token

Haz clic en Generate token y copia el valor de inmediato; solo se muestra una vez. Guárdalo en tu gestor de secretos o en tu entorno.

Rotación de un Token

Rotar los tokens de forma periódica mantiene el acceso auditable y limita el impacto en caso de que una credencial se filtre. Los tokens también pueden expirar o revocarse en cualquier momento, por lo que la rotación es la forma habitual de mantenerse autenticado. Para rotar:
  1. Genera un nuevo token siguiendo los pasos anteriores.
  2. Actualiza AGENTEYE_TOKEN en tu entorno o gestor de secretos.
  3. Vuelve a autenticar Docker: echo $AGENTEYE_TOKEN | docker login ghcr.io -u x --password-stdin
  4. Revoca el token anterior en GitHub → Settings → Developer settings → Personal access tokens, abre la subpágina Tokens (classic) o Fine-grained tokens según el tipo de token y elimínalo.

Verificar tu Token

Confirma que el token funciona antes de integrarlo en un despliegue, de modo que los errores de autenticación aparezcan aquí y no a mitad de una puesta en producción. Cada comando ejercita uno de los alcances anteriores:
Un docker login exitoso confirma el alcance de paquetes; un archivo descargado correctamente confirma el alcance de contenidos.

Solución de Problemas

SíntomaCausa probableSolución
docker login devuelve 401Token sin Packages: Read-only (grano fino) o read:packages (clásico)Agrega el alcance de paquetes y regenera el token
curl devuelve 404 en URLs de GitHub sin procesarToken sin Contents: Read-only o alcance repoAgrega el alcance de contenidos y regenera el token
gh release download devuelve 403Token no autorizado para agenteye-enterprise/releasesVerifica que el repositorio esté incluido en el acceso del token de grano fino, o usa un token clásico con alcance repo
Token aceptado pero no se encuentran las imágenesFalta el permiso de paquetes a nivel de organización en el token de grano finoAgrega el permiso de organización Packages: Read-only
Para problemas de acceso, contacta a support@exosphere.host.