Kotar Enterprise Instructions - planetaryutilities/kotar-support GitHub Wiki
Kotar Enterprise – Docker Hub Access and Deployment
Overview
Planetary Utilities distributes Kotar Enterprise through a private Docker Hub repository.
Repository: https://hub.docker.com/r/planetaryutilities/kotar-enterprise
Your organization receives a Docker Hub Organization Access Token (OAT) granting read-only access to this repository.
The token allows your organization to download Kotar Enterprise Docker images without becoming a member of the Planetary Utilities Docker Hub organization.
1. Credentials
Planetary Utilities provides the following information:
| Setting | Value |
|---|---|
| Registry | docker.io |
| Username | planetaryutilities |
| Password | Organization Access Token (OAT) |
| Repository | planetaryutilities/kotar-enterprise |
| Image version | 0.3.5 or the version provided |
| Permission | Image Pull (read-only) |
Important: The OAT is a registry credential, not a password for an individual Docker Hub account.
Treat it as a secret. Do not commit it to Git, include it in Dockerfiles, or share it through unencrypted email.
2. Authenticate to Docker Hub
Standard Docker Login
Open a terminal or PowerShell and run:
docker login --username planetaryutilities
When prompted for a password, paste the OAT provided by Planetary Utilities.
Expected response:
Login Succeeded
Note: The OAT is used with the Docker CLI, not to sign in to the Docker Hub website or Docker Desktop graphical interface.
Using the OAT Alongside an Existing Docker Hub Account
If you are already authenticated with your own Docker Hub account, use an isolated Docker configuration directory to avoid replacing your existing credentials.
Linux / macOS
mkdir -p ~/.docker-kotar
docker --config ~/.docker-kotar login --username planetaryutilities
docker --config ~/.docker-kotar pull planetaryutilities/kotar-enterprise:0.3.5
Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.docker-kotar"
docker --config "$HOME\.docker-kotar" login --username planetaryutilities
docker --config "$HOME\.docker-kotar" pull planetaryutilities/kotar-enterprise:0.3.5
This keeps Kotar registry authentication separate from your existing Docker configuration.
3. Pull Kotar Enterprise
Once authenticated, pull the approved version:
docker pull planetaryutilities/kotar-enterprise:0.3.5
Expected result:
Status: Downloaded newer image for planetaryutilities/kotar-enterprise:0.3.5
If the image is already downloaded, Docker may report that it is up to date.
Verify the Download
docker image ls planetaryutilities/kotar-enterprise
The output should include:
REPOSITORY TAG
planetaryutilities/kotar-enterprise 0.3.5
The Docker image is now available locally.
4. Deploy with Docker Compose
Kotar Enterprise requires additional configuration for OIDC authentication and GitLab integration.
After preparing the required configuration, create a compose.yaml file:
services:
kotar:
image: planetaryutilities/kotar-enterprise:0.3.5
env_file:
- kotar.env
secrets:
- oidc_client_secret
- session_secret
ports:
- "8080:8080"
restart: unless-stopped
secrets:
oidc_client_secret:
file: ./secrets/oidc_client_secret
session_secret:
file: ./secrets/session_secret
The kotar.env file must contain the required OIDC and GitLab configuration.
Both referenced secret files must exist before starting the container.
Start:
docker compose up -d
Verify container status:
docker compose ps
Check application health:
curl -sS -o /dev/null -w '%{http_code}\n' http://localhost:8080/healthz
Expected HTTP status:
200
For production deployments, configure an HTTPS reverse proxy. The IDE requires HTTPS when accessed through a hostname other than localhost.
5. Kubernetes Deployment
For Kubernetes deployments, create an image pull secret containing the OAT.
5.1 Create the Registry Secret
Linux / macOS
read -rsp "Docker Hub OAT: " DOCKERHUB_OAT
echo
kubectl -n YOUR_NAMESPACE create secret docker-registry kotar-enterprise-pull \
--docker-server=https://index.docker.io/v1/ \
--docker-username=planetaryutilities \
--docker-password="$DOCKERHUB_OAT"
unset DOCKERHUB_OAT
Replace YOUR_NAMESPACE with the target namespace.
The namespace must already exist.
For automated deployments, retrieve the token from your organization's secret-management system rather than embedding it in deployment scripts.
5.2 Reference the Registry Secret
Add imagePullSecrets to the Kubernetes Deployment:
spec:
template:
spec:
imagePullSecrets:
- name: kotar-enterprise-pull
containers:
- name: kotar
image: planetaryutilities/kotar-enterprise:0.3.5
Kubernetes uses the supplied credentials to authenticate to Docker Hub and pull the private image.
The registry secret must exist in the same namespace as the application.
Note: This is a configuration fragment, not a complete Kubernetes Deployment manifest.
6. Updating Kotar Enterprise
When Planetary Utilities publishes a new release, update the image tag.
For example:
docker pull planetaryutilities/kotar-enterprise:NEW_VERSION
Update the image reference in compose.yaml:
image: planetaryutilities/kotar-enterprise:NEW_VERSION
Apply the update:
docker compose up -d
The existing OAT can be reused for newer versions as long as it remains valid and retains repository access.
For production deployments, use explicit version tags rather than latest.
7. Token Security
The OAT grants access to a private commercial software image and must be protected accordingly.
- Store the OAT in your organization's approved secret-management system.
- Restrict access to personnel and deployment automation requiring image-pull permissions.
- Never commit the OAT to Git or include it in container images.
- Do not share the token through unencrypted email or support tickets.
- Contact Planetary Utilities if the token is compromised or expires.
- Remove obsolete credentials when they are no longer required.
The OAT grants permission to download images. It does not grant access to Planetary Utilities systems, GitLab repositories, or other Docker Hub repositories.
Revoking the token prevents subsequent authenticated pulls but does not remove images already downloaded.
8. Troubleshooting
| Problem | Possible cause / solution |
|---|---|
unauthorized: authentication required |
Incorrect, expired, or revoked OAT |
pull access denied |
Token lacks Image Pull permission or repository name is incorrect |
manifest unknown |
Requested image version is unavailable |
| Docker login succeeds but pull fails | Repository permission is missing |
Kubernetes ImagePullBackOff |
Missing or incorrectly configured image pull secret |
| Docker Desktop login fails | Authenticate through the Docker CLI using docker login |
| Application exits after start | Verify OIDC and GitLab configuration |
| Token expired | Request a replacement OAT from Planetary Utilities |
For Docker Compose troubleshooting:
docker compose ps
docker compose logs kotar
For Kubernetes:
kubectl -n YOUR_NAMESPACE get pods
kubectl -n YOUR_NAMESPACE describe pod POD_NAME
Never include the OAT in support requests or diagnostic output.
9. Support and References
Publisher: Planetary Utilities
Product: Kotar Enterprise
Docker repository: https://hub.docker.com/r/planetaryutilities/kotar-enterprise
Additional references:
For deployment assistance, provide the Docker version, image tag, and relevant error messages, excluding all credentials.