# Running a Node

{% hint style="warning" %}
Cappuccino node operators are limited to a select group. If you are interested in running a node in a future release of Espresso, [contact us](https://y3at7jy5knf.typeform.com/to/KgayxNsX?typeform-source=webflow.com).
{% endhint %}

This page give the configuration used to run different types of nodes in the Cappuccino testnet. For general information on running an Espresso node, see [Running an Espresso Node](/network/guides/node-operators/running-an-espresso-node.md).

All nodes in Cappuccino use the `ghcr.io/espressosystems/espresso-sequencer/sequencer:cappuccino` Docker image. Depending on the type of node, the configuration varies.

## Regular Node

### Command

`sequencer -- http -- catchup -- status`

### Environment

#### Same for all nodes

```
ESPRESSO_SEQUENCER_ORCHESTRATOR_URL=https://orchestrator.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_CDN_ENDPOINT=cdn.cappuccino.testnet.espresso.network:1737
ESPRESSO_STATE_RELAY_SERVER_URL=https://state-relay.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_GENESIS_FILE=/genesis/cappuccino.toml
RUST_LOG="warn,libp2p=off"
RUST_LOG_FORMAT="json"

# At least one state peer is required. The following URL provided by Espresso works.
# Optionally, add endpoints for additional peers, separated by commas.
ESPRESSO_SEQUENCER_STATE_PEERS=https://query.cappuccino.testnet.espresso.network
```

#### Chosen by operators

```
# JSON-RPC endpoint for Sepolia testnet
ESPRESSO_SEQUENCER_L1_PROVIDER # e.g. https://sepolia.infura.io/v3/<API-KEY>

# Port on which to host metrics and healthchecks
ESPRESSO_SEQUENCER_API_PORT # e.g. 80

# Path in container to store consensus state
ESPRESSO_SEQUENCER_STORAGE_PATH # e.g. /mount/sequencer/store/

# Path in container to keystore
ESPRESSO_SEQUENCER_KEY_FILE # e.g. /mount/sequencer/keys/0.env
```

### Volumes

* `$ESPRESSO_SEQUENCER_STORAGE_PATH`
* `$ESPRESSO_SEQUENCER_KEY_FILE`

## DA Node

{% hint style="info" %}
Requires operator to additionally run a Postgres server
{% endhint %}

### Command

`sequencer -- storage-sql -- http -- catchup -- status -- query`

### Environment

#### Same for all nodes

```
ESPRESSO_SEQUENCER_ORCHESTRATOR_URL=https://orchestrator.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_CDN_ENDPOINT=cdn.cappuccino.testnet.espresso.network:1737
ESPRESSO_STATE_RELAY_SERVER_URL=https://state-relay.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_GENESIS_FILE=/genesis/cappuccino.toml
ESPRESSO_SEQUENCER_POSTGRES_PRUNE="true"
ESPRESSO_SEQUENCER_PRUNER_PRUNING_THRESHOLD="549755813888" # 0.5 TB
ESPRESSO_SEQUENCER_PRUNER_MINIMUM_RETENTION="1d"
ESPRESSO_SEQUENCER_PRUNER_TARGET_RETENTION="7d"
ESPRESSO_SEQUENCER_PRUNER_BATCH_SIZE=5000
ESPRESSO_SEQUENCER_IS_DA="true"
ESPRESSO_SEQUENCER_FETCH_RATE_LIMIT=25

RUST_LOG="warn,libp2p=off"
RUST_LOG_FORMAT="json"

# At least one state peer is required. The following URL provided by Espresso works.
# Optionally, add endpoints for additional peers, separated by commas.
ESPRESSO_SEQUENCER_STATE_PEERS=https://query.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_API_PEERS=https://query.cappuccino.testnet.espresso.network
```

#### Chosen by operators

```
# JSON-RPC endpoint for Sepolia testnet
ESPRESSO_SEQUENCER_L1_PROVIDER # e.g. https://sepolia.infura.io/v3/<API-KEY>

# Port on which to host metrics, healthchecks, and DA API
ESPRESSO_SEQUENCER_API_PORT # e.g. 80

# Path in container to keystore
ESPRESSO_SEQUENCER_KEY_FILE # e.g. /mount/sequencer/keys/0.env

# Connection to Postgres
ESPRESSO_SEQUENCER_POSTGRES_HOST
ESPRESSO_SEQUENCER_POSTGRES_USER
ESPRESSO_SEQUENCER_POSTGRES_PASSWORD
```

### Volumes

* `$ESPRESSO_SEQUENCER_KEY_FILE`

## Archival Node

{% hint style="info" %}
Requires operator to additionally run a Postgres server
{% endhint %}

### Command

`sequencer -- storage-sql -- http -- catchup -- status -- query -- state`

### Environment

#### Same for all nodes

```
ESPRESSO_SEQUENCER_ORCHESTRATOR_URL=https://orchestrator.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_CDN_ENDPOINT=cdn.cappuccino.testnet.espresso.network:1737
ESPRESSO_STATE_RELAY_SERVER_URL=https://state-relay.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_GENESIS_FILE=/genesis/cappuccino.toml
ESPRESSO_SEQUENCER_FETCH_RATE_LIMIT=25
RUST_LOG="warn,libp2p=off"
RUST_LOG_FORMAT="json"

# At least one state peer is required. The following URL provided by Espresso works.
# Optionally, add endpoints for additional peers, separated by commas.
ESPRESSO_SEQUENCER_STATE_PEERS=https://query.cappuccino.testnet.espresso.network
ESPRESSO_SEQUENCER_API_PEERS=https://query.cappuccino.testnet.espresso.network
```

#### Chosen by operators

```
# JSON-RPC endpoint for Sepolia testnet
ESPRESSO_SEQUENCER_L1_PROVIDER # e.g. https://sepolia.infura.io/v3/<API-KEY>

# Port on which to host metrics, healthchecks, and query API
ESPRESSO_SEQUENCER_API_PORT # e.g. 80

# Path in container to keystore
ESPRESSO_SEQUENCER_KEY_FILE # e.g. /mount/sequencer/keys/0.env

# Connection to Postgres
ESPRESSO_SEQUENCER_POSTGRES_HOST
ESPRESSO_SEQUENCER_POSTGRES_USER
ESPRESSO_SEQUENCER_POSTGRES_PASSWORD
```

### Volumes

* `$ESPRESSO_SEQUENCER_KEY_FILE`


---

# 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.espressosys.com/network/releases/testnets/cappuccino-testnet-release/running-a-node.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.
