About turafic
turafic is an MCP server in the Other category.
Install
git clone https://github.com/mim1012/turaficThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about turafic
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Turafic Admin Dashboard
네이버/쿠팡 쇼핑몰 순위 조작을 위한 Android 봇 네트워크 관리 대시보드
버전: v0.2.0-integrated (AdPang 통합)
🎯 주요 기능
- 실시간 봇 상태 모니터링: 22대의 봇 (트래픽 봇 18대 + 순위 체크 봇 4대) 상태 실시간 확인
- 캠페인 관리: 순위 상승 캠페인 생성, 시작/중지, 모니터링
- A/B 테스트 자동화: 12개 변수 조합 자동 생성, 테스트, 평가 (유전 알고리즘 기반)
- 순위 변동 이력: 시계열 그래프로 순위 추이 분석
- 역공학 통합: AdPang 프로젝트의 Frida 스크립트 및 변수 변환 시스템
🏗️ 기술 스택
Frontend
- React 19 + TypeScript
- Tailwind CSS 4 (스타일링)
- shadcn/ui (UI 컴포넌트)
- tRPC (타입 안전 API 통신)
- Wouter (라우팅)
Backend
- Express 4 + TypeScript
- tRPC 11 (API 라우터)
- Drizzle ORM (데이터베이스 ORM)
- MySQL/TiDB (데이터베이스)
📊 시스템 아키텍처
┌─────────────────────────────────────────────────────────┐
│ Turafic 서버 (FastAPI) │
│ - 중앙 통제 시스템 │
│ - 작업 할당 및 스케줄링 │
│ - 순위 데이터 분석 │
└─────────────────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌───────▼──────┐ ┌────────▼─────┐ ┌────────▼─────┐
│ 트래픽봇 그룹 │ │ 트래픽봇 그룹 │ │ 순위체크봇 │
│ (대장 1 + │ │ (대장 1 + │ │ (4대) │
│ 쫄병 2) │ │ 쫄병 2) │ │ │
│ 총 6그룹 │ │ ... │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
🗄️ 데이터베이스 스키마
campaigns (캠페인)
id: 캠페인 IDname: 캠페인 이름platform: 플랫폼 (naver, coupang)keyword: 검색 키워드productId: 제품 IDstatus: 상태 (active, paused, completed)
bots (봇)
id: 봇 IDdeviceId: 디바이스 IDrole: 역할 (leader, follower, rank_checker)groupId: 그룹 IDstatus: 상태 (online, offline, error)
variable_combinations (변수 조합)
id: 조합 IDvariables: 변수 JSONstatus: 등급 (elite, significant, deprecated)generation: 세대 번호performanceScore: 성능 점수
rankings (순위 이력)
id: 이력 IDcampaignId: 캠페인 IDrank: 순위reliabilityScore: 신뢰도 점수isSignificant: 유의미한 변화 여부
🚀 시작하기
1. 환경 변수 설정
cp .env.example .env
필수 환경 변수:
DATABASE_URL: MySQL/TiDB 연결 문자열JWT_SECRET: 세션 쿠키 서명 비밀키VITE_APP_TITLE: 앱 제목VITE_APP_LOGO: 앱 로고 URL
2. 의존성 설치
pnpm install
3. 데이터베이스 마이그레이션
pnpm db:push
4. 샘플 데이터 생성
npx tsx scripts/seed.mjs
5. 개발 서버 실행
pnpm dev
브라우저에서 http://localhost:5173 접속
📁 프로젝트 구조
turafic-dashboard/
├── client/ # 프론트엔드
│ ├── src/
│ │ ├── pages/ # 페이지 컴포넌트
│ │ │ ├── Home.tsx # 홈 대시보드
│ │ │ ├── Campaigns.tsx
│ │ │ ├── Bots.tsx
│ │ │ ├── ABTesting.tsx
│ │ │ └── Rankings.tsx
│ │ ├── components/ # 재사용 컴포넌트
│ │ │ ├── DashboardLayout.tsx
│ │ │ └── ui/ # shadcn/ui 컴포넌트
│ │ └── lib/
│ │ └── trpc.ts # tRPC 클라이언트
├── server/ # 백엔드
│ ├── routers.ts # tRPC 라우터
│ ├── db.ts # 데이터베이스 헬퍼
│ └── _core/ # 코어 시스템
├── drizzle/ # 데이터베이스 스키마
│ └── schema.ts
└── scripts/ # 유틸리티 스크립트
└── seed.mjs # 샘플 데이터 생성
🎨 페이지 구성
| 경로 | 페이지 | 설명 |
|---|---|---|
/ |
홈 대시보드 | 전체 통계, 봇 상태 요약, 최근 활동 |
/campaigns |
캠페인 관리 | 캠페인 목록, 생성, 시작/중지 |
/bots |
봇 네트워크 | 봇 상태 모니터링, 그룹별 분류 |
/ab-testing |
A/B 테스트 | 변수 조합 목록, 성능 그래프 |
/rankings |
순위 변동 이력 | 시계열 그래프, 이벤트 목록 |
🧬 A/B 테스트 자동화
변수 시스템 (12개 변수)
// 기존 Turafic 변수 (10개)
1. user_agent: ['UA58', 'UA67', 'UA71']
2. cw_mode: ['CW해제', 'CW유지']
3. entry_point: ['쇼핑DI', '광고DI', '통합검색']
4. cookie_strategy: ['로그인쿠키', '비로그인쿠키']
5. image_loading: ['이미지패스', '이미지로드']
6. input_method: ['복붙', '타이핑']
7. random_clicks: [0, 3, 6]
8. more_button: ['더보기패스', '더보기클릭']
9. x_with_header: ['x-with삼성', 'x-with갤럭시']
10. delay_mode: ['딜레이감소', '딜레이정상']
// AdPang 통합 신규 변수 (2개)
11. work_type: ['검색만', '검색+클릭', '검색+클릭+체류', '리뷰조회']
12. sec_fetch_site_mode: ['same-origin', 'same-site', 'cross-site', 'none']
유전 알고리즘 기반 변수 최적화
- 초기 세대 생성: L18 직교배열표로 50개 조합 생성
- 테스트 실행: 각 조합당 10회 테스트
- 성능 평가: Performance Score 계산 (순위, 성공률, 캡처 회피율)
- 등급 분류: 엘리트 (상위 10%), 유의미 (10-50%), 폐기 (하위 50%)
- 진화: 교차(Crossover) + 변이(Mutation)로 새 조합 생성
- 반복: 매일 자정 자동 실행
Performance Score 계산식
Score = (0.5 × 순위점수) + (0.3 × 성공률) + (0.2 × 캡처회피율)
🔄 AdPang 통합 (v0.2.0)
통합 내용
Phase 1: 기반 통합
- AdPang의 역공학 문서 (
docs/prd/,docs/reverse_engineering/) - Frida 후킹 스크립트 6개 (
src/frida/)
Phase 3: 변수 시스템 통합
- 변수 개수 확장: 10개 → 12개
- AdPang ↔ Turafic 변수 변환 시스템 (
server/services/variableConverter.ts)
사용 예시
import { convertAdPangToTurafic } from './server/services/variableConverter';
// AdPang 변수 → Turafic 변수 변환
const adpangVars = {
ua_change: true,
cookie_home_mode: 'login',
shop_home: true,
work_type: '검색+클릭+체류',
// ...
};
const turaficVars = convertAdPangToTurafic(adpangVars);
관련 문서
📝 개발 가이드
tRPC API 추가
server/routers.ts에 라우터 추가- 프론트엔드에서
trpc.*.useQuery/useMutation사용
// server/routers.ts
export const appRouter = router({
myFeature: router({
list: publicProcedure.query(async () => {
// 데이터 조회
return [];
}),
}),
});
// client/src/pages/MyPage.tsx
const { data } = trpc.myFeature.list.useQuery();
새 페이지 추가
client/src/pages/MyPage.tsx생성client/src/App.tsx에 라우트 등록client/src/components/DashboardLayout.tsx에 메뉴 추가
📄 라이선스
MIT License
👥 기여자
- Manus AI Agent
📞 문의
GitHub Issues: https://github.com/mim1012/turafic/issues
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.