Skip to content

Commit 13db771

Browse files
committed
feat: update Node.js to 24.6.0 and apply Korean locale default configs
1 parent a2a7943 commit 13db771

File tree

11 files changed

+6340
-3409
lines changed

11 files changed

+6340
-3409
lines changed

.env.example

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
###############################################
2+
# CodePush Server Configuration (.env)
3+
###############################################
4+
5+
# -------------------------------
6+
# General / Logs
7+
# -------------------------------
8+
# 클론시 유일한 환경변수 값
9+
COMPOSE_PROJECT_NAME=code-push-server
10+
LOG_LEVEL=debug
11+
LOG_FORMAT=text
12+
13+
# -------------------------------
14+
# Database (MySQL)
15+
# - 유저/앱/패키지 메타데이터 저장
16+
# -------------------------------
17+
RDS_USERNAME=codepush
18+
RDS_PASSWORD=codepush
19+
RDS_DATABASE=codepush
20+
RDS_HOST=127.0.0.1
21+
RDS_PORT=3306
22+
23+
# -------------------------------
24+
# Storage Settings
25+
# storageType: local | s3 | qiniu | oss | tencentcloud
26+
# -------------------------------
27+
STORAGE_TYPE=local
28+
29+
# Local storage (default)
30+
# 저장 파일이 위치할 경로 (미설정 시 OS tmpdir 사용)
31+
STORAGE_DIR=./storage
32+
33+
# 파일 다운로드 URL - 반드시 본인 서버 URL로 수정
34+
LOCAL_DOWNLOAD_URL=http://127.0.0.1:3000/download
35+
36+
# 공통 Download URL 우선순위:
37+
# LOCAL_DOWNLOAD_URL > DOWNLOAD_URL
38+
DOWNLOAD_URL=http://127.0.0.1:3000/download
39+
40+
# -------------------------------
41+
# JWT Token
42+
# -------------------------------
43+
TOKEN_SECRET=REPLACE_WITH_RANDOM_LONG_SECRET
44+
45+
# -------------------------------
46+
# Common Behavior
47+
# -------------------------------
48+
ALLOW_REGISTRATION=true
49+
TRY_LOGIN_TIMES=4
50+
DIFF_NUMS=3
51+
DATA_DIR=./data
52+
UPDATE_CHECK_CACHE=false
53+
ROLLOUT_CLIENT_UNIQUE_ID_CACHE=false
54+
55+
# -------------------------------
56+
# Redis (optional: only needed for login attempt limit or caching)
57+
# -------------------------------
58+
REDIS_HOST=127.0.0.1
59+
REDIS_PORT=6379
60+
REDIS_PASSWORD=
61+
REDIS_DB=0
62+
63+
# -------------------------------
64+
# Email SMTP (optional: only used for registration + verification)
65+
# -------------------------------
66+
SMTP_HOST=
67+
SMTP_PORT=465
68+
SMTP_USERNAME=
69+
SMTP_PASSWORD=
70+
71+
# -------------------------------
72+
# Cloud Storage (Optional)
73+
# Qiniu / S3 / OSS / Tencent Cloud
74+
# -------------------------------
75+
QINIU_ACCESS_KEY=
76+
QINIU_SECRET_KEY=
77+
QINIU_BUCKET_NAME=
78+
QINIU_DOWNLOAD_URL=
79+
80+
AWS_ACCESS_KEY_ID=
81+
AWS_SECRET_ACCESS_KEY=
82+
AWS_SESSION_TOKEN=
83+
AWS_BUCKET_NAME=
84+
AWS_REGION=
85+
AWS_DOWNLOAD_URL=
86+
87+
OSS_ACCESS_KEY_ID=
88+
OSS_SECRET_ACCESS_KEY=
89+
OSS_ENDPOINT=
90+
OSS_BUCKET_NAME=
91+
OSS_PREFIX=
92+
OSS_DOWNLOAD_URL=
93+
94+
COS_ACCESS_KEY_ID=
95+
COS_SECRET_ACCESS_KEY=
96+
COS_BUCKET_NAME=
97+
COS_REGION=
98+
COS_DOWNLOAD_URL=
99+

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ node_modules/
1717
# vs code
1818
.history
1919
.idea
20+
21+
# environment variables
22+
.env

README.ko.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# CodePush Server ![Node.js CI](https://github.com/shm-open/code-push-server/workflows/Node.js%20CI/badge.svg)
2+
3+
[[영어 버전 English]](./README.md) [[중국어 버전 中文版]](./README.cn.md)
4+
5+
CodePush Server는 CodePush 프로그램 서버입니다.
6+
Microsoft 공식 CodePush 서비스는 아시아 지역에서 속도가 느린 경우가 많기 때문에, 우리는 자체 서버를 구축하여 사용합니다.
7+
8+
- (해당 Repo의 오너가 중국인이므로 중국어 위주의 안내를 단순 한국어로 번역 했음을 미리 안내합니다.)
9+
10+
## Requirement
11+
12+
- Node.js v24.6.0
13+
- npm install -g install @shm-open/code-push-cli
14+
15+
## 이 포크(Fork)에 대하여
16+
17+
원본 프로젝트인 [code-push-server](https://github.com/lisong/code-push-server)가 현재 활발히 유지·보수되고 있지 않기 때문에, 우리는 다음 목적을 위해 이 포크를 만들었습니다:
18+
19+
- 의존성을 최신 상태로 유지
20+
- 최신 공식 CodePush 클라이언트와의 호환성 문제 해결
21+
- 공식 `react-native-code-push` 클라이언트만 사용하기 때문에,
22+
[is_use_diff_text](https://github.com/lisong/code-push-server#advance-feature) 같은 커스텀 기능은 지원하지 않습니다.
23+
- 프로덕션에서는 `react-native-code-push`만 사용합니다.
24+
다른 CodePush 클라이언트도 대부분 동일하게 동작할 것이지만, 문제가 있다면 Issue 또는 PR 환영합니다.
25+
26+
## 지원되는 저장소(Storage) 모드
27+
28+
- local: 로컬 머신(서버 디스크)에 번들 파일 저장
29+
- qiniu: [qiniu](http://www.qiniu.com/)에 저장
30+
- s3: [AWS S3](https://aws.amazon.com/)에 저장
31+
- oss: [Alibaba Cloud OSS](https://www.aliyun.com/product/oss)에 저장
32+
- tencentcloud: [Tencent Cloud COS](https://cloud.tencent.com/product/cos)에 저장
33+
34+
## CodePush 핫 업데이트 올바르게 사용하기
35+
36+
- Apple App은 핫 업데이트 사용을 허용하지만,
37+
[Apple 개발자 약관](https://developer.apple.com/programs/ios/information/iOS_Program_Information_4_3_15.pdf)에 따라 사용자 경험을 해치지 않도록 **반드시 Silent Update(무알림 업데이트)** 로만 사용해야 합니다.
38+
39+
Google Play는 silent update를 허용하지 않으며, **업데이트 안내 팝업을 반드시 표시해야 합니다.**
40+
41+
중국 Android 마켓은 **Silent Update만 허용**합니다.
42+
팝업을 띄우면 “최신 버전의 바이너리 앱을 제출하세요”라는 이유로 반려될 수 있습니다.
43+
44+
- React Native는 플랫폼별로 bundle 파일이 다르기 때문에,
45+
CodePush Server 사용 시 **iOS/Android 앱을 각각 따로 생성**해야 합니다.
46+
예: `CodePushDemo-ios`, `CodePushDemo-android`
47+
48+
- `react-native-code-push`는 리소스 파일만 업데이트하고,
49+
**Java / Objective-C 네이티브 코드는 업데이트하지 않습니다.**
50+
51+
따라서 npm 패키지 버전을 올렸는데 해당 패키지가 네이티브 코드를 변경했다면,
52+
반드시 **앱 버전(ios: Info.plist의 CFBundleShortVersionString / android: build.gradle의 versionName)** 을 증가시키고
53+
**새로운 앱을 스토어에 제출해야 합니다.**
54+
55+
- `code-push release-react` 명령을 사용하여 배포할 것을 추천합니다.
56+
(예: `code-push release-react CodePushDemo-ios ios -d Production`)
57+
이 명령은 번들 생성과 배포를 한 번에 수행합니다.
58+
59+
- App Store에 새 버전을 제출할 때는 반드시 **해당 버전에 대한 초기 CodePush 릴리즈도 함께 업로드**해야 합니다.
60+
이후 모든 CodePush 릴리즈는 이 초기 버전을 기준으로 diff 패치를 생성하기 때문입니다.
61+
62+
### CodePush CLI
63+
64+
- 앱 관리 및 CodePush 릴리즈 배포는 다음 [code-push-cli](https://github.com/shm-open/code-push-cli)를 사용하세요.
65+
66+
### 클라이언트
67+
68+
- [React Native](https://github.com/Microsoft/react-native-code-push)
69+
- [Cordova](https://github.com/microsoft/cordova-plugin-code-push)
70+
- [Capacitor](https://github.com/mapiacompany/capacitor-codepush)
71+
72+
## CodePush Server 설치 방법
73+
74+
- [docker](./docs/install-server-by-docker.md) (추천)
75+
- [수동 설치](./docs/install-server.md)
76+
77+
## 기본 계정 정보
78+
79+
- 계정: `admin`
80+
- 비밀번호: `123456`
81+
82+
## FAQ
83+
84+
- [비밀번호 변경](https://github.com/lisong/code-push-server/issues/43)
85+
- [code-push-server 일반적인 문제 해결 (중국어)](https://github.com/lisong/code-push-server/issues/135)
86+
- 지원되는 targetBinaryVersion 형식
87+
- `*`
88+
- `1.2.3`
89+
- `1.2` / `1.2.*`
90+
- `1.2.3 - 1.2.7`
91+
- `>=1.2.3 <1.2.7`
92+
- `~1.2.3`
93+
- `^1.2.3`

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CodePush Server ![Node.js CI](https://github.com/shm-open/code-push-server/workflows/Node.js%20CI/badge.svg)
22

3-
[[Chinese version 中文版]](./README.cn.md)
3+
[[Korean version 한국어]](./README.ko.md) [[Chinese version 中文版]](./README.cn.md)
44

55
CodePush Server is a CodePush program server. The official Microsoft CodePush service is slow in China, therefore we use this to host our own server.
66

@@ -9,7 +9,7 @@ CodePush Server is a CodePush program server. The official Microsoft CodePush se
99
Since the original [code-push-server](https://github.com/lisong/code-push-server) project is not actively maintained, we created this fork to:
1010

1111
- keep dependencies up-to-date
12-
- fix any compatiblity issue with latest official code-push clients
12+
- fix any compatibility issue with latest official code-push clients
1313
- we only stick to official react-native-code-push client, therefore the customized feature like [is_use_diff_text](https://github.com/lisong/code-push-server#advance-feature) won't be supported.
1414
- we only use react-native-code-push client in production, most of the feature should be no difference for the rest CodePush clients, but if you found any, issues and PRs are always welcome.
1515

@@ -23,11 +23,11 @@ Since the original [code-push-server](https://github.com/lisong/code-push-server
2323

2424
## Correct use of code-push hot update
2525

26-
- Apple App allows the use of hot updates [Apple's developer agreement](https://developer.apple.com/programs/ios/information/iOS_Program_Information_4_3_15.pdf), in order not to affect the user experience, it is stipulated that silent updates must be used. Google Play cannot use silent updates, and a pop-up box must inform users that there is an update to the app. China's android market must use silent updates (if the pop-up box prompts, the app will be rejected by the reason of "please upload the latest version of the binary application package").
27-
- The bundles of react-native are different for different platforms. When using code-push-server, you must create different applications to distinguish them (eg. CodePushDemo-ios and CodePushDemo-android)
28-
- react-native-code-push only updates resource files, not java and Objective C, so when npm upgrades the version of the dependent package, if the localized implementation used by the dependent package, the application version number must be changed at this time (ios modify Info CFBundleShortVersionString in .plist, android modify versionName in build.gradle), then recompile the app and publish it to the app store.
29-
- It is recommended to use the code-push release-react command to release the application, which combines the packaging and release commands (eg. code-push release-react CodePushDemo-ios ios -d Production)
30-
- Every time a new version is submitted to the App Store, an initial version should also be released to code-push-server based on the submitted version. (Because every time a version is released to code-push-server, code-puse-server will compare it with the initial version to generate a patch version)
26+
- Apple App allows the use of hot updates [Apple's developer agreement](https://developer.apple.com/programs/ios/information/iOS_Program_Information_4_3_15.pdf), in order not to affect the user experience, it is stipulated that silent updates must be used. Google Play cannot use silent updates, and a pop-up box must inform users that there is an update to the app. China's android market must use silent updates (if the pop-up box prompts, the app will be rejected by the reason of "please upload the latest version of the binary application package").
27+
- The bundles of react-native are different for different platforms. When using code-push-server, you must create different applications to distinguish them (eg. CodePushDemo-ios and CodePushDemo-android)
28+
- react-native-code-push only updates resource files, not java and Objective C, so when npm upgrades the version of the dependent package, if the localized implementation used by the dependent package, the application version number must be changed at this time (ios modify Info CFBundleShortVersionString in .plist, android modify versionName in build.gradle), then recompile the app and publish it to the app store.
29+
- It is recommended to use the code-push release-react command to release the application, which combines the packaging and release commands (eg. code-push release-react CodePushDemo-ios ios -d Production)
30+
- Every time a new version is submitted to the App Store, an initial version should also be released to code-push-server based on the submitted version. (Because every time a version is released to code-push-server, code-puse-server will compare it with the initial version to generate a patch version)
3131

3232
### CodePush Cli
3333

0 commit comments

Comments
 (0)