Overview
GitHub Container Registry (GHCR) is GitHub’s container image registry service, integrated with GitHub repositories and Actions. It provides free storage for public images and supports private images for GitHub users.Registry URL
Image Format
ghcr.io/mycompany/api:latestghcr.io/myusername/frontend:v1.2.3
Authentication
GitHub Container Registry uses GitHub Personal Access Tokens (PAT) for authentication.Required Permissions
Your Personal Access Token (classic) needs the following scopes:read:packages- Pull images from GHCRread:org- Required for Qovery to validate your organization accesswrite:packages- Push images (only if needed)repo- Required only if your container packages are linked to private repositories (this is the default behavior on GitHub)
Configuration in Qovery
Create Personal Access Token
- Go to GitHub → Settings → Developer settings
- Click Personal access tokens → Tokens (classic)
- Click Generate new token (classic)
- Give it a descriptive name (e.g., “Qovery GHCR Access”)
- Select required scopes:
read:packagesread:orgrepo(if your packages are linked to private repositories)write:packages(only if pushing images)
- Click Generate token and copy immediately
Enter Credentials
Provide:
- Container Registry Prefix: Your GitHub organization name or username (e.g.,
mycompanyfor images likeghcr.io/mycompany/my-app) - Personal Access Token: Your GitHub Personal Access Token (classic) with the required scopes
Organization Access
For organization-owned packages:- Ensure your PAT has access to the organization
- The token owner must be a member of the organization
- If your organization enforces SAML SSO, you must authorize the token for SSO after creation: go to GitHub Settings → Developer settings → Personal access tokens (classic) → select your token → Configure SSO → Authorize for your organization
- If your packages inherit visibility from private repositories, the
reposcope is required on the token