Atlas is an EVM blockchain explorer for ev-node based chains. It runs a Rust indexer, REST API, background workers, PostgreSQL database, and Vite frontend as one deployable stack.
atlas-server: one Rust binary that runs the indexer, API, live SSE stream, metrics endpoint, optional faucet, optional Data Availability tracking, NFT metadata worker, missed-block gap-fill worker, and optional snapshot scheduler.postgres: stores indexed blocks, transactions, addresses, ERC-20 data, NFT data, logs, contract verification data, proxy metadata, and indexer state.atlas-frontend: Vite app served by unprivileged nginx on port 8080 inside the container, exposed as host port 80 by Docker Compose.
Requirements:
- Docker and Docker Compose
- An EVM JSON-RPC endpoint
cp .env.example .env
# Edit RPC_URL and CHAIN_NAME in .env
docker compose up -dDefault service URLs:
| Service | URL |
|---|---|
| Explorer UI | http://localhost |
| API through frontend nginx | http://localhost/api |
Backend API when running atlas-server locally |
http://localhost:3000/api |
| Prometheus metrics when backend port is reachable | http://localhost:3000/metrics |
| Liveness probe when backend port is reachable | http://localhost:3000/health/live |
| Readiness probe when backend port is reachable | http://localhost:3000/health/ready |
The postgres service binds to 127.0.0.1:5432 for local development access. Docker Compose does not publish atlas-server:3000 to the host by default; the frontend proxies browser API traffic through http://localhost/api.
Start only PostgreSQL:
docker compose up -d postgresRun the backend:
cd backend
export DATABASE_URL=postgres://atlas:atlas@localhost:5432/atlas
export RPC_URL=http://localhost:8545
cargo run --bin atlas-server -- runRun the frontend:
cd frontend
bun install
bun run devThe Vite dev server runs on http://localhost:5173 and proxies /api to http://localhost:3000.
Run these from backend/ unless noted otherwise:
cargo run --bin atlas-server -- check
cargo run --bin atlas-server -- migrate
cargo run --bin atlas-server -- run
cargo run --bin atlas-server -- db dump /tmp/atlas.dump
cargo run --bin atlas-server -- db restore /tmp/atlas.dump
cargo run --bin atlas-server -- db reset --confirmUseful validation commands:
cd backend && cargo test --workspace
cd frontend && bun run build
cd frontend && bun run lintCopy .env.example to .env. RPC_URL is required. When running without Docker, DATABASE_URL is also required.
Common variables:
Optional features include Data Availability tracking, faucet support, white-label branding, scheduled snapshots, JSON logging, CORS restriction, and a Solidity compiler cache. See .env.example and Backend for the full operator reference.
MIT
