# Run a Node with Docker

With just a few commands, you can run your own Base Blockchain node using [docker-compose](https://docs.docker.com/compose/). Simply use the base blockchain docker.

## **Requirements:** <a href="#requirements" id="requirements"></a>

Listed below are the minimum viable requirements.

Although it is possible to run a node using these specifications, it is recommended to assign more resources for optimal performance.

* &#x20;[docker-compose](https://docs.docker.com/compose/install/) version `2.2.2` or greater is **required**
* **4GB memory**
* **1 Vcpu** ( *minimum of 2 Vcpu is recommended* )
* **100GB disk** ( *minimum of 150GB SSD is recommended* )

MACOS WITH AN ARM PROCESSOR IS NOT RECOMMENDED

{% hint style="info" %}
The design of Docker for Mac on an Arm CPU results in slow I/O, which can be problematic for I/O-intensive applications like blockchains. This issue appears to be specific to MacOS, as other Arm-based systems, such as Raspberry Pi, perform as expected.
{% endhint %}

## **Quickstart**[​](https://docs.stacks.co/docs/nodes-and-miners/run-a-node#quickstart) <a href="#quickstart" id="quickstart"></a>

The `<network>` placeholder used below can be replaced with one of:

* mainnet
* testnet
* mocknet

1. **Clone the base-blockchain-docker repository locally**

```
git clone https://github.com/Base-Technology/base-blockchain-docker && cd base-blockchain-docker
```

2. **Start the Services**

```
./manage.sh -n <network> -a start
```

WITH AN OPTIONAL HTTP PROXY ON PORT 80:

```
./manage.sh -n <network> -a start -f proxy
```

### **Accessing the services**[​](https://docs.stacks.co/docs/nodes-and-miners/run-a-node#accessing-the-services) <a href="#accessing-the-services" id="accessing-the-services"></a>

TIP

For networks other than `mocknet`, downloading the initial headers can take several minutes. Until the headers are downloaded, the `/v2/info` endpoints won't return any data.

Follow the logs to track the sync progress:

```
./manage.sh -n <network> -a logs
```

**Base-blockchain**:

* Ports `20443-20444` are exposed on `localhost`

```
curl -sL localhost:20443/v2/info | jq -r
```

**Base-blockchain-api**:

* Port `3999` is exposed on `localhost`

```
curl -sL localhost:3999 | jq -r
```

**proxy**:

* Port `80` is exposed on `localhost`

```
curl -sL localhost/v2/info | jq -r
curl -sL localhost | jq -r
```

***

### Upgrades <a href="#upgrades" id="upgrades"></a>


---

# 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://base-tech.gitbook.io/base/nodes-and-miners/run-a-node-with-docker.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.
