# Installation and Initial Setup

A step-by-step guide to deploying the EDCC platform and performing the initial configuration.

> 📋 **Installation Guide**
>
> * **Target Audience**: System Administrators with Linux experience
> * **Required Access**: Sudo privileges on host system
> * **Prerequisites**: Ubuntu 20.04.3+ or Debian 10.6+
> * **Deployment Method**: Docker container installation

***

## Overview: Deploying Your EDCC Instance

EDCC is distributed as a **Docker container**, which simplifies and standardizes the installation process across different Linux environments. This chapter will guide you through the three main phases of deployment:

```
Preparation → Installation → Initial Setup
  (verify)      (5-10 min)    (first-time config)
```

**What You'll Accomplish**:

1. **Preparation**: Verify your host system meets all requirements
2. **Installation**: Run the automated script to deploy the EDCC container
3. **Initial Setup**: Create your administrator account and Organization

***

## Pre-Installation Checklist

Before you begin, ensure you can check off all the following items:

* [ ] Host system hardware meets requirements for planned node count
* [ ] Operating system is Ubuntu 20.04.3+ or Debian 10.6+
* [ ] You have sudo (administrator) privileges on the host machine
* [ ] Host has active internet connection for software download
* [ ] Necessary network ports are open on host and network firewalls

***

## 1. System Requirements

{% hint style="warning" %}

#### **CRITICAL REQUIREMENTS - READ FIRST**

* **Do NOT change host system time** after installation - causes data inconsistencies and system instability
* **First account = Organization-level Admin** - highest privilege level, secure credentials carefully
* **SMTP configuration highly recommended** - required for user invitations and system alerts
  {% endhint %}

### **Hardware Requirements**

The resources required depend on the number of server nodes you plan to manage. **SSD storage strongly recommended for optimal performance.**

<table><thead><tr><th width="156.5390625">Managed Nodes</th><th width="150.7109375">CPU Cores</th><th width="98.83984375">RAM</th><th width="161.8515625">Storage</th><th>Deployment Scale</th></tr></thead><tbody><tr><td>≤ 100</td><td>2 Cores (Intel i3 / AMD R3+)</td><td>4GB</td><td>30GB (SSD recommended)</td><td>Entry-level</td></tr><tr><td>≤ 1000</td><td>4 Cores (Intel i5 / AMD R5+)</td><td>16GB</td><td>40GB (SSD recommended)</td><td>Medium</td></tr><tr><td>≤ 3000</td><td>8 Cores (Intel i5 / AMD R5+)</td><td>48GB</td><td>50GB (SSD required)</td><td>Enterprise</td></tr></tbody></table>

### **Software Requirements**

**Supported Operating Systems**:

* Ubuntu 20.04.3 LTS (Server) or newer
* Debian 10.6 or newer

**Docker**: Installation script will install Docker automatically if not present

**User Privileges**: Sudo access required to install Docker and run installation script

### **Network Port Requirements**

Ensure your host and network firewalls allow the following traffic:

<table><thead><tr><th width="129.84375">Direction</th><th width="131.83203125">Port</th><th width="94.47265625">Protocol</th><th>Purpose</th></tr></thead><tbody><tr><td>Inbound</td><td>8080 (HTTP)</td><td>TCP</td><td>Accessing the EDCC Web UI</td></tr><tr><td>Inbound</td><td>443 (HTTPS)</td><td>TCP</td><td>Accessing the EDCC Web UI (Secure)</td></tr><tr><td>Outbound</td><td>443 (HTTPS)</td><td>TCP</td><td>Redfish API communication to server BMCs</td></tr><tr><td>Outbound</td><td>80, 443</td><td>TCP</td><td>Downloading Docker images during installation</td></tr></tbody></table>

***

## 2. Installation Process

The installation uses a single automated script that handles the complete setup.

### **Installation Overview**

```
Download Script → Make Executable → Run Installation → Access Web UI
     (1 min)          (instant)         (5-10 min)        (verify)
```

### **Step 1: Obtain Installation Script**

Open a terminal on your Linux host and download the official installation script:

```bash
# Replace [version] with specific version (e.g., 1.0.0)
wget https://engenius-edcc.s3.us-west-2.amazonaws.com/release/[version]/edcc.sh
```

**Example for version 1.0.0**:

```bash
wget https://engenius-edcc.s3.us-west-2.amazonaws.com/release/1.0.0/edcc.sh
```

Make the script executable:

```bash
chmod +x edcc.sh
```

### **Step 2: Run Installation Script**

Execute the script with sudo privileges:

```bash
sudo ./edcc.sh install/
```

{% hint style="info" %}

### **What This Script Does**

The `edcc.sh` script automates the following:

* ✅ Checks for existing Docker installation; installs latest stable version if needed
* ✅ Downloads required EDCC Docker images from official repository
* ✅ Creates persistent data volumes for configuration and data storage
* ✅ Configures necessary network settings for the container
* ✅ Starts EDCC services in correct order

⏱️ **Estimated Time**: 5-10 minutes (varies with internet connection)

* Docker installation: \~3 minutes (if needed)
* EDCC image download: \~2-5 minutes
* Service configuration: \~1 minute
  {% endhint %}

The installation process may take several minutes. A successful installation will end with a confirmation message indicating that EDCC services are running.

### **Step 3: Access the EDCC Web Interface**

Once the script completes, open a web browser and navigate to your host machine:

**HTTP Access**:

```
http://{your_host_ip_address}:8080
```

**HTTPS Access** (recommended):

```
https://{your_host_ip_address}
```

{% hint style="success" %}
**Quick Tip:**  You can check your host IP address on Linux using **`ifconfig`**.
{% endhint %}

***

## 3. Initial Platform Setup

Upon your first access, EDCC will guide you through a one-time setup wizard to create the foundational elements of your management environment.

**You will create**:

1. **First Organization** - Top-level container for all your managed infrastructure
2. **Organization-level Admin account** - Your user account with full administrative privileges

> 💡 **Next Step: Configure SMTP**
>
> After creating your first account, immediately configure an SMTP server to enable:
>
> * Email-based user invitations
> * System alert notifications
> * Critical event notifications
>
> See **Chapter 15.3: Configuring Mail and File Servers** for detailed instructions.&#x20;

{% hint style="warning" %}

#### **Next Step: Configure SMTP**

After creating your first account, immediately configure an SMTP server to enable:

* Email-based user invitations
* System alert notifications
* Critical event notifications

See **Chapter 15.3: Configuring Mail and File Servers** for detailed instructions.
{% endhint %}

***

## 4. Managing the EDCC Service

Use the `edcc.sh` script to manage the EDCC service lifecycle:

<table><thead><tr><th width="223.08984375">Task</th><th>Command</th></tr></thead><tbody><tr><td>Start EDCC service</td><td><code>sudo ./edcc.sh up</code></td></tr><tr><td>Stop EDCC service</td><td><code>sudo ./edcc.sh down</code></td></tr><tr><td>Check service status</td><td><code>sudo ./edcc.sh status</code></td></tr><tr><td>Uninstall EDCC</td><td><code>sudo ./edcc.sh uninstall</code></td></tr></tbody></table>

{% hint style="success" %}
**Note**: The **`uninstall`** command stops and removes EDCC containers. By default, your data volumes are preserved unless you explicitly remove them.
{% endhint %}

***

## Troubleshooting Common Installation Issues

### **Issue 1: Docker Snap Conflict**

**Symptoms**: Installation fails with Docker conflict errors

**Solution**:

1. Remove snap Docker: `sudo snap remove docker`
2. Clean partial installation: `sudo ./edcc.sh uninstall`
3. Retry installation: `sudo ./edcc.sh install`

### **Issue 2: Cannot Access Web UI**

**Symptoms**: Connection timeout or refused after successful installation

**Diagnostic Steps**:

1. **Verify EDCC service is running**:

```bash
   sudo ./edcc.sh status
```

2. **Check firewall settings**:

```bash
   sudo ufw status
   sudo ufw allow 8080/tcp
   sudo ufw allow 443/tcp
```

3. **Verify correct IP address**:

```bash
   hostname -I
   # or
   ip addr
```

4. **Test network connectivity**: Ensure no network firewalls block access between your browser and EDCC host

### **Issue 3: Offline Installation Required**

**Note**: Standard installation requires internet connection to download Docker and EDCC images.

**For air-gapped environments**: Contact support team for:

* Offline installation package
* Detailed offline installation procedure
* Alternative deployment methods

***

## Quick Reference Card

### **Pre-Installation Verification**

```bash
# Check OS version
lsb_release -a

# Check available resources
free -h              # Memory
df -h                # Disk space
nproc                # CPU cores

# Test internet connectivity
ping -c 3 google.com
```

### **Installation Commands**

```bash
# Download and prepare
wget https://engenius-edcc.s3.us-west-2.amazonaws.com/release/[version]/edcc.sh
chmod +x edcc.sh

# Install EDCC
sudo ./edcc.sh install

# Verify installation
sudo ./edcc.sh status
```

### **Service Management**

```bash
# Start EDCC
sudo ./edcc.sh up

# Stop EDCC
sudo ./edcc.sh down

# Check status
sudo ./edcc.sh status

# Uninstall EDCC
sudo ./edcc.sh uninstall
```

### **Access URLs**

```
HTTP:  http://{host_ip}:8080
HTTPS: https://{host_ip}
```

### **Post-Installation Checklist**

* [ ] Access **EDCC Web UI** successfully
* [ ] Complete initial **Organization** creation
* [ ] Create **Organization-level Admin** account
* [ ] Configure SMTP server (highly recommended)
* [ ] Proceed to create first **POD**

***

#### What's Next?

Your EDCC platform is now installed and running.

Your next step is to bring your first node under management:

1. Create your first **POD** (management group)
2. Register and assign devices to your **POD**
3. Configure basic management settings

➡️ **Proceed to Chapter 3: Quick Start - Your First POD**

This will guide you through creating your first management environment and adding your first EnGenius server to EDCC.

***

*This completes the installation and initial setup of your EDCC platform. You are now ready to begin managing your EnGenius server infrastructure.*
