pnpm dbmate up
- create the database and run migrationspnpm build
- build all the projectspnpm dev
- start all the projectspnpm debug
- start all the projects with debug logspnpm prod
- start all the projects in production modepnpm pgcli
- connect to the database with pgclipnpm check
- check the codepnpm fix
- check and fromat the codepnpm kanel
- generate types from the databasepnpm apps
- run a script in all the projects (e.g.pnpm apps build
)pnpm apps:web
- run a script in the web project (e.g.pnpm apps:web build
)pnpm apps:indexer
- run a script in the indexer project (e.g.pnpm apps:indexer build
)
docker compose build
- build all the imagesdocker compose build indexer
- build the indexer imagedocker compose build web
- build the web imagedocker compose build migrations
- build the migrations image
docker compose up
- start all the servicesdocker compose up -d
- start all the services in the backgrounddocker compose up db -d
- start the database in the background
dpcker compose rm
- remove all stopped servicesdocker compose rm --stop
- stop and remove all the services
source ./setup-install.sh
- install nvm, node and pnpm.source ./setup-update.sh
- install up-to-date versions of nvm, node and pnpm.
DATABASE_URL
- Database connection stringINDEXER_CONFIG
- The indexer configurationSTARKNET_NETWORK_NAME CONTRACT_BLOCK_NUMBER CONTRACT_ADDRESS
for each contractSTARKNET_NETWORK_NAME
- The StarkNet network name (SN_GOERLI
orSN_MAIN
)CONTRACT_BLOCK_NUMBER
- The block number at which the contract was deployedCONTRACT_ADDRESS
- The contract address
- Example:
SN_GOERLI 942318 0x05bd17bba6b3cb9740bcc0f20f93ecf443250c4f09d94e4ab32d3bdffc7ebba2
SN_MAIN 526494 0x079294c688eb80e025f298b1ab2d30dd7a4a316ed592ac2fc124710564e4e911
SN_GOERLI 267275 0x06dc4bd1212e67fd05b456a34b24a060c45aad08ab95843c42af31f86c7bd093
SN_MAIN 4982 0x06a05844a03bb9e744479e3298f54705a35966ab04140d3d8dd797c1f6dc49d0
DBMATE_MIGRATIONS_DIR
- The directory where the migrations are located (default:db/migrations
)DBMATE_SCHEMA_FILE
- The file where the schema is located (default:db/schema.sql
)INFURA_API_KEY
- The Infura API key (nullable)INDEXER_DELAY
- The delay between indexing (in milliseconds) (default:3000
)LOG_LEVEL
- The log level (trace
,debug
,info
,warn
,error
,fatal
) (default:info
)
- Biome - Format, lint, and more in a fraction of a second.
- dbmate - A lightweight, framework-agnostic database migration tool.
- Docker Compose - Define and run multi-container applications with Docker.
- Docker - Build, Share, and Run Any App, Anywhere.
- dotenv-cli - A cli to load dotenv files.
- dotenv - Loads environment variables from .env for nodejs projects.
- Kanel - Generate Typescript types from Postgres.
- Kysely extension for Kanel - Generate Kysely types from Postgres.
- Kysely - The type-safe SQL query builder for TypeScript.
- Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions.
- node-postgres- PostgreSQL client for node.js.
- Node.js - JavaScript runtime.
- Pgcli - A command line interface for Postgres with auto-completion and syntax highlighting.
- pkgroll - Next-gen package bundler for TypeScript & ESM.
- pnpm - Fast, disk space efficient package manager.
- PostCSS - A tool for transforming CSS with JavaScript plugins.
- PostgreSQL - The world's most advanced open source database.
- react - A JavaScript library for building user interfaces.
- remix-run - The full-stack web framework for the modern web.
- shadcn-ui - Beautifully designed components that you can copy and paste into your apps.
- Starknet.js - JavaScript library for Starknet
- Tailwind CSS - A utility-first CSS framework for rapid UI development.
- TanStack Table - Headless UI for building powerful tables & datagrids.
- tsx - TypeScript Execute: Node.js enhanced to run TypeScript & ESM
- TypeScript - Typed JavaScript at Any Scale.
- Vite - Next generation frontend tooling. It's fast!
- winston - A logger for just about everything.
- znv - Type-safe environment parsing and validation for Node.js with Zod schemas.
- Zod - TypeScript-first schema validation with static type inference.
- Cairo Contracts
- Indexers
- Frontends