feat: 실제 패치 완료된 main.cjs 추가 (스크립트 실행 없이 바로 사용 가능)

This commit is contained in:
syskiller
2026-08-26 09:29:08 +09:00
parent f44ccaf0fc
commit c3c91d4573
2 changed files with 4112 additions and 5 deletions
+24 -5
View File
@@ -11,8 +11,12 @@
- `translation.json` — 클라이언트(브라우저) UI 문자열, 1,712개 키, 100% 번역 완료.
- `server.json` — 서버 문자열, 283개 키, 100% 번역 완료.
- `patch_main_cjs.js` — 컴파일된 `main.cjs` 서버 번들에 `ko`를 선택 가능한 언어로
등록하는 패치 스크립트 (왜 이게 필요한지는 스크립트 상단 주석 참고).
- `main.cjs` — **이미 패치가 적용된, 바로 쓸 수 있는 서버 번들** (`triliumnext/notes:latest`,
빌드일 2025-06-07, appVersion 0.95.0 기준). 아래 설치 방법 2번을 직접 실행할 필요 없이
이 파일로 바로 bind-mount 하면 됩니다.
- `patch_main_cjs.js` — 위 `main.cjs`를 만들어낸 패치 스크립트. 다른 버전의 이미지를 쓰거나
이미지가 업데이트된 경우, 이 스크립트를 새 원본 `main.cjs`에 다시 돌려서 직접 패치된
파일을 만들어야 합니다 (왜 이게 필요한지는 스크립트 상단 주석 참고).
- `docker-compose.yml.example` — 아래 설치 방법을 그대로 반영한 예시 compose 파일.
`triliumnext/notes:latest` (빌드일 2025-06-07, appVersion 0.95.0) 기준으로 테스트했습니다.
@@ -20,12 +24,25 @@
`patch_main_cjs.js`를 새 이미지에 돌렸을 때 `[skip]`이 출력되면, 스크립트가 찾는 문자열
패턴이 그 빌드에서 바뀐 것이니 새 빌드에서 같은 패턴을 다시 찾아 스크립트를 갱신해야 합니다.
## 설치 방법
## 설치 방법 (빠른 길 — 이미지 버전이 같다면)
1. **번역 파일을 컨테이너에 반영** — 반드시 `docker-compose.yml`에 bind-mount로 등록할 것
(아래 "주의" 항목 참고, `docker cp`로만 넣으면 안 됨):
이 저장소의 `main.cjs`는 이미 패치가 끝난 파일입니다. `triliumnext/notes:latest`
(appVersion 0.95.0, 빌드일 2025-06-07)를 그대로 쓴다면 아래 1, 3번만 하면 됩니다.
1. **번역 파일 + `main.cjs`를 `docker-compose.yml`에 bind-mount로 등록**
(`docker cp`로만 넣지 말 것 — 아래 "문제 4" 참고):
- `main.cjs` → `/usr/src/app/main.cjs`
- `translation.json` → `/usr/src/app/public/translations/ko/translation.json`
- `server.json` → `/usr/src/app/assets/translations/ko/server.json`
2. `docker-compose.yml.example`을 참고해서 그대로 적용, 컨테이너 시작.
3. 앱 안에서 **옵션 → 언어 및 지역**에서 "한국어" 선택.
## 설치 방법 (다른 이미지 버전을 쓰는 경우)
이미지 버전이 다르면 `main.cjs`의 난독화된 변수명/위치가 달라 이 저장소의 `main.cjs`가
그대로 안 맞을 수 있습니다. 이 경우 직접 패치해야 합니다:
1. 번역 파일은 위와 동일하게 bind-mount.
2. **컨테이너의 원본(패치 안 된) `main.cjs`를 추출**하고 패치 스크립트 실행:
```bash
docker create --name trilium-tmp triliumnext/notes:latest
@@ -34,6 +51,8 @@
node patch_main_cjs.js ./main.cjs
node --check ./main.cjs # 반드시 배포 전에 문법 검사
```
`[skip]`이 출력되면 스크립트가 찾는 문자열 패턴이 그 빌드에서 바뀐 것이니, 새 빌드에서
같은 패턴을 다시 찾아 스크립트를 갱신해야 합니다 (아래 "빌드마다 달라짐" 참고).
3. **패치된 `main.cjs`를 `docker-compose.yml`에서 원본 위치에 bind-mount** —
`docker-compose.yml.example` 참고:
```yaml
+4088
View File
File diff suppressed because one or more lines are too long