diff --git a/README.md b/README.md index f025530..38ed961 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Docker가 설치되지 않았다면 다음을 통해 설치합니다. * Windows 7, Windows 10 Home - https://github.com/docker/toolbox/releases 를 통해 Docker Toolbox를 설치합니다. https://docs.docker.com/toolbox/toolbox_install_windows/ 에 설치 안내가 있습니다. -세가지 모두 docker run hello-worlddocker-compose --version 명령이 동작하면 설치가 완료된 것입니다. +세가지 모두 `docker run hello-world` 와 `docker-compose --version` 명령이 동작하면 설치가 완료된 것입니다. ## 설치 @@ -29,13 +29,14 @@ https://storage.hided.net/gogs/devsam/docker/archive/master.zip 링크를 통해 기본적으로 수정이 필요한 항목은 다음과 같습니다. - - hidche/account.env : 계정정보 설정, 공란으로 남겨진 공간을 적절하게 채웁니다. + - `hidche/account.env` : 계정정보 설정, 공란으로 남겨진 공간을 적절하게 채웁니다. - Password에 해당하는 항목들은 가급적 어렵게 지어주십시오. - - HIDCHE_KAKAO_REST_KEY, HIDCHE_KAKAO_ADMIN_KEY는 [KakaoTalk REST API](https://developers.kakao.com/docs/restapi/kakaotalk-api)를 통해 발급 받을 수 있습니다. 동의 항목으로는 카카오계정(이메일), 카카오톡 메시지 전송이 필요합니다. - - hidche/game.env : 게임 설치 정보 설정 공간입니다. 값 하나를 변경해야 합니다. - - HIDCHE_GAME_PATH : 외부 유저가 접속할 수 있는 경로입니다. 공인 IP 주소나 도메인 주소를 사용한 주소로 꼭 변경해야합니다. 변경하지 않을 경우 설치는 되지만, 외부 유저가 이용할 수 없습니다. 명확한 이유가 있는게 아니라면 /sam 까지 붙여주십시오. + - 특히 `HIDCHE_PW_SALT`는 자동 설치 시 1회만 사용되므로 최대한 길고 어렵게 지어주십시오. + - `HIDCHE_KAKAO_REST_KEY`, `HIDCHE_KAKAO_ADMIN_KEY`는 [KakaoTalk REST API](https://developers.kakao.com/docs/restapi/kakaotalk-api)를 통해 발급 받을 수 있습니다. 동의 항목으로는 카카오계정(이메일), 카카오톡 메시지 전송이 필요합니다. + - `hidche/game.env` : 게임 설치 정보 설정 공간입니다. 값 하나를 변경해야 합니다. + - `HIDCHE_GAME_PATH` : 외부 유저가 접속할 수 있는 경로입니다. 공인 IP 주소나 도메인 주소를 사용한 주소로 꼭 변경해야합니다. 변경하지 않을 경우 설치는 되지만, 외부 유저가 이용할 수 없습니다. 명확한 이유가 있는게 아니라면 `/sam` 까지 붙여주십시오. - 이 주소를 이용하여 카카오 API의 로그인 Redirect URI를 설정해야 합니다. 주소가 https://sam.hided.net/sam 인 경우 https://sam.hided.net/sam/oauth_kakao/oauth.php 으로 입력합니다. - - 포트 주소는 8080으로 지정되어있으며, 다른 포트로 바꾸고자 한다면 hidche/docker-compose.yml와 동일하게 유지해야 합니다. + - 포트 주소는 8080으로 지정되어있으며, 다른 포트로 바꾸고자 한다면 `hidche/docker-compose.yml`와 동일하게 유지해야 합니다. >Windows 환경에서 적절한 텍스트 에디터를 찾지 못하였다면 메모장에 해당 파일들을 드래그하여 수정하거나, [Notepad++](https://notepad-plus-plus.org/download/v7.7.1.html)를 설치하여 수정하는 방법도 가능합니다. @@ -43,11 +44,11 @@ https://storage.hided.net/gogs/devsam/docker/archive/master.zip 링크를 통해 고급 설정이 필요하다면 다음을 수정합니다. - - hidche/docker-compose.yml : 설치 옵션입니다. - - web/ports: 8080 포트 대신 다른 포트를 선택하고자 할 경우 수정합니다. hidche/game.env의 내용도 변경해야합니다. - - hidche/game.env - - gameGitPath, imgGitPath: 개발을 위해 다른 git repository를 사용해야한다면 수정합니다. ssh 주소인 경우 hidche/app/id_ecdsahidche/app/known_hosts 또한 수정해야 합니다. - - HIDCHE_IMAGE_USE_INTERNAL, HIDCHE_IMAGE_PATH는 CDN 등 외부 이미지 경로를 사용할 경우 수정합니다. + - `hidche/docker-compose.yml` : 설치 옵션입니다. + - `web/ports`: 8080 포트 대신 다른 포트를 선택하고자 할 경우 수정합니다. `hidche/game.env`의 내용도 변경해야합니다. + - `hidche/game.env` + - `gameGitPath`, `imgGitPath`: 개발을 위해 다른 git repository를 사용해야한다면 수정합니다. ssh 주소인 경우 `hidche/app/id_ecdsa`와 `hidche/app/known_hosts` 또한 수정해야 합니다. + - `HIDCHE_IMAGE_USE_INTERNAL`, `HIDCHE_IMAGE_PATH`는 CDN 등 외부 이미지 경로를 사용할 경우 수정합니다. - 기타 적절한 용도에 맞게 수정하여 사용합니다. ### Docker-compose 실행 @@ -58,6 +59,6 @@ https://storage.hided.net/gogs/devsam/docker/archive/master.zip 링크를 통해 docker-compose up -d ``` -총 5개의 컨테이너 hidche_app_1, hidche_db_1, hidche_web_1, hidche_cron_1, hidche_install_1가 실행되며, hidche_install_1는 설치후 종료됩니다. +총 5개의 컨테이너 `hidche_app_1`, `hidche_db_1`, `hidche_web_1`, `hidche_cron_1`, `hidche_install_1`가 실행되며, `hidche_install_1`는 설치후 종료됩니다. 설치 후, 게임을 이용할 수 있습니다. \ No newline at end of file diff --git a/hidche/account.env b/hidche/account.env index 0831971..45def9c 100644 --- a/hidche/account.env +++ b/hidche/account.env @@ -3,6 +3,7 @@ MYSQL_ROOT_PASSWORD= MYSQL_USER=hidche MYSQL_PASSWORD= +HIDCHE_PW_SALT= HIDCHE_DB_PREFIX=hidche diff --git a/hidche/db/entrypoint_hidche_db.sh b/hidche/db/entrypoint_hidche_db.sh index eebd19d..d786502 100755 --- a/hidche/db/entrypoint_hidche_db.sh +++ b/hidche/db/entrypoint_hidche_db.sh @@ -187,7 +187,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then if [ "$HIDCHE_DB_PREFIX" ]; then for dbName in "${hidcheDBList[@]}"; do fullDBName="${HIDCHE_DB_PREFIX}_${dbName}" - subPW=`echo -n ${dbName}${MYSQL_USER}${MYSQL_PASSWORD}${dbName} | shasum -a 512` + subPW=`echo -n ${dbName}${HIDCHE_PW_SALT}${MYSQL_USER}${MYSQL_PASSWORD}${dbName}${HIDCHE_PW_SALT} | shasum -a 512` subPW=${subPW:0:32} echo "CREATE USER '$fullDBName'@'%' IDENTIFIED BY '$subPW' ;" | "${mysql[@]}" echo "GRANT ALL ON \`$fullDBName\`.* TO '$MYSQL_USER'@'%' ;" | "${mysql[@]}" diff --git a/hidche/install/install_hidche.py b/hidche/install/install_hidche.py index dc6f258..4a2fc3e 100755 --- a/hidche/install/install_hidche.py +++ b/hidche/install/install_hidche.py @@ -57,7 +57,7 @@ while True: session = requests.session() -db_root_pw = hash_password('root', env['MYSQL_USER']+env['MYSQL_PASSWORD'])[:32] +db_root_pw = hash_password('root'+env['HIDCHE_PW_SALT'], env['MYSQL_USER']+env['MYSQL_PASSWORD'])[:32] db_root_name = '%s_root'%env['HIDCHE_DB_PREFIX'] setupDBResult = session.post('http://web/sam/f_install/j_setup_db.php', { @@ -100,7 +100,7 @@ for serverName in serverList: }) print(serverName, updateResult.text) - db_pw = hash_password(serverName, env['MYSQL_USER']+env['MYSQL_PASSWORD'])[:32] + db_pw = hash_password(serverName+env['HIDCHE_PW_SALT'], env['MYSQL_USER']+env['MYSQL_PASSWORD'])[:32] db_name = '%s_%s'%(env['HIDCHE_DB_PREFIX'], serverName) resetResult = session.post('http://web/sam/%s/j_install_db.php'%serverName, { 'db_host':'db',