← Back to all products

OP Stack Deployer

$20

Deploy and configure OP Stack rollups with custom gas tokens, sequencer settings, and L1 contracts.

📁 18 files
TypeScriptJSONYAMLMarkdownDocker

📁 File Structure 18 files

op-stack-deployer/ ├── README.md ├── docker/ │ └── docker-compose.yml ├── package.json ├── security-notes.md ├── src/ │ ├── cli.ts │ ├── commands/ │ │ ├── deploy.ts │ │ ├── genesis.ts │ │ ├── init.ts │ │ ├── status.ts │ │ └── validate.ts │ ├── config/ │ │ └── loader.ts │ ├── templates/ │ │ └── default-config.ts │ └── utils/ │ ├── docker.ts │ ├── genesis.ts │ ├── health.ts │ ├── l1-deployer.ts │ └── validator.ts └── tsconfig.json

📖 Documentation Preview README excerpt

OP Stack Deployer

One-command OP Stack rollup deployment with Docker orchestration and YAML-driven configuration.

Price: $19.99 | License: MIT | Category: Tooling | Runtime: Node.js 18+


Overview

op-stack-deployer is a CLI tool that deploys a complete OP Stack rollup from a single command. It handles L1 contract deployment, genesis generation, Docker Compose orchestration for the sequencer, batcher, proposer, and op-geth nodes, and post-deployment health checks.

Stop wrestling with dozens of manual steps. Define your chain in a YAML config file, run one command, and get a working rollup.

Features

  • Single-command deploymentnpx op-deploy deploy handles the full rollup lifecycle
  • YAML-driven configuration — Define chain ID, gas limits, addresses, and fees in one file
  • L1 contract deployment — Deploys SystemConfig, OptimismPortal, L2OutputOracle, and all required L1 contracts
  • Genesis generation — Builds L2 genesis and rollup config from your parameters
  • Docker Compose orchestration — Spins up op-node, op-geth, op-batcher, and op-proposer
  • Health checks — Validates sequencer liveness, block production, and L1 submission after deployment
  • Interactive initnpx op-deploy init scaffolds a config file with sensible defaults

Architecture


op-deploy init          op-deploy deploy
    │                       │
    ▼                       ▼
YAML Config ──→ L1 Contract Deployment
                    │
                    ▼
              Genesis Generation
                    │
                    ▼
           Docker Compose Up
           ┌──────────────────┐
           │  op-geth         │
           │  op-node         │
           │  op-batcher      │
           │  op-proposer     │
           └──────────────────┘
                    │
                    ▼
             Health Checks ✓

Tech Stack

ComponentTechnology
CLITypeScript, commander
Chainethers.js v6
OrchestrationDocker, Docker Compose
ConfigYAML (js-yaml)
TemplatesHandlebars (docker-compose generation)

Quick Start

... continues with setup instructions, usage examples, and more.

📄 Code Sample .yml preview

docker/docker-compose.yml # ═══════════════════════════════════════════════════════════════ # OP Stack Deployer — Docker Compose # Runs all OP Stack components for the rollup # ═══════════════════════════════════════════════════════════════ version: "3.8" services: op-geth: image: ${OP_GETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:latest} container_name: op-geth ports: - "8545:8545" - "8546:8546" - "8551:8551" volumes: - geth-data:/data - ./genesis.json:/genesis.json:ro environment: - GETH_VERBOSITY=3 command: > --datadir=/data --http --http.addr=0.0.0.0 --http.port=8545 --http.corsdomain=* --http.vhosts=* --ws --ws.addr=0.0.0.0 --ws.port=8546 --authrpc.addr=0.0.0.0 --authrpc.port=8551 --authrpc.jwtsecret=/data/jwt.hex --rollup.sequencerhttp=http://op-node:8547 --gcmode=archive --networkid=${L2_CHAIN_ID:-42069} healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:8545"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped op-node: image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:latest} container_name: op-node depends_on: op-geth: condition: service_healthy ports: # ... 52 more lines ...
Buy Now — $20 Back to Products