30e9b7a8eeb55c58c58c0bb3ec226afa49a6d0ba
After the initial scaffold the site was missing most of the production
surface (회원가입/마이페이지/메가메뉴 카테고리/관리자/게임/포인트존/...).
This commit closes that gap and verifies every route end-to-end with
playwright screenshots (27/27 pass).
## Theme system
- Replaced eyoom theme with a higher-fidelity reproduction of the
production eb4_maga_005 layout: top utility bar (북마크/회원가입/구매내역
/추가메뉴), brand row with 로그인/내글반응/쪽지 icon stack with badges,
purple gradient mega-menu carrying 10 categories with submenus, dark
mode toggle, sticky LOGIN box + 텔레그램CS box + 태그 클라우드 + 회원
랭킹 + 방문자 stats in the sidebar, and a footer with 이용약관/개인정보
처리방침/이메일무단수집거부.
- Added IndexHome slot to the theme contract; basic/amina/youngcart got
matching implementations so theme switching keeps working.
- Layout now consistently provides the right-rail sidebar on public pages
and hides it on /login, /register, /mypage and /admin (admin uses its
own left rail).
## Pages added
- Auth: /register (with API-backed insert into the new members table),
/auth/recover (id+password recovery shells).
- /mypage dashboard with 12 sub-routes.
- /memo, /bookmarks, /new, /tags, /tag/[tag], /profile/[nick].
- 10 mega-menu landing pages: /guarantee, /guarantee/apply, /mukti,
/complaint, /inspection, /fakesite, /event, /lottery_ticket,
/gift_coupons, /gift_exchanges, /notice; /games (bacara, fortunes,
fivetreasures, slot, roulette, ranking); /wallet (+ exchange,
point-exchange, slotbuff); /tv; /guide (+ community/pointgame/mukti/tv);
/help/qa, /help/faq.
- Static pages: /page/provision, /page/privacy, /page/noemail,
/page/aboutus, /page/manual, /page/attendance.
- Per-board: /[slug]/write, /[slug]/[wrId]/edit, /[slug]/search.
## Post interactions (wired against legacy g5_* tables)
- POST /api/posts/create — insert into inspection2.g5_write_<slug>
- POST /api/posts/[id]/comment — insert is_comment row + bump wr_comment
- POST /api/posts/[id]/good|bad — bump wr_good/wr_nogood + g5_board_good
- POST /api/posts/[id]/scrap — insert g5_scrap
- POST /api/posts/[id]/report — write into writing_activity
- POST /api/posts/[id]/delete — owner+admin gate, soft-delete row
- POST /api/ui/dark-mode — flip slot_dark cookie
## Admin
- /admin layout with left nav (10 sections) gated by member level >= 10.
- /admin — dashboard with live counts pulled from PG
- /admin/members — searchable member list with status badges
- /admin/boards — board roster with post/comment counts
- /admin/betting — bacara/swiun/game-point counters + recent feed
- /admin/stats — 14-day visit chart + top boards + level histogram
- /admin/themes — 4-theme picker (already existed, now polished)
- /admin/{menu,permissions,points,games} — stubs for M5
## Infra fixes
- Postgres pool hoisted onto globalThis so HMR doesn't leak connections
("sorry, too many clients already" 500s).
- Removed broken Next.js redirects() entry that prevented dev from booting.
## Verification
- scripts/screenshot.mjs: pre-logs-in as admin/test1234, then captures 27
pages + 4 theme variants of /. All 200, all rendered. PNGs committed
under next-app/screenshots/ for review.
slot — 슬롯 커뮤니티 마이그레이션 워크스페이스
원본 사이트(slot-ss.com, 그누보드5 + 이윰빌더 + 영카트)를
Next.js + Node.js + PostgreSQL 스택으로 재구축하기 위한 작업 공간.
디렉토리
| 경로 | 내용 |
|---|---|
src/ |
원본 PHP 소스 사본 (서버 /var/www/slot-ss.com 에서 rsync, 206MB / 11,652개 파일). 사용자 업로드(data/editor, data/file)·vendor/·db100up/·캐시·세션·로그는 제외 |
db/ |
MariaDB → PostgreSQL 마이그레이션 산출물. dump 파일과 pgloader 설정 |
docker/ |
원본 사이트를 로컬에서 그대로 띄우기 위한 PHP+Apache 도커 스택 |
docs/ |
마이그레이션 분석·계획·설계 문서 (MD) |
samples/ |
업로드 파일 샘플 (필요 시 추가) |
진행 상태 (2026-04-27)
- ✅ 서버 소스 → 로컬 (206MB / 11,652 파일)
- ✅ MariaDB 두 DB(
inspection,inspection2) → 서버에서 dump → 로컬 - ✅ 임시 MariaDB 10.5 (Docker) 에 dump 복원
- ✅ pgloader 로 PostgreSQL 마이그레이션 (
slot,slot_legacyDB, 165 테이블 / 1,820만 행 / 2.3GB) - 🔄 PHP 컨테이너로 원본 사이트 로컬 실행 (port 8088)
- ⏳ 로그인 검증 → git push (
git.junggomoa.com/chpark/slot.git) - ⏳ Next.js + Node.js + PostgreSQL 신규 시스템 설계
- ⏳ 4종 테마 (기본 / 이윰빌더 / 아미나빌더 / 영카드) 빌트인 아키텍처
빠른 사용
원본 사이트 로컬 띄우기
# (사전조건) Docker Desktop 실행 중
cd docker && docker compose up -d
open http://localhost:8088/ # 그누보드 사이트
open http://localhost:8088/adm/ # 관리자
PostgreSQL 접속
psql -h localhost -d slot # main DB (운영 = inspection2)
psql -h localhost -d slot_legacy # legacy = inspection
# 데이터는 schema "inspection2" / "inspection" 안에 있음
psql -h localhost -d slot -c "SELECT count(*) FROM inspection2.g5_member;"
MariaDB 임시 인스턴스 (분석/검증용)
docker exec -it slot-mariadb mariadb -uroot -prootpass inspection2
# host: localhost, port: 33306
문서
| 파일 | 내용 |
|---|---|
| docs/01-source-inventory.md | 원본 그누보드/이윰/플러그인 구조 |
| docs/02-database-schema.md | DB 테이블 분류, 핵심 스키마 |
| docs/03-migration-plan.md | Next.js + Node.js + PostgreSQL 마이그레이션 전략 |
| docs/04-theme-architecture.md | 4종 테마 빌트인 아키텍처 (기본/이윰/아미나/영카드) |
| docs/05-local-dev-setup.md | 로컬 개발 환경 셋업 가이드 |
| docs/06-feature-inventory.md | 슬롯/카지노 도메인 기능 인벤토리 |
보안 참고
- 이 저장소에는 운영 DB 패스워드(
data/dbconfig.php의iiOii5*^^*)와 토큰 키(G5_TOKEN_ENCRYPTION_KEY = ac57f676fe741f0ab3471d81dbee3bf1)가 원본 그대로 들어 있습니다. 신규 시스템으로 이전 후에는 반드시 회전하세요. - 운영 서버 SSH 패스워드(
eoqkrskwk!@!@)는 이 저장소에 저장하지 않았습니다.
Description
Languages
PHP
74.1%
JavaScript
12.6%
CSS
7.5%
HTML
4.1%
TypeScript
1.7%