Files
slot/docs/01-source-inventory.md
chpark 0e549cad46 Initial import of slot-ss.com (gnuboard5 + Eyoom + YoungCart) for migration
Original PHP source rsync'd from production server (slot-ss.com) on 2026-04-27.
Excluded from import:
  - data/editor (74GB user uploads), data/file (8.5GB attachments)
  - data/member_image, vendor/, db100up/, caches/sessions/logs/tmp

Includes:
  - 11,636 files, ~206MB source code (gnuboard5 v5.6.6, Eyoom builder, YoungCart 4)
  - 28 plugins (bacara, chatbot, cron, swiunApi, sns, sms5, ...)
  - Active theme: eb4_maga_005 (Eyoom magazine layout)
  - Local Docker dev stack (PHP 7.4 + Apache + Redis + MariaDB) under docker/
  - PostgreSQL migration setup (pgloader configs) under db/
  - Architecture/migration docs under docs/

Single non-source patch: src/config.php now reads G5_DOMAIN_OVERRIDE env var
so the local Docker stack can serve at http://localhost:8088 without touching
the production constant. Falls back to https://slot-ss.com when unset.
2026-04-27 18:23:16 +09:00

87 lines
5.4 KiB
Markdown

# Source Code Inventory — slot-ss.com
원본 서버: `103.31.14.207:/var/www/slot-ss.com`
로컬 사본: `/Users/chpark/slot/src/` (206MB, 11,652개 파일)
사용자 업로드(`data/editor` 74GB, `data/file` 8.5GB), `vendor/`, `db100up/`, 캐시/세션/로그는 제외
## 0. 베이스 스택
- **그누보드5 v5.6.6** + **이윰빌더(Eyoom)** + **영카트(YoungCart) v5.4.5.5.1**
- PHP + MariaDB 10.5.25, Apache mod_rewrite
- 한글 슬롯/카지노 커뮤니티 (게시판 + 쇼핑몰 + 게임 + 챗봇)
## 1. 진입점
| 파일 | 역할 |
|------|------|
| `index.php` | 메인 디스패처. 활성 테마의 `index.php`를 include, 없으면 모바일/기본으로 폴백. 게시판(free, qa, notice, gallery) 최신글 표시 |
| `config.php` | 도메인, 경로(G5_PATH, G5_SHOP_PATH 등), 테마 선택, charset |
| `common.php` | ~900줄 부트스트랩. DB 함수, 세션/인증, SQL/XSS 필터, GB5/Eyoom 초기화 |
| `_common.php` | common.php include + 커뮤니티/쇼핑 활성화 체크 |
| `head.php` / `tail.sub.php` | 테마별 헤더/푸터 디스패치 |
| `version.php` | GB5 v5.6.6, YC4 v5.4.5.5.1 |
## 2. 라우팅 (`.htaccess`, mod_rewrite)
- `^shop/brand-([0-9a-z]+)$``shop/brand.php?br_cd=$1`
- `^shop/list-([0-9a-z]+)$``shop/list.php?ca_id=$1`
- `^shop/([0-9a-zA-Z_\-]+)$``shop/item.php?it_id=$1`
- `^group/([0-9a-zA-Z_]+)$``bbs/group.php?gr_id=$1`
- `^page/([0-9a-zA-Z_]+)$``page/?pid=$1`
- `^mypage/([0-9a-zA-Z_]+)$``mypage/?t=$1`
- `^content/([0-9a-zA-Z_]+)$``bbs/content.php?co_id=$1`
- `^([0-9a-zA-Z_]+)$``bbs/board.php?bo_table=$1`
- `^([0-9a-zA-Z_]+)/([0-9]+)$` → 게시판 + 글번호
## 3. 디렉토리 맵
| 디렉토리 | 크기 | 설명 |
|----------|------|------|
| `adm/` | 40M | 관리자: 인증, 게시판/쇼핑/회원/포인트 관리, betting_list, roulette/lottery 어드민 |
| `bbs/` | 2.6M | 게시판 코어: 글/댓글/Q&A. 12개 랭크 모듈, blacklist inspection, 바카라 프레임 |
| `shop/` | 3.8M | 쇼핑몰: 상품, 장바구니, 주문, 이니시스 결제 |
| `eyoom/` | 2.0M | Eyoom 빌더 코어 (CMS 템플릿 시스템). class/, core/, lib/, theme/ |
| `theme/` | 70M | **활성: eb4_maga_005** (매거진 레이아웃), 폴백: basic, eb4_basic |
| `plugin/` | 22M | 28개 플러그인 (아래 §6) |
| `lib/` | 5.7M | 코어 라이브러리: cache, hook, redis, sphinx, lottery, parsing 등 |
| `skin/` | 1.5M | 게시판/쇼핑 레거시 그누보드 스킨 |
| `mobile/` | 2.1M | 모바일 전용 템플릿 |
| `lottery/` | 104K | 복권 게임 (`index.php`, `bok.php`) |
| `roulette/` | 896K | 룰렛 게임 (`index.php`, 휠 이미지) |
| `extend/` | 116K | 확장 훅, SMS/OTP/소셜 설정 |
| `data/` | 45M | 런타임: 설정 캐시, eyoom 설정 (`eyoom.config.php`, `eyoom.eb4_maga_005.config.php`) |
| `mypage/` | 52K | 회원 마이페이지 |
| `page/` | 16K | CMS 정적 페이지 |
| `app/`, `public/` | 작음 | jwt_helper.php 토큰 처리 |
## 4. Eyoom 테마 시스템
- 활성 테마: **`theme/eb4_maga_005/`**
- 구조: `head.html.php`, `index.html.php`, `tail.html.php`, `side.html.php`, `skin/`(보드/숍 스킨), `shop/`, `page/`, `plugins/`, `css/`, `js/`, `image/`, `emoticon/`, `meta_config.php`, `seo.map.php`
- 폴백: `theme/basic/`, `theme/eb4_basic/`
## 5. 슬롯/카지노 커스텀 기능
| 기능 | 위치 |
|------|------|
| **바카라** | `plugin/bacara/` (betting, get_game_result, get_betting_list, get_game_data), `bbs/bacara.php`, `bbs/bacararank.php`, `css/bacara*.css` |
| **룰렛** | `roulette/index.php`, `adm/roulette/` (roulettelist, rouletteform, rewardlist 등) |
| **복권** | `lottery/index.php`, `lottery/bok.php`, `lib/lottery.lib.php`, `adm/roulette/lotterywinninglist.php` |
| **Swiun 슬롯 API** | `plugin/swiunApi/` (trans_point, game, get_betlist) — 외부 슬롯사 포인트 브릿지 |
| **게임 포인트/랭크** | `plugin/cron/auto.{slot,bacara,marilyn,...}rankup.php` (27개), `fake_game_points.php` |
| **블랙리스트 검수** | `bbs/inspection.php`, `bbs/inspection.list.update.php`, `bbs/inspection.update.php`, `adm/eyoom_admin/core/board/blacklist_search.php` |
| **베팅 관리자** | `adm/betting_list.php`, `adm/betting_list_update.php` |
## 6. 플러그인 (28개)
PHPMailer, ask-otp, **bacara**, browscap, **chatbot**(api_proxy/feedback), cron(42 파일, 27개 랭크업 작업), debugbar, editor, games, htmlpurifier, inicert, jqplot, jquery-ui, kcaptcha, kcpcert, lgxpay, notifier, **okname**(KO 본인인증), recaptcha/recaptcha_inv, **roulette**, slack, **sms5**(Aligo), **sns**(Naver/Kakao/Facebook 로그인), sns_share, social, **swiunApi**, syndi(Naver)
## 7. 프론트엔드 라이브러리
- `js/`: jQuery 1.12.4 + 1.8.3 + migrate-1.4.1, swiper, owlcarousel, remodal, tooltipster, font-awesome, jqplot, modernizr, html5.js, md5.js, common.js, shop.js, certify.js, autosave.js
- `css/`: default, mobile, default_shop, mobile_shop, bacara/bacara-button/bacara-frame, slotindex
## 8. 마이그레이션 난이도
**높음**. 다음을 재구현해야 함:
1. 28개 플러그인 + 훅 시스템 → Next.js 미들웨어/라우트 핸들러
2. Eyoom 테마/레이아웃 시스템 → Next.js 컴포넌트 라이브러리 + 헤드리스 CMS 패턴
3. Swiun 슬롯 API 브릿지 → Node.js API 프록시
4. 27개 게임 랭크 cron → Node.js 스케줄러 (BullMQ 등)
5. GB5 + Eyoom 이중 인증 → Next.js 통합 auth (NextAuth.js)
6. 바카라/룰렛 게임 → WebSocket 실시간 엔진