> ## Documentation Index
> Fetch the complete documentation index at: https://doc.khcolo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Step-by-Step Guide to Deploying a 3CX Phone System

> Deploy 3CX on a cloud VPS or on-premise server — covering hardware, installation, firewall ports, and initial configuration for your Cambodia deployment.

Deploying 3CX is straightforward when you follow the right sequence. Whether you are setting up a cloud-hosted VPS in Singapore or installing directly on an on-premise server in your Cambodian office, this guide walks you through every step — from provisioning hardware to completing the 3CX Startup Wizard. By the end, your system will be online, reachable via HTTPS, and ready for SIP trunk and extension configuration.

## Hardware Requirements

Before you begin, confirm that your server or VPS meets the minimum specifications. Undersized resources are the most common cause of poor call quality and system instability.

| Resource     | Minimum                                      | Recommended                                |
| ------------ | -------------------------------------------- | ------------------------------------------ |
| **RAM**      | 4 GB                                         | 8 GB+                                      |
| **vCPUs**    | 2                                            | 4+                                         |
| **Disk**     | 30 GB SSD                                    | 60 GB+ SSD                                 |
| **OS**       | Debian Linux (recommended) or Windows Server | Debian Linux                               |
| **Network**  | Static public IP                             | Static public IP                           |
| **Location** | Singapore VPS or local on-premise server     | Singapore VPS (lowest latency to Cambodia) |

<Note>
  KHCOLO offers fully managed 3CX deployment on its cloud VPS infrastructure. If you would prefer a hands-off installation and configuration experience, contact the KHCOLO team for a tailored deployment engagement — including SIP trunk setup and staff training.
</Note>

## Deployment Steps

<Steps>
  <Step title="Provision Your Server or VPS">
    Spin up a Debian Linux virtual machine with at least 4 GB RAM and 2 vCPUs. For businesses in Cambodia, a VPS in Singapore delivers the best balance of latency and cost. Assign a **static public IP address** to the instance — 3CX relies on a consistent IP for SIP registration and remote app connectivity.

    If you are deploying on-premise, ensure your server is connected to a UPS and that your internet connection provides a static IP from your ISP (Ezecom, Online, Cellcard, or Smart).
  </Step>

  <Step title="Install 3CX via the Debian Linux ISO">
    The simplest and recommended installation method is the official 3CX Debian ISO:

    1. Download the latest 3CX Debian ISO from [3cx.com](https://www.3cx.com).
    2. Boot your server from the ISO (or mount it as a virtual CD-ROM on your VPS).
    3. Follow the on-screen prompts — the installer sets up Debian and the 3CX packages automatically.
    4. When the installation completes, note the **HTTPS management URL** displayed on the console (e.g., `https://your-ip:5001`).

    <Tip>
      Using the 3CX Debian ISO is strongly preferred over a manual install. It configures the correct kernel parameters, firewall rules, and service dependencies in a single pass, reducing the chance of configuration errors.
    </Tip>
  </Step>

  <Step title="Open Required Firewall Ports">
    3CX requires specific ports to be open on both your cloud security group (or hardware firewall) and the server's local firewall. Incorrect port configuration is the most common reason SIP trunks and remote apps fail to register.

    | Port / Range | Protocol  | Purpose                         |
    | ------------ | --------- | ------------------------------- |
    | `5060`       | UDP / TCP | SIP signaling                   |
    | `5061`       | TCP       | SIP over TLS (secure signaling) |
    | `9000–10999` | UDP       | RTP media (audio streams)       |
    | `5001`       | TCP       | 3CX HTTPS Management Console    |
    | `443`        | TCP       | 3CX Web Client & tunnel         |

    <Warning>
      Do **not** expose port 5060 to the entire internet without IP whitelisting your SIP trunk provider's ranges. Open SIP ports attract automated brute-force attacks. Use the 3CX built-in firewall checker (available in the Management Console) to validate your configuration after setup.
    </Warning>
  </Step>

  <Step title="Access the Management Console and Run the Startup Wizard">
    Open a browser and navigate to `https://<your-server-ip>:5001`. You will be prompted to create an administrator account on first access. Once logged in, the **Startup Wizard** launches automatically.

    Work through each wizard screen:

    * **License Key** — Enter your 3CX license key. Free licenses are available for up to 4 simultaneous calls.
    * **FQDN** — Enter a fully qualified domain name that resolves to your server's public IP (e.g., `pbx.yourcompany.com.kh`). If you do not yet have a domain record, you can use the hosted 3CX subdomain provided during licensing.
    * **Admin Email** — Used for system alerts and license notifications.
  </Step>

  <Step title="Set Timezone and Regional Settings">
    During the wizard, select your timezone:

    * **Country:** Cambodia
    * **Timezone:** Asia/Phnom\_Penh (ICT, UTC+7)

    Setting the correct timezone ensures call logs, recordings timestamps, and scheduled reports all reflect local Cambodian time.
  </Step>

  <Step title="Configure Your SIP Trunk Provider">
    The final wizard step prompts you to add a SIP trunk. You can complete this now with your provider credentials, or skip it and configure your trunk later. See the [SIP Trunk Configuration](/3cx/sip-trunk) guide for full details on local Cambodian and international provider settings.
  </Step>

  <Step title="Verify System Health">
    After completing the wizard, navigate to **Dashboard** in the Management Console. Check that:

    * The SIP trunk status shows **Registered** (green).
    * No firewall warnings appear in the **Firewall Checker** (under Advanced > Firewall).
    * At least one test extension is reachable via the 3CX Web Client or a softphone.

    <Info>
      The 3CX Dashboard provides a real-time overview of active calls, registered extensions, trunk status, and system resource usage. Bookmark it as your daily health check page.
    </Info>
  </Step>
</Steps>

## Next Steps

With your server deployed and the wizard complete, proceed to configure your SIP trunks and extensions:

* [Configure SIP Trunks](/3cx/sip-trunk) — Connect to Ezecom, Online, Smart, Cellcard, or international providers.
* [Call Recording & CRM Integration](/3cx/call-recording-crm) — Enable call recording and connect your CRM for screen pops and call logging.
