> For the complete documentation index, see [llms.txt](https://docs.cstplus.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cstplus.org/documentation/getting-started/installation.md).

# Installation

CST+ installs with a single command. The installer sets up all services, registers them with systemd, and starts everything automatically.

***

### Before you begin

Make sure you have:

* A clean VPS running Ubuntu 22.04/24.04 or Debian 11/12
* Root or `sudo` access
* A valid CST+ license key from your account dashboard
* `curl` installed (available by default on most images)

{% hint style="info" %}
The server needs outbound internet access during installation to download the installer binary and verify your license on first activation.
{% endhint %}

***

### Run the installer

Log in to your server as root and run:

```bash
curl -fsSL https://install.vxdgroup-cloud.xyz/install.sh | sudo bash -s -- --key YOUR_LICENSE_KEY
```

Replace `YOUR_LICENSE_KEY` with the key from your account dashboard.

The installer will:

1. Detect your CPU architecture (x86\_64 or ARM64)
2. Install ffmpeg and Node.js 20 if not already present
3. Download and verify the CST+ package (Ed25519 signature check)
4. Deploy services to `/opt/cstplus/`
5. Register and start `cstplus-control`, `cstplus-edge`, and `cstplus-web`
6. Bind your license key to this server

{% hint style="info" %}
Installation takes roughly 2-5 minutes on a standard VPS, mostly spent on ffmpeg and Node.js if they are not already installed.
{% endhint %}

***

### Open the admin panel

Once the installer finishes, open a browser and go to:

```
http://YOUR_SERVER_IP:3000
```

You will land on the first-run setup screen.

***

### Check service status

```bash
cstplus status
```

This shows whether control, edge, and web are active, plus any channels currently on air.

***

### Updating CST+

{% tabs %}
{% tab title="Update" %}

```bash
cstplus update
```

Downloads the new package, verifies its signature, swaps the release atomically, and restarts services. A backup is created automatically before the swap. Active channels keep running during the process.
{% endtab %}

{% tab title="Rollback" %}

```bash
cstplus rollback
```

Reverts to the previous version instantly. The backup created before the last update is restored and services are restarted.
{% endtab %}
{% endtabs %}

{% hint style="danger" %}
Never update by manually replacing files in `/opt/cstplus/`. Always use `cstplus update`. Manual replacements bypass the signature check and will trip tamper detection on next startup.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cstplus.org/documentation/getting-started/installation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
