# Quick Start Guide ## Prerequisites - Docker and Docker Compose - Go 1.21+ - Node.js 20+ - PostgreSQL 16+ (or use Docker) - Elasticsearch/OpenSearch (or use Docker) ## Setup 1. **Clone and navigate to project** ```bash cd explorer-monorepo ``` 2. **Configure environment** ```bash cp .env.example .env # Edit .env with your configuration ``` 3. **Install dependencies** ```bash make install # Or manually: # cd backend && go mod download # cd ../frontend && npm install ``` 4. **Start infrastructure** ```bash docker-compose -f deployment/docker-compose.yml up -d postgres elasticsearch redis ``` 5. **Run migrations** ```bash cd backend go run database/migrations/migrate.go cd .. ``` 6. **Check requirements** ```bash ./scripts/check-requirements.sh ``` 7. **Start development services** ```bash ./scripts/run-dev.sh ``` Note: Make sure you're in the `explorer-monorepo` directory when running scripts. Or manually: ```bash # Terminal 1: Indexer cd backend/indexer && go run main.go # Terminal 2: API cd backend/api/rest && go run main.go # Terminal 3: Frontend cd frontend && npm run dev ``` ## Access - **Frontend**: http://localhost:3000 - **API**: http://localhost:8080 - **API Gateway**: http://localhost:8081 - **Search Service**: http://localhost:8082 ## Configuration Edit `.env` file with your settings: ```env # Database DB_HOST=localhost DB_PORT=5432 DB_USER=explorer DB_PASSWORD=changeme DB_NAME=explorer # RPC RPC_URL=http://localhost:8545 WS_URL=ws://localhost:8546 CHAIN_ID=138 # Search SEARCH_URL=http://localhost:9200 ``` ## Next Steps 1. **Index blocks**: The indexer will start processing blocks automatically 2. **Browse explorer**: Visit http://localhost:3000 to see blocks and transactions 3. **Check API**: Test endpoints at http://localhost:8080/api/v1/blocks 4. **Review documentation**: See `docs/specs/` for detailed specifications ## Troubleshooting ### Database connection errors - Ensure PostgreSQL is running: `docker ps` - Check connection string in `.env` - Verify migrations ran successfully ### Indexer not processing blocks - Check RPC URL is correct and accessible - Verify database connection - Check logs for errors ### Frontend not loading - Ensure API server is running - Check API_URL in frontend `.env` - Verify CORS settings ## Production Deployment See `deployment/` directory for: - Kubernetes manifests - Docker Compose files - CI/CD configurations