Add admin distribution editor
Some checks failed
Build / release (macos-latest) (push) Has been cancelled
Build / release (ubuntu-latest) (push) Has been cancelled
Build / release (windows-latest) (push) Has been cancelled
Windows Smoke Test / windows-smoke (push) Has been cancelled

This commit is contained in:
2026-05-05 19:16:09 +09:00
parent c4cdd0ceba
commit e266387784
11 changed files with 417 additions and 1652 deletions

View File

@@ -16,11 +16,23 @@ npm run admin
- 프로필 추가 / 수정 / 삭제 / 복제
- `modpack`, `map`, `server-pack` 종류별 입력 폼
- `distribution.json`, 맵 ZIP, 서버 번들 ZIP 업로드
- `distribution.json` 업로드 / 새로 만들기 / 직접 편집
- 맵 ZIP, 서버 번들 ZIP 업로드
- 저장 시 아래 두 파일을 동시에 갱신
- `admin/data/catalog.json`
- `app/assets/launcher/catalog.json`
## distribution 편집
- `distribution 파일` 칸에서 JSON 업로드 가능
- `JSON 편집` 버튼으로 현재 연결된 로컬 `distribution.json` 수정 가능
- `새로 만들기` 버튼으로 샘플 템플릿에서 새 `distribution.json` 생성 가능
- 저장된 distribution 파일은 아래에 생성됩니다.
- `admin/data/distributions/`
- 접속주소 필드는 관리자 사이트에서 다루지 않습니다. 런처 내부 접속 흐름과 분리해서 프로필 자료만 관리합니다.
## 업로드 동작
업로드 버튼으로 올린 파일은 아래에 저장됩니다.
@@ -43,6 +55,6 @@ npm run admin
## 추천 운영 방식
1. 관리자 사이트에서 프로필과 자료 경로를 입력
1. 관리자 사이트에서 프로필과 자료 파일을 입력
2. 로컬 런처에서 실제 표시와 실행 확인
3. 이후 필요하면 업로드 경로를 공개 URL 기반으로 확장

View File

@@ -19,9 +19,7 @@
"kind": "modpack",
"description": "설명",
"details": "설치 페이지 상세 패널에 표시할 긴 설명",
"distributionUrl": "https://example.com/launcher/distribution.json",
"defaultServerAddress": "example.com:25565",
"allowCustomServerAddress": true
"distributionUrl": "admin/data/distributions/my-modpack.distribution.json"
},
{
"id": "my-map",
@@ -29,10 +27,9 @@
"kind": "map",
"description": "싱글플레이 월드",
"details": "월드와 플레이 방식에 대한 상세 설명",
"distributionUrl": "https://example.com/launcher/vanilla-map-distribution.json",
"distributionUrl": "admin/data/distributions/my-map.distribution.json",
"worldArchiveUrl": "https://example.com/worlds/my-map.zip",
"worldDirectoryName": "My Map",
"allowCustomServerAddress": false
"worldDirectoryName": "My Map"
},
{
"id": "my-server-pack",
@@ -40,14 +37,13 @@
"kind": "server-pack",
"description": "클라이언트 + 로컬 서버 번들",
"details": "서버 실행 방법, 권장 인원, 접속 방식 등 상세 설명",
"distributionUrl": "https://example.com/launcher/server-pack-client-distribution.json",
"distributionUrl": "admin/data/distributions/my-server-pack.distribution.json",
"serverBundleUrl": "https://example.com/serverpacks/my-server-pack.zip",
"serverDirectoryName": "my-server-pack",
"serverLaunchCommand": "java -jar server.jar nogui",
"serverPort": 25565,
"tunnelCommand": "playit-cli --port ${port}",
"tunnelAddressRegex": "([a-zA-Z0-9.-]+:\\d+)",
"allowCustomServerAddress": true
"tunnelAddressRegex": "([a-zA-Z0-9.-]+:\\d+)"
}
]
}
@@ -60,9 +56,7 @@
- `kind`: `modpack`, `map`, `server-pack`
- `description`: 표시 설명
- `details`: 설치 페이지 상세 패널에 표시할 긴 설명
- `distributionUrl`: Helios distribution.json URL 또는 로컬 경로
- `defaultServerAddress`: 기본 자동 접속 주소
- `allowCustomServerAddress`: 사용자가 라이브러리에서 주소를 덮어쓸 수 있는지 여부
- `distributionUrl`: Helios distribution.json URL 또는 로컬 경로. 관리자 사이트에서 직접 만들거나 업로드 가능
- `worldArchiveUrl`: `kind: map` 일 때 사용할 월드 ZIP 또는 로컬 경로
- `worldDirectoryName`: 게임 `saves/` 아래에 설치될 월드 폴더 이름
- `serverBundleUrl`: `kind: server-pack` 일 때 사용할 서버 ZIP 또는 로컬 디렉터리/경로

File diff suppressed because it is too large Load Diff