Registry
SSM supports the following registries:
- ACR (Azure Container Registry)
- CUSTOM (Self-hosted Registry)
- ECR (Amazon Elastic Container Registry)
- GCR (Google Container Registry)
- GHCR (GitHub Container Registry)
- GITLAB (GitLab Container Registry)
- HUB (Docker Hub)
- LSCR (LinuxServer Container Registry)
- Quay
ℹ️ Default registries
By default, the following registries will be available using anonymous access: ECR, GHCR, GCR, HUB, QUAY
Configuring a registry
1. Go to settings, "Registries" tab
2. Select a predefined integration or custom integration (see below)
ACR (Azure Container Registry)
The acr
registry lets you configure ACR integration.
Variables
Name | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
clientid | 🔴 | Service Principal Client ID | See Service Principal Auth | |
clientsecret | 🔴 | Service Principal Secret | See Service Principal Auth |
Example
How to create Registry credentials on Microsoft Azure Platform
Create a Service Principal
Follow the official Azure documentation.
Get the Client Id and the Client Secret of the created Service Principal
Go to your Container Registry and click on the Access Control (IAM) Menu
Click to Add a role assignment
Select the AcrPull
role and assign it to your Service Principal
CUSTOM (Self-hosted Docker Registry)
The custom
registry lets you configure a self-hosted Docker Registry integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
url | 🔴 | Registry URL (e.g. http://localhost:5000) | ||
login | ⚪ | Login (when htpasswd auth is enabled on the registry) | password must be defined | |
password | ⚪ | Password (when htpasswd auth is enabled on the registry) | login must be defined | |
auth | ⚪ | Htpasswd string (when htpasswd auth is enabled on the registry) | login/password must not be defined |
Examples
Configure for anonymous access
Configure for Basic Auth
ECR (Amazon Elastic Container Registry)
The ecr
registry lets you configure ECR integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
region | 🔴 | A valid AWS Region Code | AWS Region list | |
accesskey | 🔴 | A valid AWS Access Key Id | Standard AWS Credentials | |
secretaccesskey | 🔴 | A valid AWS Secret Access Key | Standard AWS Credentials |
!> The AmazonEC2ContainerRegistryReadOnly Policy (or higher) must be attached to the AWS IAM User.
Examples
How to create an AWS IAM user and get programmatic access
1. Login to your Go to the IAM Service from your AWS Console and create a new user
2. Attach the AmazonEC2ContainerRegistryReadOnly policy to the user
3. Get your AccessKeyId and your Secret Access Key and configure SSM with them
FORGEJO
The forgejo
registry lets you configure a self-hosted Forgejo integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
url | 🔴 | Registry URL (e.g. https://forgejo.acme.com) | ||
login | 🔴 | Gitea username | password must be defined | |
password | 🔴 | Gitea password | login must be defined | |
auth | ⚪ | Htpasswd string (when htpasswd auth is enabled on the registry) | login/password must not be defined |
Examples
Configure
GCR (Google Container Registry)
The gcr
registry lets you configure GCR integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
clientemail | ⚪ | Service Account Client Email (required for private images access) | See Service Account credentials | |
privatekey | ⚪ | Service Account Private Key (required for private images access) | See Service Account credentials |
Examples
Configure for authenticated access
How to create a Service Account on Google Cloud Platform
1. Go to the Service Account page
2. Create a new Service Account
3. Add the Container Registry Service Role
4. Save the Service Account
5. Create a new key for the newly created Service Account
6. Download the keyfile JSON file and store it securely
7. Open the JSON file, get the client_email and private_key values and configure SSM with them
GHCR (GitHub Container Registry)
The ghcr
registry lets you configure GHCR integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
username | ⚪ | GitHub username | ||
token | ⚪ | GitHub token | GitHub password or GitHub Personal Token |
Examples
Configure to access private images (credentials needed)
How to create a GitHub Personal Token
Go to your GitHub settings and open the Personal Access Token tab
Click on Generate new token
Choose an expiration time & appropriate scopes (read:packages
is only needed for SSM) and generate.
Copy the token & use it as the token
value
GITEA
The gitea
registry lets you configure a self-hosted Gitea integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
url | 🔴 | Registry URL (e.g. https://gitea.acme.com) | ||
login | 🔴 | Gitea username | password must be defined | |
password | 🔴 | Gitea password | login must be defined | |
auth | ⚪ | Htpasswd string (when htpasswd auth is enabled on the registry) | login/password must not be defined |
Examples
Configure
GitLab (GitLab Container Registry)
The gitlab
registry lets you configure GitLab integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
url | 🔴 | GitLab Registry base URL | https://registry.gitlab.com | |
authurl | 🔴 | GitLab Authentication base URL | https://gitlab.com | |
token | 🔴 | GitLab Personal Access Token |
Examples
Configure to access images from gitlab.com
Configure to access images from self-hosted GitLab instance
How to create a GitLab Personal Access Token
Go to your GitLab settings and open the Personal Access Token page
Enter the details of the token to be created
Choose an expiration time & appropriate scopes (read_registry
is only needed for SSM) and generate.
Copy the token & use it as the token
value
HUB (Docker Hub including private repositories)
The hub
registry lets you configure Docker Hub integration.
Currently, the supported credentials are:
- Docker Hub auth + Docker Hub Access Token
- Docker Base64 credentials (like in .docker/config.json)
- Docker Hub auth + Docker Hub password (not recommended)
!> By default, if you don't configure any registries, SSM will configure a default one with anonymous access.
Don't forget to configure authentication if you're using Docker Hub Private Repositories.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
login | ⚪ | A valid Docker Hub Login | token must be defined | |
password | ⚪ | A valid Docker Hub Token | login must be defined | |
token | ⚪ | A valid Docker Hub Token (deprecated; replaced by password ) | login must be defined | |
auth | ⚪ | A valid Docker Hub Base64 Auth String | login/token must not be defined |
Examples
Configure Authentication using Login/Token
1. Login to your Docker Hub Account
2. Go to your Security Settings
- Create a new Access Token
- Copy it and use it as the
token
value
Configure Authentication using Base64 encoded credentials
1. Create an Access Token
See above "Configure Authentication using Login/Token"
2. Encode with Base64
Concatenate $auth:$password
and encode with Base64.
For example,
- if your auth is
johndoe
- and your password is
2c1bd872-efb6-4f3a-81aa-724518a0a592
- the resulting encoded string would be
am9obmRvZToyYzFiZDg3Mi1lZmI2LTRmM2EtODFhYS03MjQ1MThhMGE1OTI=
LSCR (LinuxServer Container Registry)
The lscr
registry lets you configure LSCR integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
username | 🔴 | GitHub username | ||
token | 🔴 | GitHub token | GitHub password or GitHub Personal Token |
Examples
How to create a GitHub Personal Token
Go to your GitHub settings and open the Personal Access Token tab
Click on Generate new token
Choose an expiration time & appropriate scopes (read:packages
is only needed for SSM) and generate.
Copy the token & use it as the token
value
Quay
The quay
registry lets you configure Quay integration.
Variables
Env var | Required | Description | Supported values | Default value when missing |
---|---|---|---|---|
namespace | ⚪ | Quay namespace | ||
account | ⚪ | Quay account | ||
token | ⚪ | Quay token |
Examples
Configure to access private images (credentials needed)
How to create a Quay.io robot account
Go to your Quay.io settings and open the Robot Accounts tab
Click on Create Robot Account
Choose a name & create it
Copy the part before the +
sign and set it as the namespace
env var
Copy the part after the +
sign and set it as the account
env var
Copy the token value and set it as the token
env var
Deleting a registry
Deleting a custom registry
To delete a custom registry, simply click on "Delete" on the tile of your custom registry
Resetting a default registry
To reset a default registry, simply click on "Reset" on the tile of your custom registry