> For the complete documentation index, see [llms.txt](https://canopy-network.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://canopy-network.gitbook.io/docs/secure-canopy/node-runner/setup-and-recommendations.md).

# Setup & Recommendations

{% hint style="info" %}

* The official Go implementation of Canopy is hosted at: <https://github.com/canopy-network/canopy>&#x20;
* Deployment files and setup guides are available at:  <https://github.com/canopy-network/node>
  {% endhint %}

### System Requirements

To run a full validator setup for the Canopy Network, you need to run one validator node (CNPY), optionally with an integrated monitoring stack.

#### Basic Validator Setup for Hosting Canopy

Runs a validator node without monitoring services.

| Configuration | RAM  | CPU    | Storage |
| ------------- | ---- | ------ | ------- |
| Minimum       | 4 GB | 2 vCPU | 25GB    |
| Recommended   | 8 GB | 4 vCPU | 100GB   |

#### Full Validator and Monitoring Stack (Recommended)

Runs a validator node plus supporting services like Prometheus, Grafana, and Loki.

| Configuration | RAM   | CPU    | Storage |
| ------------- | ----- | ------ | ------- |
| Minimum       | 8 GB  | 4 vCPU | 100GB   |
| Recommended   | 16 GB | 8 vCPU | 200GB   |

#### Operating System & Architecture

* **OS**: Ubuntu 26.04 LTS (recommended)
* **Architecture**: x86\_64 (64-bit) and ARM (64-bit)

{% hint style="info" %}
Swap space is recommended on the minimum configs
{% endhint %}

#### Networking Requirements

{% hint style="info" %}
These are only required for validators. Full nodes do not require any custom networking
{% endhint %}

* Public static IP or DNS with wildcard support (e.g. `*.<yourdomain.com>`)
* Open inbound ports:
  * `9001` for P2P (TCP)
  * `443` for HTTP(s) access to wallet, explorer & monitoring stack

```
# Canopy P2P ports
sudo ufw allow 9001/tcp
sudo ufw allow 9002/tcp

# Load balancer ports
sudo ufw allow 443/tcp

# SSH access
sudo ufw allow 22/tcp

# Actually enable firewall
sudo ufw --force enable    
```

{% hint style="warning" %}
Monitoring stack containers can be memory-intensive during alert spikes.
{% endhint %}

### Deployment Options

The [node](https://github.com/canopy-network/node) repository provides two Docker Compose stack options for running Canopy:

1. Simple Stack (using only `docker-compose.yml`)&#x20;
   * Best for development, debugging, or advanced node operators.
   * Designed as a clean base to build your own custom stack on top of.
   * Does not include monitoring, networking, or observability tools.
2. Monitoring Stack (`docker-compose.monitoring.yml`)
   * Built upon the simple stack
   * Recommended for production environments.
   * Includes a full monitoring and observability setup (Grafana, Prometheus, etc.), as well as networking and configuration defaults.
   * Bundles a [reverse proxy](https://caddyserver.com/) by default to only allow access to the additional services through secure HTTPS
   * Aimed at making it easy to get a robust validator up and running with minimal manual setup.&#x20;

In the [Quickstart](/docs/secure-canopy/node-runner/quickstart.md) section, we’ll walk you through setting up the Monitoring Stack step by step.
