# Technical Information



# Technical Stack

### **Server Infrastructure**

#### **Hetzner Dedicated Server**

- **Purpose**: Primary host for all services and applications.
- **Specifications**: 
    - **CPU:** Intel Xeon
    - **RAM:** 256 GB DDR4
    - **Storage:** 2 x 480GB Enterprise SSD
    - **Network:** 1+ Gbps Uplink

#### **Proxmox Virtualization**

- **Purpose**: Hypervisor for managing and isolating virtual environments.
- **Features**: 
    - Virtual Machine and Container orchestration.
    - Snapshot and backup management.
    - Resource monitoring and allocation.

### **Application and Service Management**

#### **Coolify**

- **Purpose**: Simplified orchestration of Docker containers and CI/CD pipelines.
- **Features**: 
    - Application deployments and monitoring.
    - Automated builds from GitHub repositories.
    - Reverse proxy and SSL management.

##### **Services Deployed via Coolify**

1. **Redis**
    
    
    - **Purpose**: In-memory data store for caching and key-value storage.
    - **Use Case**: High-performance caching for the Next.js application.
2. **Next.js Application**
    
    
    - **Version**: 14
    - **Features**: 
        - App Router for advanced routing.
        - Developed in TypeScript for type safety and maintainability.
    - **Deployment**: Built and served via Coolify.

###  **Code Repository**

#### **GitHub**

- **Purpose**: Version control and collaboration platform for application development.
- **Key Features**: 
    - Centralized repository for all application code.
    - Integrated with Coolify for CI/CD pipelines.
    - Branch management and pull request workflows.

### **Network and DNS**

#### **Cloudflare**

- **Purpose**: DNS management and proxy services for enhanced security and performance.
- **Domain**: `z.razar.io`
- **Features**: 
    - DNS resolution for the Hetzner server.
    - Proxy and caching services for improved application performance.
    - SSL/TLS certificate management for secure communication.

# Scorecard API

Current Process:

Daily at 9am Power Automate will grab the current year Scorecard file and POST the Unit and Hour data tables from the excel workbook as json to the zPerform Scorecard API endpoint (z.razar.io/scorecard/flow/update).

The API endpoint will then update the data in redis under the keys z.perform:scorecard:unit\_data and zperform:scorecard;hour\_data  
Required Header Authorization key : 24razarscorecard2024 (where 24 / 2024 is the current year)