> For the complete documentation index, see [llms.txt](https://docs.stratovm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stratovm.io/node-operations/running-a-node-from-a-docker.md).

# Running a Node from a Docker

Using [Docker(opens in a new tab)](https://docs.docker.com/engine/install/) is an easy way to run an OP Mainnet node. This tutorial will walk you through the process of using [`simple-optimism-node`(opens in a new tab)](https://github.com/smartcontracts/simple-optimism-node) to run a StratoVM  Mainnet (not available yet ) or StratoVM Sepolia Testnet node using Docker. `simple-optimism-node` also provides useful tools like a monitoring dashboard and health checking software. Although less flexible than building your own Docker setup, this is a great way to quickly get started.

### What's Included <a href="#whats-included" id="whats-included"></a>

`simple-optimism-node` includes all the basic components to run a StratoVM  Mainnet (not available yet ) or StratoVM Sepolia Testnet. It also includes several additional services to monitor the health of your node and the health of the network you're connected to. See the [What's Included(opens in a new tab)](https://github.com/smartcontracts/simple-optimism-node#whats-included) section of the `simple-optimism-node` README for more details.

### Dependencies <a href="#dependencies" id="dependencies"></a>

* [Docker(opens in a new tab)](https://docs.docker.com/engine/install/)
* [Docker Compose](https://docs.docker.com/compose/install/)

### Setup <a href="#setup" id="setup"></a>

Clone the `simple-optimism-node` repository to get started.

```
git clone https://github.com/smartcontracts/simple-optimism-node.git
cd simple-optimism-node
```

### Configuration <a href="#configuration" id="configuration"></a>

Configuration for `simple-optimism-node` is handled through environment variables inside of an `.env` file.

#### Step-by-Step Guide to Creating an .env File

The repository includes a sample environment variable file located at `.env.example` that you can copy and modify to get started. Make a copy of this file and name it `.env`.

```
cp .env.example .env
```

#### How to Configure the .env File for Your Node

Open the `.env` file in your favorite text editor. Set the variables inside of the `REQUIRED (BEDROCK)` section of the file according to the guide below: Set the variables inside of the `REQUIRED (BEDROCK)` section of the file according to the guide below:

**NETWORK\_NAME** - Choose which Optimism network layer you want to operate on:

* `op-sepolia`&#x20;

**NODE\_TYPE** - Choose the type of node you want to run:

* `full` (Full node) - A Full node contains a few recent blocks without historical states.
* `archive` (Archive node) - An Archive node stores the complete history of the blockchain, including historical states.

**OP\_NODE\_\_RPC\_ENDPOINT** - Specify the endpoint for the RPC of Layer 1 (e.g., Ethereum mainnet). For instance, you can use the free plan of Alchemy for the Ethereum mainnet.

**OP\_NODE\_\_L1\_BEACON** - Specify the beacon endpoint of Layer 1. You can use [QuickNode for the beacon endpoint(opens in a new tab)](https://www.quicknode.com/). For example: `https://xxx-xxx-xxx.quiknode.pro/db55a3908ba7e4e5756319ffd71ec270b09a7dce`.

**OP\_NODE\_\_RPC\_TYPE** - Specify the service provider for the RPC endpoint you've chosen in the previous step. The available options are:

* `alchemy` - Alchemy
* `quicknode` - Quicknode (ETH only)
* `erigon` - Erigon
* `basic` - Other providers

**HEALTHCHECK\_\_REFERENCE\_RPC\_PROVIDER** - Specify the public RPC endpoint for Layer 2 network you want to operate on for healthcheck. For instance:

* **StratoVM Sepolia** - <https://rpc.stratovm.io>

Run the Node

Once you've configured your `.env` file, you can run the node using Docker Compose. The following command will start the node in the background.

```
docker compose up -d --build
```

### Upgrade the Node <a href="#upgrade-the-node" id="upgrade-the-node"></a>

Pull the latest updates from GitHub, Docker Hub and rebuild the container.

```
git pulldocker compose pulldocker compose up -d --build --force-recreate
```

### Operating the Node <a href="#operating-the-node" id="operating-the-node"></a>

You can use Docker Compose to interact with the node and manage the various containers that you started. Refer to the [Operating the Node](https://github.com/smartcontracts/simple-optimism-node#operating-the-node) section of the `simple-optimism-node` README for more information.

### Checking Node Status <a href="#checking-node-status" id="checking-node-status"></a>

`simple-optimism-node` includes a monitoring dashboard that you can use to check the status of your node. You can access the dashboard by visiting `http://localhost:3000` in your browser. Refer to the [Grafana dashboard](https://github.com/smartcontracts/simple-optimism-node#grafana-dashboard) section of the `simple-optimism-node` README for more information.

Another way to check the node syncing progress is to run `./progress.sh`, which will print output showing the number of blocks per second and the estimated time until synchronization is completed.

```
./progress.sh
```

```
Chain ID: 93747
Please wait
Blocks per minute: ...
Hours until sync completed: ...
```
