Zonk.fun has two distinct deployment domains:
- Protocol contracts: Foundry scripts deploy and bind the V3 graph on Base Mainnet. The repository requires chain ID 8453 and validates canonical Uniswap Factory, WETH, NonfungiblePositionManager, pool fee, and tick spacing. Deployment broadcast and governance transactions are manual, separately authorized operations.
- Application services: Docker Compose defines PostgreSQL, Redis, one-shot migrations, Go API, Go indexer, and Next.js web services with health/dependency ordering and persistent data/object volumes.
Safe release sequence
- Review source and the verified production deployment record.
- Validate build, unit, invariant, integration, and configuration checks.
- Apply database migrations before starting API/indexer code that requires the new schema.
- Configure Base Mainnet addresses, server RPC, database, cache, and browser-safe values through protected environment management.
- Start API only after PostgreSQL is healthy and migrations complete.
- Start the indexer from the exact deployment block for a fresh database; never overwrite a durable checkpoint accidentally.
- Build the frontend with the matching chain and contract addresses.
- Verify readiness, indexed catch-up, contract reads, and wallet simulations before directing users to the release.
Never place a raw Mainnet private key in .env, a Compose file, documentation, logs, or a command line. The repository’s Mainnet deployment process uses an encrypted Foundry keystore and explicit sender; live broadcast is not an application startup step.