Scamified is an AI-powered scam score system for TON contract addresses.
apps/web: Next.js app (search UX, wallet auth, signed reports, analysis polling)apps/worker: BullMQ worker (TonAPI extraction + heuristic score persistence)packages/db: Drizzle schema and database clientpackages/auth: wallet/session/auth challenge utilitiespackages/ui: shadcn-based shared UI components
docker-compose.local.yml starts:
- Postgres (
postgres:16-alpine) - Redis (
redis:7-alpine)
Production compose file: docker-compose.production.yml
Unified env source of truth (root): .env
- Copy
.env.exampleto.envand fill secrets. - Run:
pnpm prod:up
- Useful ops:
pnpm prod:logspnpm prod:migratepnpm prod:down
Services included:
db(Postgres)redismigrate(Drizzle migration one-shot job)workerweb
pnpm install- Copy
apps/web/.env.example->apps/web/.env.local - Create
apps/worker/.env.localwith localDATABASE_URLandREDIS_URL - Create
packages/db/.envwithDATABASE_URL=postgresql://postgres:postgres@localhost:5432/scamified_development pnpm dev:stack(brings up infra and runs DB migrations automatically)
POST /api/auth/ton/challengePOST /api/auth/ton/verifyPOST /api/reports/challengePOST /api/reportsPOST /api/analyzeGET /api/analyze/:jobId