🐳Docker

Authors: [man4ela | catapulta.eth]

System Requirements

CPU
OS
RAM
DISK

4-Core CPU

Debian 12/Ubuntu 22.04

=> 8 GB RAM

150 GB+

(SSD or NVMe)

circle-info

Firehose poller for Starknet has a size of 60GB on April 14th, 2025

circle-check
circle-exclamation

This method of setting up Firehose for Starknet assumes that you have a your own synced Starknet mainnet full (or archive) node (URL endpoint available) and Ethereum Mainnet L1 endpoint ready. In this guide, you'll be able to configure and run the entire Firehose stack with a single docker run command

Pre-Requisites

sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
​
sudo apt install -y wget curl screen git ufw

Setting up Firewall

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow 22/tcp
sudo ufw allow 80
sudo ufw allow 443

Enable Firewall

Install Docker

Run this command to remove any conflicting docker

Add Docker's official GPG key:

Add the repository to ppt sources:

Install docker

Setting up a domain name to access RPC

Get the IP address of the host machine, you can use the following command in a terminal or command prompt

Set an A record for a domain, you need to access the domain's DNS settings and create an A record that points to the IP address of the host machine. This configuration allows users to reach your domain by resolving the domain name to the specific IP address associated with your host machine.

Create Starknet directory

Create Dockerfile.firehose-reader

Paste and save:

Create .env file

Paste and save:

Launch Firehose:

Paste the following into the docker-compose.yml:

Save and run"

Monitor Logs

Use docker logs to monitor if all your Firehose components run as expected. The -f flag ensures you are following the log output

Once your Firehose starts syncing, the logs from reader are expected to look like this:

The Best way to test if substreams work is to run an actual substream

Install the Substreams CLI:

Then run the sample clock substream:

The expected output:

Referenes:

Last updated