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 bugflow:

shpcr.io/acme/bugflow:latest
shpcr.io/acme/bugflow: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 team settings, 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 -u [email protected] -p your-token

Or use stdin to avoid the token appearing in shell history:

echo "your-token" | docker login shpcr.io -u [email protected] --password-stdin

Tag and push

# Tag your local image for the registry
docker tag my-app:latest shpcr.io/your-team/your-product:latest

# Push to the registry
docker push shpcr.io/your-team/your-product:latest

Tagging strategy

Use semantic versioning to give customers flexibility:

# Tag with full version
docker tag my-app shpcr.io/your-team/your-product:1.2.3

# Tag with minor version (customers can get patches automatically)
docker tag my-app shpcr.io/your-team/your-product:1.2

# Tag with major version
docker tag my-app shpcr.io/your-team/your-product:1

# Tag as latest
docker tag my-app shpcr.io/your-team/your-product:latest

# Push all tags
docker push shpcr.io/your-team/your-product --all-tags

Viewing pushed images

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

  • Image name/tag
  • Last push timestamp
  • 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.

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
Want a complete setup? See Automated Builds for production-ready workflows with release channels, dependency caching, and reusable workflow patterns.