# Installation

The CMS is deployed as a containerized service. Deployment involves preparing the database, configuring application settings, and validating connectivity to Azure Stack Hub.

#### Prerequisites

- A Linux or Windows host with Docker or Kubernetes support
- Access to a MySQL 8.0 or later database instance
- Administrative access to Azure Stack Hub endpoints
- A valid TLS certificate for the portal and API endpoints

#### Installation Steps

1. **Database Setup**
    
    
    - Create a dedicated MySQL database (e.g., `cms`).
    - Apply the schema migrations provided with the installation package.
2. **Application Deployment**
    
    
    - Pull the container image from the registry or build it from source.
    - Run the container with environment variables specifying database connection strings, identity provider configuration, and API settings.
    - If deploying on Kubernetes, apply the provided YAML manifests to the cluster.
3. **Initial Configuration**
    
    
    - Access the CMS portal at `https://<hostname>`.
    - Log in with the default administrator account created during setup.
    - Update branding, system settings, and identity provider integration through the Administration menu.
4. **Connectivity Validation**
    
    
    - Confirm that the CMS can reach Azure Stack Hub endpoints.
    - Test authentication through Microsoft Entra ID or the configured identity provider.
    - Verify database connectivity and confirm that initial tenants and subscriptions can be created.

#### Post-Installation Tasks

- Replace default credentials with secure administrator accounts.
- Configure backup routines for the MySQL database.
- Set up monitoring and logging integration (see Operations → Monitoring &amp; Alerts).