# Installation

This section documents every way to install and run a COTI full node from our tooling: the [**`/setup`** wizard](/coti-documentation/node-ecosystem/ui-guide.md) (`curl | sudo bash`), or **Git clone + Docker Compose** without the wizard. This hub page is the destination for **"Learn more about installation"** in the wizard. See [Networks](/coti-documentation/node-ecosystem.md#networks) for testnet and mainnet URLs.

{% hint style="info" %}
**OS and hardware** are the same on every path — see [**Server requirements**](/coti-documentation/node-ecosystem/server-requirements.md). **Without the web app**, use [**Manual full node setup**](/coti-documentation/node-ecosystem/installation/manual-full-node.md) (last page in this section).
{% endhint %}

## Certified operating system and hardware

The **same** certified OS and server sizing apply to every path in this section (wizard or manual). Full detail is on [**Server requirements**](/coti-documentation/node-ecosystem/server-requirements.md).

## Choose your installer flow

The wizard produces a one-liner that runs [`install_coti-full-node.sh`](https://github.com/coti-io/coti-full-node/blob/main/install_coti-full-node.sh). Pick the guide that matches the **flags** the wizard gives you. **Self-managed** install (no wizard) is the last row.

| Flow                    | When                                                                                                    | Guide                                                                                                               |
| ----------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **COTI-managed tunnel** | COTI-assigned subdomain, **`--with-frp`**, no Nginx/Let’s Encrypt on your VM                            | [**Wizard tunnel (COTI subdomain)**](/coti-documentation/node-ecosystem/installation/installation-wizard-tunnel.md) |
| **Your own domain**     | Your DNS name, **`--nginx`**, Let’s Encrypt + Nginx on the host                                         | [**Own domain (Nginx + TLS)**](/coti-documentation/node-ecosystem/installation/installation-own-domain.md)          |
| **Manual (no wizard)**  | Clone [`coti-full-node`](https://github.com/coti-io/coti-full-node), scripts, Compose — not the web app | [**Manual full node setup**](/coti-documentation/node-ecosystem/installation/manual-full-node.md)                   |

{% hint style="danger" %}
Piping `curl` into `sudo bash` runs a remote script as **root**. Only use commands from the official wizard, served from `https://fullnode.testnet.coti.io` or `https://fullnode.mainnet.coti.io`. When in doubt, review the script in the [`coti-full-node`](https://github.com/coti-io/coti-full-node) repository.
{% endhint %}

## After any wizard install

* The node syncs from peers; the browser wizard polls peer discovery until your node appears.
* You enter the **warm-up** window before the node becomes **hot** and an NFT is minted — see the [Glossary](/coti-documentation/node-ecosystem/ui-guide/glossary.md).

For **restart / stop / logs** when you manage the repo yourself, see [**Manual full node setup → Restarting your node**](/coti-documentation/node-ecosystem/installation/manual-full-node.md#restarting-your-node).

## Optional flags (overview)

The [**Wizard tunnel**](/coti-documentation/node-ecosystem/installation/installation-wizard-tunnel.md) and [**Own domain**](/coti-documentation/node-ecosystem/installation/installation-own-domain.md) pages document flags in full. Quick reference:

| Flag                       | Typical use                                                                                                              |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **`--with-frp`**           | Tunnel flow — see [Wizard tunnel](/coti-documentation/node-ecosystem/installation/installation-wizard-tunnel.md).        |
| **`--nginx`**              | Own domain + TLS on host — see [Own domain](/coti-documentation/node-ecosystem/installation/installation-own-domain.md). |
| `--without-nginx`          | Skip Nginx (advanced; often not reward-suitable with a BYO domain).                                                      |
| `--frpc` / `--without-frp` | FRPC without tunnel relaxations — see tunnel page.                                                                       |
| `--staging`                | Let’s Encrypt staging — only with `--nginx`.                                                                             |

For **manual** operation (restart, stop, logs, FAQ), see [**Manual full node setup**](/coti-documentation/node-ecosystem/installation/manual-full-node.md).


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coti.io/coti-documentation/node-ecosystem/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
