Seller Guide

Docker Registry

Push and manage Docker images on the Self-Host Pro registry.

Self-Host Pro provides a private Docker registry at shpcr.io. Only customers with a valid purchase can pull your images.

Registry URL

Your images are stored at:

shpcr.io/{team-url}/{product-url}:{tag}

For example, if your team URL is acme and your product URL is airstudio:

shpcr.io/acme/airstudio:latest
shpcr.io/acme/airstudio:1.0.0

Access tokens

To push images, you need a team access token.

Generate a token

  1. Go to any product's Images tab
  2. Click Generate Access Token
  3. Enter a name for the token (e.g., "CI/CD" or "Local development")
  4. Copy the credentials — the token is only shown once

You'll receive:

  • Username — Your email address
  • Token — A secure password for registry authentication

Manage tokens

From your Profile → Access Tokens page, you can:

  • Regenerate — Create a new token (invalidates the old one)
  • Revoke — Delete the token entirely

Pushing images

Log in to the registry

docker login shpcr.io

Use your email as the username and your access token as the password — not your Self-Host Pro account password.

Build and push

From the directory containing your Dockerfile:

Use semantic versioning for tags (e.g., 1.0.0, 1.0, latest). This lets customers pin to a specific version or always follow the latest release.
docker build --push -t shpcr.io/your-team/your-product:your-tag .

If your Dockerfile has a different name (e.g. Dockerfile.prod), add -f Dockerfile.prod.

Viewing pushed images

After pushing, images appear in your product's Images tab showing:

  • Image name/tag (with full registry path)
  • Image size
  • Platforms (OS and architecture)
  • Last push timestamp and who pushed it

CI/CD integration

Use your access token in CI/CD pipelines. Store the token as a secret and log in before pushing.

Want a complete setup? See "Automated Builds" for production-ready workflows with release channels, dependency caching, and reusable workflow patterns.

GitHub Actions example

jobs:
  push:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Log in to Self-Host Pro registry
        run: echo "${{ secrets.SHPCR_TOKEN }}" | docker login shpcr.io -u ${{ secrets.SHPCR_USERNAME }} --password-stdin

      - name: Build and push
        run: |
          docker build -t shpcr.io/your-team/your-product:${{ github.sha }} .
          docker push shpcr.io/your-team/your-product:${{ github.sha }}

GitLab CI example

push:
  image: docker:latest
  services:
    - docker:dind
  script:
    - echo "$SHPCR_TOKEN" | docker login shpcr.io -u "$SHPCR_USERNAME" --password-stdin
    - docker build -t shpcr.io/your-team/your-product:$CI_COMMIT_SHA .
    - docker push shpcr.io/your-team/your-product:$CI_COMMIT_SHA