# 관리자 사이트

런처 설치 페이지에 표시되는 프로필을 JSON 직접 수정 없이 웹 UI로 관리하는 로컬 관리자 사이트입니다.

## 실행

```bash
npm run admin
```

기본 주소:

- `http://127.0.0.1:8787`

공개 주소로 운영할 때:

- `LAUNCHER_PUBLIC_BASE_URL=https://your-domain.example npm run admin`
- 그러면 관리자 사이트 상단의 `앱 연결용 catalog URL`이 그 공개 주소 기준으로 표시됩니다.

## 현재 구현 범위

- 프로필 추가 / 수정 / 삭제 / 복제
- `맵` 기본 + `모드`, `플러그인`, `서버` 체크 조합
- `distribution.json` 업로드 / 새로 만들기 / 입력 폼 편집
- 월드 ZIP 업로드
- 서버용 버킷 JAR 업로드
- 서버 포트 / 메모리 / 최대 인원수 / 화이트리스트 설정
- 저장 시 아래 두 파일을 동시에 갱신
  - `admin/data/catalog.json`
  - `app/assets/launcher/catalog.json`

## distribution 편집

- `distribution 파일` 칸에서 JSON 업로드 가능
- `폼 편집` 버튼으로 현재 연결된 `distribution.json`을 입력 폼으로 수정 가능
- `새로 만들기` 버튼으로 샘플 템플릿에서 새 `distribution.json` 생성 가능
- 편집기에서는 버전, RSS, 서버 이름, 마인크래프트 버전 같은 기본 정보를 설명과 함께 입력합니다.
- 기존 모듈 목록과 추가 서버 정보는 저장 시 그대로 보존됩니다.
- 저장된 distribution 파일은 아래에 생성됩니다.
  - `admin/data/distributions/`

## 업로드 동작

업로드 버튼으로 올린 파일은 아래에 저장됩니다.

- `admin/data/uploads/`

카탈로그에는 현재 프로젝트 기준 상대 경로가 저장됩니다.

예:

- `admin/data/uploads/1715000000000-paper.jar`

## 주의

- 접속 주소는 관리자 사이트에서 다루지 않습니다.
- 접속 주소는 사용자가 런처 라이브러리에서 직접 입력합니다.
- 지금 1차 버전은 로컬 운영용입니다.
- 기본 서버 바인딩은 `127.0.0.1` 이라 같은 PC에서만 접속됩니다.

## 추천 운영 방식

1. 관리자 사이트에서 프로필과 자료 파일을 입력
2. 상단의 `앱 연결용 catalog URL`을 복사
3. 런처 설정의 `카탈로그 주소`에 붙여넣기
4. 저장 후 실제 표시와 실행 확인
