# 삼국지 모의전투 HiDCHe 삼국지 모의전투 유기체서버를 기반으로 더욱 더 진화한 서버입니다. ## 요구사항 * Apache2 또는 nginx * Apache2인 경우 `mpm_event` 권장 * PHP 8.0 이상 * `php-fpm` 권장 * php에서 curl, pdo-sqlite을 실행가능해야 합니다. * mysqli, mysqlnd * gd * mbstring * NodeJS 14 이상 * 내부의 git을 통해 upgrade 때 `webpack build` 용도로 필요합니다. * MariaDB 10.2.1 이상 * 현재 MySQL은 지원하지 않습니다. * `git` * `curl` Linux는 Ubuntu 18.04, 20.04, Windows는 WSL2를 사용한 환경에서 테스트되었습니다. Docker를 이용한 설치도 제공하고 있습니다. ## Docker를 이용한 설치 https://storage.hided.net/gitea/devsam/docker 를 참고해 주세요. ## 수동 설치 본 게임은 git을 이용한 업그레이드 시스템을 구현하였으므로, git이 필요합니다. 또한 웹 서비스 데몬을 운영중인 사용자(일반적으로 www-data)에게 디렉토리 권한이 주어져야합니다. ### 다운로드 웹 데몬 user가 www-data인 경우 다음과 같이 입력하여 최신 배포버전과 이미지 파일을 얻을 수 있습니다. ``` sudo -u www-data git clone https://storage.hided.net/gitea/devsam/core.git sudo -u www-data git clone https://storage.hided.net/gitea/devsam/image.git ``` > 이미지는 Gitea webhook을 기본으로 동기화합니다. Webhook 전달이 누락된 경우에도 서버 설치 과정에서 이미지 갱신 API와 `core` 전용 비밀값을 지정하면 게임 서버 업데이트 명령이 서명된 동기화를 요청합니다. 이미지 서버의 브랜치 변경 권한은 부여되지 않습니다. CLI에서 수동으로 복구 동기화를 요청할 수도 있습니다. ```sh IMAGE_SYNC_SECRET_FILE=/run/secrets/image_sync_core_secret \ php scripts/sync-image-repository.php ``` Ref의 사용자 아이콘 원격 업로드 구현은 기본적으로 꺼져 있습니다. 이미지 서버의 `image_upload_core_secret`과 동일한 값을 Git 제외 파일 `d_setting/image_upload_core_secret`에 저장한 뒤 실제 `d_setting/ServConfig.php`에서 다음 값만 변경하면 기존 화면을 그대로 둔 채 원격 bind 저장소로 전환됩니다. ```php public static $remoteUserIconUploadEnabled = true; public static $remoteUserIconUploadPath = 'https://sam-image.hided.net'; public static $remoteUserIconUploadSecretFile = 'd_setting/image_upload_core_secret'; ``` 플래그가 `false`이면 기존 `d_pic` 및 `IMGSVR=1` 동작을 유지합니다. `true`이면 PHP 서버가 인증 사용자와 이미지 규격을 먼저 검사한 후 60초 HMAC 권한으로 이미지 서버에 직접 업로드하고 `IMGSVR=0` 공유 이미지 경로를 저장합니다. 공유 비밀값은 브라우저나 Cloudflare로 보내지 않습니다. ### 설치 이후 해당 경로를 웹 브라우저를 통해 접근하여 설치를 진행할 수 있습니다. Database 수는 로그인 관리 서버 1개, 내부 서버 7개로, 총 8개의 Database가 필요합니다. 내부 설정을 고쳐서 서버 수를 늘리거나 줄일 경우 그에 맞는 Database 수가 필요합니다. 또한 Database마다 관리할 별도의 계정을 만드는 것을 추천합니다. 설치 이후에는 서버관리 페이지에서 **업데이트** 명령을 통해 원 클릭 업데이트가 가능합니다. ## 카카오로그인 연동 서버 설치 시 카카오 로그인 연동을 위한 API KEY를 입력받습니다. 만약 설치 이후 API KEY를 변경하고자 하는 경우 d_setting/KakaoKey.php에서 API키를 변경해야 합니다. ## 라이선스 본 게임을 수정하거나 재배포할 경우 다음 중 하나의 라이선스를 선택하여 적용할 수 있습니다. * MIT License * GPL 2.0 또는 이후 만약 별도의 라이선스를 적용하고자 할 경우 Hide_D에게 문의하여 주십시오.