Skip to main content
Container registry integrations track new releases and versions of container images, helping you keep your infrastructure up to date.

Supported Registries

Docker Hub

Official Docker registry

GitHub Container Registry

GitHub’s container platform

Quay

Red Hat’s container registry

Docker Hub

Track Docker image releases and updates from Docker Hub.

Configuration

url
string
default:"https://hub.docker.com"
Docker Hub URL (usually default)
username
string
Docker Hub username (optional, for private images)
personalAccessToken
string
Docker Hub personal access token (optional, for authentication)
Authentication is optional for public images but required for:
  • Private repositories
  • Higher API rate limits
  • Organizational repositories

Generating a Personal Access Token

1

Login to Docker Hub

Navigate to hub.docker.com
2

Account Settings

Click your username → Account SettingsSecurity
3

Create Token

Click New Access Token
4

Configure Token

  • Description: “Homarr”
  • Access permissions: Read-only
5

Copy Token

Save the token immediately - it’s shown only once!

Available Features

Monitor container image versions:
  • Latest matching release
  • Version tags and digests
  • Release timestamps
  • Image size information
  • Pull count statistics
  • Star count
  • Description and README
  • Links to repository page
API Method: getLatestMatchingReleaseAsync(identifier, versionRegex?)Supported formats:
  • library/image-name - Official images
  • username/image-name - User images
  • organization/image-name - Org images
  • image-name - Official library images (shorthand)
Use regex patterns to match specific versions:
// Get latest stable (non-beta) version
await integration.getLatestMatchingReleaseAsync(
  'nginx',
  '^\\d+\\.\\d+\\.\\d+$'
);

// Get latest LTS version
await integration.getLatestMatchingReleaseAsync(
  'node',
  '^\\d+\\.\\d+\\.\\d+-alpine$'
);

// Get specific major version
await integration.getLatestMatchingReleaseAsync(
  'postgres',
  '^15\\.'
);
The integration searches up to 5 pages (500 tags) to find a match.
{
  success: true,
  data: {
    // Version information
    name: "1.25.3",
    version: "1.25.3",
    versionName: "1.25.3",
    createdAt: "2024-01-15T10:30:00Z",
    
    // Repository details
    projectUrl: "https://hub.docker.com/r/library/nginx",
    projectDescription: "Official build of Nginx",
    starsCount: 15420,
    
    // Image metadata
    size: 142000000,  // bytes
    pullCount: 1000000000,
    digest: "sha256:abc123..."
  }
}
On failure:
{
  success: false,
  error: {
    code: "noMatchingVersion" | "invalidIdentifier" | "unexpected",
    message?: "Error details"
  }
}

Session Management

Docker Hub integration includes automatic session handling:
  • Access tokens are cached per integration
  • Tokens auto-refresh on expiration (401 errors)
  • Unauthenticated mode for public images
  • Efficient API usage

Example Configuration

{
  "name": "Docker Hub",
  "url": "https://hub.docker.com",
  "secrets": {}
}
No authentication needed for public images.

Usage Examples

// Track official Nginx image
await dockerHub.getLatestMatchingReleaseAsync('nginx');

// Track specific user image
await dockerHub.getLatestMatchingReleaseAsync('linuxserver/plex');

// Track with version filter
await dockerHub.getLatestMatchingReleaseAsync(
  'postgres',
  '^15\\.\\d+\\.\\d+$'
);

GitHub Container Registry (GHCR)

Monitor container images from GitHub Container Registry.

Configuration

url
string
default:"https://ghcr.io"
GHCR URL (usually default)
token
string
GitHub Personal Access Token with read:packages scope

Generating a GitHub Token

1

GitHub Settings

Go to GitHub → SettingsDeveloper settings
2

Personal Access Tokens

Click Personal access tokensTokens (classic)
3

Generate New Token

Click Generate new token (classic)
4

Select Scopes

Enable:
  • read:packages - Read packages and metadata
  • Optionally repo if tracking private repositories
5

Generate

Click Generate token and copy it immediately

Available Features

  • Track GHCR container releases
  • Monitor organization packages
  • Private package support
  • Version filtering with regex
  • Package metadata and stats

Package Identifier Format

ghcr.io/owner/package-name
Examples:
  • ghcr.io/homarr-labs/homarr - Organization package
  • ghcr.io/username/my-app - User package

Example Configuration

{
  "name": "GitHub Container Registry",
  "url": "https://ghcr.io",
  "secrets": {
    "token": "ghp_xxxxxxxxxxxxx"
  }
}

Quay.io

Monitor container images from Red Hat’s Quay registry.

Configuration

url
string
default:"https://quay.io"
Quay URL (usually default)
token
string
Quay OAuth token (optional, for private repos)

Generating a Quay Token

1

Login to Quay

Navigate to quay.io
2

Account Settings

Click your username → Account Settings
3

Generate Token

Go to Robot Accounts or OAuth Applications
4

Create Application

Create a new OAuth application for Homarr
5

Copy Token

Save the OAuth token

Available Features

  • Public image tracking
  • Private repository support
  • Organization repositories
  • Version filtering
  • Security scanning results
  • Vulnerability information

Example Configuration

{
  "name": "Quay",
  "url": "https://quay.io",
  "secrets": {
    "token": "your-quay-token"
  }
}

Comparison

RegistryAuthenticationPublic ImagesPrivate ImagesRate Limits
Docker HubOptional PAT✅ (with auth)100/6h (unauth), 200/6h (auth)
GHCRGitHub PATGenerous
QuayOAuth TokenGenerous

Version Regex Patterns

Common regex patterns for version filtering:
# Any semantic version
^\d+\.\d+\.\d+$

# Specific major version
^15\.\d+\.\d+$

# Version with suffix
^\d+\.\d+\.\d+-alpine$

Widget: Release Tracker

Use registry integrations with the Release Tracker widget:
1

Add Widget

Edit ModeAdd WidgetRelease Tracker
2

Select Registry

Choose your configured registry integration
3

Configure Tracking

  • Enter image identifier
  • Optional: Set version regex filter
  • Set refresh interval
4

Display Options

  • Show/hide descriptions
  • Display star counts
  • Show pull statistics
  • Link to registry page

Widget Features

  • Latest version badge
  • “New version available” notifications
  • One-click links to registry
  • Release date tracking
  • Auto-refresh support

API Rate Limits

Docker Hub

Unauthenticated:
  • 100 pulls per 6 hours per IP
  • API rate limits apply
Authenticated:
  • 200 pulls per 6 hours
  • Higher API rate limits
  • Access to private repositories
Always authenticate for production use to avoid rate limiting.

GitHub Container Registry

  • Very high rate limits
  • No pull limits for public images
  • Authentication required for private packages

Quay

  • Generous rate limits
  • No strict pull limits
  • Authentication for private repos

Troubleshooting

Rate Limited (Docker Hub)

Symptoms: “Rate limit exceeded” or 429 errors Solutions:
  1. Add authentication (username + PAT)
  2. Reduce refresh frequency
  3. Wait for rate limit reset (6 hours)
  4. Use Docker Hub Pro account for unlimited pulls

Image Not Found

Symptoms: “404 Not Found” or “invalidIdentifier” error Solutions:
  1. Verify image name spelling
  2. Check if image is public (or add auth for private)
  3. Ensure organization/user name is correct
  4. Test URL manually in browser

No Matching Version

Symptoms: “noMatchingVersion” error Solutions:
  1. Verify version regex pattern
  2. Check available tags in registry UI
  3. Broaden regex pattern
  4. Remove version filter to see all versions

Authentication Failed

Symptoms: “Unauthorized” or “Invalid credentials” Solutions:
  1. Verify PAT/token hasn’t expired
  2. Check token has correct scopes/permissions
  3. Regenerate token if necessary
  4. For Docker Hub, use PAT not password

Best Practices

  1. Use Specific Tags: Don’t rely on latest tag in production
  2. Version Filtering: Use regex to track stable releases only
  3. Authentication: Always auth for private images and higher limits
  4. Multiple Registries: Track images from multiple registries
  5. Monitoring: Set up notifications for new releases
  6. Documentation: Document which images you track and why

Next Steps

Release Widget

Create release tracking widgets

Troubleshooting

Common integration issues

API Reference

Integration API documentation

Build docs developers (and LLMs) love