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
- Go to any product's Images tab
- Click Generate Access Token
- Enter a name for the token (e.g., "CI/CD" or "Local development")
- 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.