Next.js 웹 에디터. mcbl-core 플러그인의 /mcbl editor가 여는 URL(Editor.BaseUrl + / + 10자 세션)과 맞춥니다.
npm install
npm run dev-
이 폴더(
mcbl-editor)를 GitHub 등에 푸시합니다. -
Vercel → Add New… → Project → 저장소를 import합니다.
-
Root Directory: 모노레포가 아니면 비워 두고, 상위 레포 안에 이 앱만 있으면
mcbl-editor로 지정합니다. -
Build & Output: 기본값 그대로(
next build, 출력 자동)면 됩니다. -
배포가 끝나면 프로덕션 URL(예:
https://mcbl-editor.vercel.app)을 복사합니다. -
Minecraft 서버
plugins/mcbl-core/config.yml에서:Editor: BaseUrl: https://여기-배포-도메인
끝에
/는 넣지 않습니다./mcbl reload후/mcbl editor로 링크를 다시 받으면 됩니다.
npm i -g vercel
cd mcbl-editor
vercel프로덕션 반영: vercel --prod
vercel.json의regions는 서버리스 함수 실행 리전입니다(예:icn1서울).- 커스텀 도메인은 Vercel 프로젝트 Settings → Domains에서
editor.mcbl.kr등을 연결하면 됩니다.
- 테이블 생성: 배포 후 저장 또는
/mcbl save연동 시, API가CREATE TABLE IF NOT EXISTS로 다섯 테이블을 자동 생성합니다(MySQL 사용자에게 CREATE 권한 필요).
수동으로 넣고 싶다면scripts/init-editor-mysql.sql을 실행해도 됩니다.
예전 JSON 형태 등 구 스키마가 이미 있을 때 전부 최신 정의로 바꾸려면 백업 후 아래를 실행하세요(해당mcbl_editor_*테이블 데이터는 삭제됩니다).테이블:mysql -h HOST -u USER -p DATABASE < scripts/migrate-editor-to-latest.sqlmcbl_editor_pitches(구종 행:idx,session_id,pitch_name,speed_value,movement_lr,drop_ud,enabled),mcbl_editor_clubs(구단 행:idx,session_id,club_name,color_code,emblem_image_url), 그 외 메뉴는 JSON 1행/세션 (mcbl_editor_players등, utf8mb4). .env.example을 참고해 로컬은.env.local, Vercel은 Settings → Environment Variables에DATABASE_HOST,DATABASE_PORT,DATABASE_USER,DATABASE_PASSWORD,DATABASE_NAME를 넣습니다.
비밀번호는 Git에 커밋하지 마세요. 이미 유출됐다면 DB 비밀번호를 즉시 바꾸세요.- Vercel → MySQL 방화벽: 호스팅에서 Vercel IP 허용이 어렵다면 MySQL을 VPN/내부망만 열고, 에디터 API는 같은 서버에서
next start로 두는 방식도 고려할 수 있습니다.
- 저장 시
POST /api/sync/<세션>이selection.sectionId에 해당하는 메뉴 테이블 한 줄에 upsert 합니다. /mcbl save <세션>의GET은 위 다섯 테이블을 읽어{ version: 2, session, savedAt, menus: { pitches|null, … } }형태의 JSON 한 덩어리로 돌려줍니다 (플러그인은 그대로 파일로 저장).