Configuration

This page covers pulling the Docker image, running the container, and configuring the required environment variables. After completing these steps, continue to Azure Bot Setup to expose the bot and wire it to Microsoft Teams.

Step 1 — Pull the Docker Image

Pull the latest published image:

docker pull delineaxpm/privman-teams:latest

Verify the image is available locally:

docker images delineaxpm/privman-teams

Step 2 — Run the Container

The container requires eight environment variables and a volume mount for conversation persistence. Replace the placeholder values with your credentials from the Prerequisites.

PowerShell (Windows):

docker run -d `

--name privman-teams-bot `

-p 8080:8080 `

-e PRIVMAN_BASE_URL=https://<yourtenant>.privilegemanagercloud.com/Tms `

-e PRIVMAN_USERNAME=<privman-client-id> `

-e PRIVMAN_PASSWORD=<privman-client-secret> `

-e MicrosoftAppId=<azure-ad-app-id> `

-e MicrosoftAppPassword=<azure-ad-app-secret> `

-e MicrosoftAppType=SingleTenant `

-e MicrosoftAppTenantId=<azure-ad-tenant-id> `

-e PORT=8080 `

-e POLL_INTERVAL=60 `

-e CONVERSATION_STORE_PATH=/app/data/conversation_references.json `

-e SCHEDULE_STORE_PATH=/app/data/schedule.json `

-v privman-conversations:/app/data `

delineaxpm/privman-teams:latest

Important: PRIVMAN_BASE_URL must end with /Tms. For example: https://company.privilegemanagercloud.com/Tms

Never commit MicrosoftAppPassword or PRIVMAN_PASSWORD to source control. Pass them via Docker -e flags, a secrets manager, or an .env file outside the repository.

Environment Variables Reference

Variable Required Default Description
MicrosoftAppId Yes Azure AD App Registration > Application (client) ID
MicrosoftAppPassword Yes Azure AD client secret. Treat as sensitive.
MicrosoftAppType Yes SingleTenant Bot identity type. Must match the --app-type value used in az bot create.
MicrosoftAppTenantId Yes Azure AD tenant ID.
PRIVMAN_BASE_URL Yes Privilege Manager instance URL. Must end with /Tms.
PRIVMAN_USERNAME Yes Privilege Manager REST API client ID.
PRIVMAN_PASSWORD Yes Privilege Manager REST API client secret.
PORT No 8080 The port the bot listens on. Rarely needs to change.
POLL_INTERVAL No 60 Seconds between Privilege Manager polls.
CONVERSATION_STORE_PATH No conversation_references.json Path for persisting conversation references inside the container.
SCHEDULE_STORE_PATH No Reserved for local schedule fallback.
KEY_VAULT_URL No Azure Key Vault URL. Required only for auto-approve. See Auto-Approve (Optional).
ADMIN_GROUP_ID No Azure AD security group Object ID for admin-only commands.

Once the container is running, continue to Azure Bot Setup to expose the bot over HTTPS and connect it to Microsoft Teams.