From 9d8bab3470ddd9d3af2701de99fde5902f2d317d Mon Sep 17 00:00:00 2001 From: happybell80 Date: Tue, 10 Mar 2026 23:09:32 +0900 Subject: [PATCH] docs: relocate infra troubleshooting to infra docs --- ...žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md | 120 +---------- .../250930_opensearch_hdd_migration.md | 65 +----- ...skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md | 198 +----------------- ...260115_postgresql_neo4j_tcp_healthcheck.md | 48 +---- ..._git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md | 84 +------- 5 files changed, 25 insertions(+), 490 deletions(-) diff --git a/journey/troubleshooting/250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md b/journey/troubleshooting/250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md index 69241bf..70cbdad 100644 --- a/journey/troubleshooting/250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md +++ b/journey/troubleshooting/250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md @@ -1,117 +1,7 @@ -# 250731 ๋กœ๊ทธ ์ €์žฅ์†Œ SSHFS ์„ค์ •๊ณผ ํ…œํ”Œ๋ฆฟ ํ•ด๊ฒฐ์ฑ… +# 250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ… -## ๋ฌธ์ œ ์ƒํ™ฉ +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -### ์ดˆ๊ธฐ ๋ฌธ์ œ -- rb10508 ๋“ฑ ๋กœ๋น™ ์ปจํ…Œ์ด๋„ˆ๋“ค์˜ ๋กœ๊ทธ๊ฐ€ SSD์— ์ €์žฅ๋˜๊ณ  ์žˆ์Œ -- CLAUDE.md์— ๋ช…์‹œ๋œ ๋Œ€๋กœ ๋กœ๊ทธ๋Š” HDD(/mnt/hdd/logs/)์— ์ €์žฅ๋˜์–ด์•ผ ํ•จ -- 51123 ์„œ๋ฒ„์— HDD๊ฐ€ ์žˆ๊ณ , 51124 ์„œ๋ฒ„์—์„œ ์ ‘๊ทผ ํ•„์š” - -### SSHFS๊ฐ€ ์ ํ•ฉํ•œ ์ด์œ  -1. ์ด๋ฏธ SSH ํ‚ค ์„ค์ • ์™„๋ฃŒ - ์ถ”๊ฐ€ ์ธ์ฆ ์„ค์ • ๋ถˆํ•„์š” -2. ๋‹ค์–‘ํ•œ ๋กœ๊ทธ ํ˜•ํƒœ ์ง€์› - stdout/stderr๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒŒ์ผ ๋กœ๊ทธ๋„ ์ €์žฅ -3. ์„ค์ • ์ตœ์†Œํ™” - 51123 ์„œ๋ฒ„๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ๋งŒ๋“ค๋ฉด ๋จ -4. ํˆฌ๋ช…ํ•œ ์ž‘๋™ - ์ปจํ…Œ์ด๋„ˆ๋Š” ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ - -## ์‹ค์ œ ์„ค์ • ๊ณผ์ • - -### ์˜คํ›„ 10์‹œ 48๋ถ„ - 51123 ์„œ๋ฒ„ ์ž‘์—… -```bash -# 1. 51124์„œ๋ฒ„ ์ „์šฉ ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ -sudo mkdir -p /mnt/hdd/logs/51124-server -sudo chown admin:admin /mnt/hdd/logs/51124-server - -# 2. 51124์„œ๋ฒ„์˜ SSH ๊ณต๊ฐœํ‚ค ์ถ”๊ฐ€ -# 51124 ์„œ๋ฒ„์˜ ~/.ssh/id_rsa_deploy.pub ๋‚ด์šฉ์„ ~/.ssh/authorized_keys์— ์ถ”๊ฐ€ - -# 3. cleanup ์Šคํฌ๋ฆฝํŠธ์— 51124 ์„œ๋ฒ„ ๋กœ๊ทธ ์ •๋ฆฌ ์ถ”๊ฐ€ -# 51124 ์„œ๋ฒ„ ๋กœ๊ทธ๋„ 30์ผ ํ›„ ์ž๋™ ์ •๋ฆฌ๋˜๋„๋ก ์„ค์ • -``` - -### ์˜คํ›„ 10์‹œ 50๋ถ„ - 51124 ์„œ๋ฒ„ ์ž‘์—… -```bash -# 1. SSHFS ์„ค์น˜ -sudo apt install -y sshfs - -# 2. ๋งˆ์šดํŠธ ํฌ์ธํŠธ ์ƒ์„ฑ -sudo mkdir -p /mnt/51123logs - -# 3. ๋งˆ์šดํŠธ ์‹œ๋„ (์ดˆ๊ธฐ ์‹คํŒจ - SSH ํ‚ค ๋ฌธ์ œ) -sudo sshfs -o allow_other,reconnect admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs -p 51123 -``` - -### ์˜คํ›„ 10์‹œ 51๋ถ„ - SSHFS ๋งˆ์šดํŠธ ์„ฑ๊ณต -```bash -# 1. SSH ํ‚ค ํŒŒ์ผ ์ง€์ •ํ•˜์—ฌ ๋งˆ์šดํŠธ -sshfs -o IdentityFile=/home/admin/.ssh/id_rsa_deploy admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs -p 51123 - -# 2. ๋งˆ์šดํŠธ ํ™•์ธ -df -h /mnt/51123logs -# ๊ฒฐ๊ณผ: 916G ํฌ๊ธฐ์˜ HDD๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์šดํŠธ๋จ - -# 3. ํ…Œ์ŠคํŠธ -mkdir -p /mnt/51123logs/rb10508 -echo "SSHFS mount test - $(date)" > /mnt/51123logs/rb10508/test.log -``` - -## ๊ถŒํ•œ ๋ฌธ์ œ์˜ ๋”œ๋ ˆ๋งˆ - -### ๋ฐœ๊ฒฌ๋œ ๋ฌธ์ œ์  -1. **SSHFS ๋งˆ์šดํŠธ**: admin(UID 1000)์œผ๋กœ ๋งˆ์šดํŠธ๋จ -2. **Docker ์ปจํ…Œ์ด๋„ˆ**: UID 999๋กœ ์‹คํ–‰ -3. **๊ถŒํ•œ ๋ถˆ์ผ์น˜**: Docker๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ์‹œ ์‹คํŒจ - -### ๊ฒ€ํ† ํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ๋“ค - -#### 1. ์‹ฌ๋ณผ๋ฆญ ๋งํฌ -```bash -ln -s /mnt/51123logs/rb10508 logs -``` -- ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋กœ๋น™๋งˆ๋‹ค ์ˆ˜๋™ ์ž‘์—… ํ•„์š” - -#### 2. docker-compose.yml ์ง์ ‘ ์ˆ˜์ • -```yaml -volumes: - - /mnt/51123logs/rb10508:/code/logs:rw -``` -- ๋ช…ํ™•ํ•˜์ง€๋งŒ ์—ญ์‹œ ๋กœ๋น™๋งˆ๋‹ค ์ˆ˜์ • ํ•„์š” - -#### 3. SSHFS UID ๋งคํ•‘ -```bash -sudo sshfs -o allow_other,uid=999,gid=999 ... -``` -- root ๊ถŒํ•œ ํ•„์š”, ๋ณต์žกํ•จ - -#### 4. ์‚ฌ์ „ ๊ถŒํ•œ ์„ค์ • -```bash -sudo chown -R 999:999 /mnt/hdd/logs/51124-server/ -``` -- ์—ฌ์ „ํžˆ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ˆ˜๋™ ์ƒ์„ฑ ํ•„์š” - -## ์ œ์•ˆ๋œ ํ•ด๊ฒฐ์ฑ… (๋ฏธ๊ตฌํ˜„) - -**์ฐธ๊ณ **: ์ด ํ…œํ”Œ๋ฆฟ ๋ฐฉ์‹์€ ์ œ์•ˆ๋งŒ ๋˜์—ˆ๊ณ , ์‹ค์ œ๋กœ๋Š” 250801 ํฌ๋ก ์žก ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐ๋จ. -- ํฌ๋ก ์žก์œผ๋กœ ๋งค์ผ ์ƒˆ๋ฒฝ 3์‹œ rsync ๋™๊ธฐํ™” -- ์ž์„ธํ•œ ๋‚ด์šฉ์€ [250801_claude_ํฌ๋ก ์žก๋กœ๊ทธ๋™๊ธฐํ™”์„ค์ •.md](./250801_claude_ํฌ๋ก ์žก๋กœ๊ทธ๋™๊ธฐํ™”์„ค์ •.md) ์ฐธ์กฐ - -## ๊ตํ›ˆ -1. **์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์€ ํ•ญ์ƒ SSH ํ‚ค ๋จผ์ €**: 51123-51124 ๊ฐ„ SSH ํ‚ค๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์•˜์Œ -2. **๋งˆ์šดํŠธ ํฌ์ธํŠธ ์ด๋ฆ„ ๊ทœ์น™**: /mnt/51123logs์ฒ˜๋Ÿผ ์—ฐ๊ฒฐํ•˜๋Š” ์„œ๋ฒ„ ๋ฒˆํ˜ธ๋ฅผ ๋ช…์‹œํ•˜๋ฉด ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•จ -3. **SSHFS vs NFS**: ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ ์ €์žฅ์šฉ๋„๋Š” SSHFS๊ฐ€ ์„ค์ •์ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•จ -4. **SSH ํ‚ค ํŒŒ์ผ ๋ช…์‹œ**: -o IdentityFile ์˜ต์…˜์œผ๋กœ ํŠน์ • ํ‚ค ํŒŒ์ผ ์ง€์ • ํ•„์š” -5. **์ฒ˜์Œ๋ถ€ํ„ฐ ํ…œํ”Œ๋ฆฟ ์„ค๊ณ„**: ํ•˜๋“œ์ฝ”๋”ฉ์€ ๋‚˜์ค‘์— ๊ณ ํ†ต -6. **๊ถŒํ•œ ๋ฌธ์ œ๋Š” ๋ฏธ๋ฆฌ ํ•ด๊ฒฐ**: Docker UID/GID ์ฐจ์ด ์ฃผ์˜ -7. **์ž๋™ํ™”๋Š” ํ•„์ˆ˜**: ์ˆ˜๋™ ์ž‘์—…์€ ์‹ค์ˆ˜์˜ ์›์ธ - -## ์‹ค์ œ ๊ตฌํ˜„ ์ƒํƒœ -- **250801 ํฌ๋ก ์žก ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ์™„๋ฃŒ** -- ๋งค์ผ ์ƒˆ๋ฒฝ 3์‹œ ์ž๋™ ๋™๊ธฐํ™” ์ค‘ -- 7์ผ ์ด์ƒ ๋กœ์ปฌ ๋กœ๊ทธ ์ž๋™ ์‚ญ์ œ - ---- - -์ž‘์„ฑ์ผ: 2025-07-31 -์ž‘์„ฑ์ž: Claude (51123 ์„œ๋ฒ„ - SSH ํ‚ค ๋“ฑ๋ก ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ) - Claude (51124 ์„œ๋ฒ„ - SSHFS ์„ค์ • ๋ฐ ๋งˆ์šดํŠธ) - ๋กœ์ปฌ ๊ฐœ๋ฐœ์ž (ํ…œํ”Œ๋ฆฟ ํ•ด๊ฒฐ์ฑ… ์ œ์•ˆ) -์ฃผ์ œ: ๋กœ๊ทธ ์ €์žฅ์†Œ ์ค‘์•™ํ™”๋ฅผ ์œ„ํ•œ SSHFS ์„ค์ •๊ณผ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ์ž๋™ํ™” \ No newline at end of file +- ์ƒˆ ์œ„์น˜: `250731_๋กœ๊ทธ์ €์žฅ์†Œ_SSHFS์„ค์ •๊ณผ_ํ…œํ”Œ๋ฆฟํ•ด๊ฒฐ์ฑ….md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : 23/24 ์„œ๋ฒ„ ๊ฐ„ ๋กœ๊ทธ ์ €์žฅ์†Œ ๋งˆ์šดํŠธ, SSHFS, ๊ถŒํ•œ ๋งคํ•‘, HDD ๋กœ๊ทธ ๋ณด์กด ๊ตฌ์กฐ๋ฅผ ๊ณตํ†ต ์ธํ”„๋ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/250930_opensearch_hdd_migration.md b/journey/troubleshooting/250930_opensearch_hdd_migration.md index 4859910..fb900c9 100644 --- a/journey/troubleshooting/250930_opensearch_hdd_migration.md +++ b/journey/troubleshooting/250930_opensearch_hdd_migration.md @@ -1,62 +1,7 @@ -# OpenSearch HDD ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ +# 250930_opensearch_hdd_migration -## ๋ฌธ์ œ -- OpenSearch ๋ฐ์ดํ„ฐ๊ฐ€ SSD(/var/lib/opensearch)์— ์ €์žฅ -- SSD ์šฉ๋Ÿ‰ ๋ถ€์กฑ ์šฐ๋ ค +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -## ํ•ด๊ฒฐ - -### 1. ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ -```bash -sudo mkdir -p /mnt/hdd/opensearch -sudo cp -rp /var/lib/opensearch/* /mnt/hdd/opensearch/ -sudo chown -R 1000:1000 /mnt/hdd/opensearch -``` - -### 2. ์„ค์ • ํŒŒ์ผ ๋ณ€๊ฒฝ - -**ํŒŒ์ผ**: `/home/admin/opensearch/docker-compose.yaml` -- 34๋ฒˆ ๋ผ์ธ: `/var/lib/opensearch` โ†’ `/mnt/hdd/opensearch` - -**ํŒŒ์ผ**: `/home/admin/opensearch/.gitea/workflows/cicd.yml` -- 17-19๋ฒˆ ๋ผ์ธ: `/var/lib/opensearch` โ†’ `/mnt/hdd/opensearch` -- 30-31๋ฒˆ ๋ผ์ธ: ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์ค‘๋ณต ๋ฐฉ์ง€ ์ฝ”๋“œ ์ถ”๊ฐ€ - -**ํŒŒ์ผ**: `/home/admin/opensearch/Dockerfile` -- ๋ณด์•ˆ ์ธ์ฆ์„œ COPY ๋ผ์ธ ์ œ๊ฑฐ -- `ENV plugins.security.disabled=true` ์ถ”๊ฐ€ - -### 3. ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋น„ํ™œ์„ฑํ™” -- docker-compose.yaml 15๋ฒˆ ๋ผ์ธ: `DISABLE_SECURITY_PLUGIN=true` -- ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ „์šฉ ์„œ๋น„์Šค๋กœ TLS ๋ถˆํ•„์š” - -### 4. ํ•ด๊ฒฐ ๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ -- Actions ์‹คํŒจ: TLS ์ธ์ฆ์„œ ํŒŒ์ผ ์—†์Œ โ†’ ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋น„ํ™œ์„ฑํ™”๋กœ ํ•ด๊ฒฐ -- ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์ถฉ๋Œ โ†’ Actions์— ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์ œ๊ฑฐ ์ฝ”๋“œ ์ถ”๊ฐ€ -- ์„ค์ • ์ค‘๋ณต ์—๋Ÿฌ โ†’ Dockerfile ENV ์ œ๊ฑฐ, docker-compose.yaml์—์„œ๋งŒ ์„ค์ • - -### 5. ์ตœ์ข… ์ƒํƒœ -- ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ: `/mnt/hdd/opensearch` (354MB) -- ์ปจํ…Œ์ด๋„ˆ: opensearch (opensearch-opensearch-node ์ด๋ฏธ์ง€) -- ํฌํŠธ: 9200, 9600 -- HDD ์—ฌ์œ  ๊ณต๊ฐ„: 869GB -- API ์‘๋‹ต: ์ •์ƒ -- ๋กœ๊ทธ ์ˆ˜์ง‘: fluent-bit โ†’ data-prepper โ†’ OpenSearch ์ •์ƒ - -### 6. ์ถ”๊ฐ€ ์ด์Šˆ (2025-09-30) -- **๋ฌธ์ œ**: 9/29๋ถ€ํ„ฐ ๋กœ๊ทธ ์ˆ˜์ง‘ ์ค‘๋‹จ -- **์ฆ์ƒ**: fluent-bit โ†’ data-prepper 200 OK, ํ•˜์ง€๋งŒ OpenSearch ์ €์žฅ ์‹คํŒจ -- **์—๋Ÿฌ**: `Cannot deserialize value of type java.util.ArrayList from Object value` -- **์›์ธ**: Data Prepper๊ฐ€ JSON ๋ฐฐ์—ด `[{...}]` ์š”๊ตฌ, fluent-bit์ด ๋‹จ์ผ ๊ฐ์ฒด `{...}` ์ „์†ก -- **์‹œ๋„ํ•œ ํ•ด๊ฒฐ์ฑ…**: - - json_array on ์ถ”๊ฐ€ (Fluentd ์ „์šฉ ํŒŒ๋ผ๋ฏธํ„ฐ, Fluent Bit์—๋Š” ์—†์Œ) - - Flush 5์ดˆ, Grace 30 ์„ค์ • (๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ์‹œ๋„) - - Format json_lines (Data Prepper ๋น„ํ˜ธํ™˜) -- **์ƒํƒœ**: ๋ฏธํ•ด๊ฒฐ, ์ถ”๊ฐ€ ์กฐ์‚ฌ ํ•„์š” - -### 7. ์ปค๋ฐ‹ ์ด๋ ฅ -- 7466068: HDD ๊ฒฝ๋กœ ๋ณ€๊ฒฝ -- 5f7bf49: Actions ์›Œํฌํ”Œ๋กœ์šฐ ๊ฒฝ๋กœ ์ˆ˜์ • -- 2df7afb: ๋ณด์•ˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋น„ํ™œ์„ฑํ™” -- 8f667d3: DISABLE_SECURITY_PLUGIN ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ˆ˜์ • -- 66b5ee8: Dockerfile ์ค‘๋ณต ์„ค์ • ์ œ๊ฑฐ \ No newline at end of file +- ์ƒˆ ์œ„์น˜: `250930_opensearch_hdd_migration.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : OpenSearch ์ €์žฅ ๊ฒฝ๋กœ, HDD ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ๋กœ๊ทธ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์Šคํ† ๋ฆฌ์ง€ ์šด์˜ ๋ฌธ์ œ๋ฅผ ๊ณตํ†ต ์ธํ”„๋ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md b/journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md index 2a75b58..96ae1b6 100644 --- a/journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md +++ b/journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md @@ -1,195 +1,7 @@ -# skill-rag-file SSHFS allow_other ๊ถŒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ +# 251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ -**๋‚ ์งœ**: 2025-10-14 -**์ž‘์„ฑ์ž**: Claude -**๊ด€๋ จ ํŒŒ์ผ**: `skill-rag-file/docker-compose.yml` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ - -### ์ฆ์ƒ -- skill-rag-file ์ปจํ…Œ์ด๋„ˆ๊ฐ€ `/mnt/51123data/documents/`์— ํŒŒ์ผ ์ €์žฅ -- ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ๋งŒ ํŒŒ์ผ ๋ณด์ž„ -- ํ˜ธ์ŠคํŠธ์™€ 51123 ์„œ๋ฒ„ HDD์—๋Š” ์ €์žฅ ์•ˆ๋จ -- ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ ์‹œ ํŒŒ์ผ ์†์‹ค - -### ๊ทผ๋ณธ ์›์ธ -1. **SSHFS ๋งˆ์šดํŠธ**: `user_id=1001,group_id=1000` (admin:xusers) -2. **์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰**: root (UID 0) -3. **๊ถŒํ•œ ๋ถˆ์ผ์น˜**: FUSE๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์šดํŠธํ•œ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ -4. **allow_other ๋ฏธ์‚ฌ์šฉ**: ๋‹ค๋ฅธ UID ์ ‘๊ทผ ์ฐจ๋‹จ - -### ๊ฒ€์ฆ -```bash -# ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ -docker exec skill-rag-file ls /mnt/51123data/documents/79441171.../2025-10/ -# โ†’ ํŒŒ์ผ ๋ณด์ž„ - -# ํ˜ธ์ŠคํŠธ -ls /mnt/51123data/documents/79441171.../2025-10/ -# โ†’ No such file or directory -``` - ---- - -## ํ•ด๊ฒฐ ๊ณผ์ • - -### 1๋‹จ๊ณ„: /etc/fuse.conf ์ˆ˜์ • - -```bash -sudo sed -i 's/^#user_allow_other/user_allow_other/' /etc/fuse.conf -``` - -**๊ฒฐ๊ณผ**: -``` -user_allow_other -``` - -**์˜๋ฏธ**: ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ `allow_other` ์˜ต์…˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - -### 2๋‹จ๊ณ„: SSHFS ์žฌ๋งˆ์šดํŠธ - -```bash -# ๊ธฐ์กด ๋งˆ์šดํŠธ ํ•ด์ œ -sudo fusermount -u /mnt/51123data - -# allow_other ์˜ต์…˜ ์ถ”๊ฐ€ํ•˜์—ฌ ์žฌ๋งˆ์šดํŠธ -sshfs -o allow_other,default_permissions,IdentityFile=/home/admin/.ssh/id_rsa_deploy,reconnect,uid=1001,gid=1000 admin@192.168.219.45:/mnt/hdd/data /mnt/51123data -p 51123 -``` - -**๋งˆ์šดํŠธ ์˜ต์…˜ ํ™•์ธ**: -```bash -mount | grep 51123data -# admin@192.168.219.45:/mnt/hdd/data on /mnt/51123data type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1001,group_id=1000,default_permissions,allow_other) -``` - -### 3๋‹จ๊ณ„: docker-compose.yml ๋ณผ๋ฅจ ์ถ”๊ฐ€ - -**ํŒŒ์ผ**: skill-rag-file/docker-compose.yml - -```yaml -volumes: - - ./chroma_db:/app/chroma_db - - ./logs:/app/logs - - ./.env:/app/.env:ro - - /mnt/51123data:/mnt/51123data:rw # ์ถ”๊ฐ€ -``` - -### 4๋‹จ๊ณ„: ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘ - -```bash -cd /home/admin/ivada_project/skill-rag-file -docker compose down -docker compose up -d -``` - -**๊ฒฐ๊ณผ**: ์ปจํ…Œ์ด๋„ˆ ์ •์ƒ ์‹œ์ž‘ (DOCS/250915 ๋ฌธ์„œ์˜ "mkdir /mnt/51123data: file exists" ์—๋Ÿฌ ๋ฐœ์ƒ ์•ˆํ•จ) - ---- - -## ๊ฒ€์ฆ ๊ฒฐ๊ณผ - -### ํ…Œ์ŠคํŠธ 1: ํŒŒ์ผ ์“ฐ๊ธฐ -```bash -docker exec skill-rag-file touch /mnt/51123data/documents/test_write_from_container.txt -ls -la /mnt/51123data/documents/ | grep test_write -# -rw-r--r-- 1 admin xusers 0 10์›” 14 01:01 test_write_from_container.txt -``` - -**๊ฒฐ๊ณผ**: โœ… ์ปจํ…Œ์ด๋„ˆ โ†’ ํ˜ธ์ŠคํŠธ ์ฆ‰์‹œ ๋™๊ธฐํ™” - -### ํ…Œ์ŠคํŠธ 2: ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ -```bash -docker exec skill-rag-file mkdir -p /mnt/51123data/documents/test_team/2025-10 -docker exec skill-rag-file touch /mnt/51123data/documents/test_team/2025-10/test.pdf -ls -la /mnt/51123data/documents/test_team/2025-10/ -# total 8 -# drwxr-xr-x 1 admin xusers 4096 10์›” 14 01:01 . -# -rw-r--r-- 1 admin xusers 0 10์›” 14 01:01 test.pdf -``` - -**๊ฒฐ๊ณผ**: โœ… ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐ ๊ถŒํ•œ ๋งคํ•‘ ์ •์ƒ - -### ํ…Œ์ŠคํŠธ 3: ์˜์†์„ฑ -```bash -docker compose down && docker compose up -d -docker exec skill-rag-file ls /mnt/51123data/documents/ | grep test -# test.txt -# test_team -# test_write_from_container.txt -``` - -**๊ฒฐ๊ณผ**: โœ… ์žฌ์‹œ์ž‘ ํ›„์—๋„ ํŒŒ์ผ ์œ ์ง€ - ---- - -## ํ•ต์‹ฌ ์„ค์ • ์š”์•ฝ - -### /etc/fuse.conf -``` -user_allow_other -``` - -### SSHFS ๋งˆ์šดํŠธ ๋ช…๋ น -```bash -sshfs -o allow_other,default_permissions,IdentityFile=/home/admin/.ssh/id_rsa_deploy,reconnect,uid=1001,gid=1000 admin@192.168.219.45:/mnt/hdd/data /mnt/51123data -p 51123 -``` - -### docker-compose.yml -```yaml -volumes: - - /mnt/51123data:/mnt/51123data:rw -``` - ---- - -## ๊ตํ›ˆ - -### FUSE ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ… -- FUSE๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์šดํŠธํ•œ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ -- ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋‹ค๋ฅธ UID ์‚ฌ์šฉ ์‹œ ์ ‘๊ทผ ๋ถˆ๊ฐ€ -- `allow_other` ์˜ต์…˜์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ - -### allow_other ์‚ฌ์šฉ ์กฐ๊ฑด -- `/etc/fuse.conf`์— `user_allow_other` ํ•„์ˆ˜ -- `default_permissions` ์˜ต์…˜ ๊ถŒ์žฅ (์ผ๋ฐ˜ ํŒŒ์ผ์‹œ์Šคํ…œ ๊ถŒํ•œ ์ฒดํฌ) -- ๋ณด์•ˆ ์œ„ํ—˜: ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์‹ ์ค‘ํžˆ ์‚ฌ์šฉ - -### Docker ๋ณผ๋ฅจ ๋งˆ์šดํŠธ -- SSHFS ๋งˆ์šดํŠธ ํฌ์ธํŠธ๋ฅผ Docker ๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ -- `allow_other` ์—†์œผ๋ฉด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—๋งŒ ํŒŒ์ผ ์กด์žฌ (ํœ˜๋ฐœ์„ฑ) -- ๋ณผ๋ฅจ ๋งˆ์šดํŠธ ์‹œ `/mnt/51123data:/mnt/51123data:rw` ํ˜•ํƒœ๋กœ ์ „์ฒด ๋งˆ์šดํŠธ ํฌ์ธํŠธ ๋ฐ”์ธ๋“œ - -### ๊ณผ๊ฑฐ ๋ฌธ์„œ ์˜ค๋ฅ˜ -- DOCS/250915: "๋ณผ๋ฅจ ์ œ๊ฑฐ"๊ฐ€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹˜ โ†’ ์ž„์‹œ ์šฐํšŒ์ฑ… -- DOCS/250731: "Docker SSHFS ์ถฉ๋Œ"๋กœ ๋กค๋ฐฑ โ†’ allow_other๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ -- ๊ตํ›ˆ: FUSE ๊ถŒํ•œ ๋ชจ๋ธ ์ดํ•ด ๋ถ€์กฑ์œผ๋กœ ์ž˜๋ชป๋œ ๊ฒฐ๋ก  ๋„์ถœ - ---- - -## ์ถ”๊ฐ€ ๋ฐœ๊ฒฌ (2025-10-14 23:30) - -### ๋ฌธ์ œ: SSHFS ๊ธด ํŒŒ์ผ๋ช… ์ฒ˜๋ฆฌ ์‹คํŒจ - -**์ฆ์ƒ**: -- coldmail workflow ์‹คํ–‰ ์‹œ PDF ์—…๋กœ๋“œ 500 ์—๋Ÿฌ -- ๋กœ๊ทธ: `OSError: [Errno 74] Bad message` -- ํŒŒ์ผ๋ช… ์˜ˆ์‹œ: `1d8072302cf85eee...pdf` (150์ž ์ด์ƒ) - -**์›์ธ**: -- upload.py:82: `f"{file_hash}_{file.filename}"` โ†’ 150์ž ์ดˆ๊ณผ -- SSHFS ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ๋ช… ๊ธธ์ด ์ œํ•œ - -**๊ตฌํ˜„ ์™„๋ฃŒ** (์ปค๋ฐ‹ dfe6978): -- โœ… skill-rag-file/app/api/upload.py:73-87,106-107 ์ˆ˜์ • ์™„๋ฃŒ -- โœ… import uuid ์ถ”๊ฐ€ (upload.py:5) -- โœ… coldmail workflow PDF ์ฒจ๋ถ€ํŒŒ์ผ ์žฌํ…Œ์ŠคํŠธ ๋Œ€๊ธฐ - ---- - -## ๊ด€๋ จ ๋ฌธ์„œ - -- 250915_skill-rag-file_Docker_๋นŒ๋“œ_๋ฐ_๋ณผ๋ฅจ_๋งˆ์šดํŠธ_๋ฌธ์ œ.md -- 250915_skill-rag-file_์ดˆ๊ธฐ_๊ตฌ์ถ•.md -- 250731_claude_SSHFS๊ถŒํ•œ๋ฌธ์ œํ•ด๊ฒฐ.md +- ์ƒˆ ์œ„์น˜: `251014_skill-rag-file_sshfs_allow_other_ํ•ด๊ฒฐ.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : SSHFS ๋งˆ์šดํŠธ, FUSE ๊ถŒํ•œ, ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ ๊ฒฝ๋กœ ์ •ํ•ฉ์„ฑ์„ ๊ณตํ†ต ์ธํ”„๋ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260115_postgresql_neo4j_tcp_healthcheck.md b/journey/troubleshooting/260115_postgresql_neo4j_tcp_healthcheck.md index 6101da8..38f4599 100644 --- a/journey/troubleshooting/260115_postgresql_neo4j_tcp_healthcheck.md +++ b/journey/troubleshooting/260115_postgresql_neo4j_tcp_healthcheck.md @@ -1,45 +1,7 @@ -# PostgreSQL/Neo4j TCP ์†Œ์ผ“ ํ—ฌ์Šค์ฒดํฌ ๊ตฌํ˜„ +# 260115_postgresql_neo4j_tcp_healthcheck -**๋‚ ์งœ**: 2026-01-15 -**์ž‘์„ฑ์ž**: Auto -**๊ด€๋ จ ํŒŒ์ผ**: -- `admin-dashboard/backend/services/system_service.py:32-33, 346-384, 421-423` +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ---- - -## ๋ฌธ์ œ ์ƒํ™ฉ - -PostgreSQL/Neo4j๊ฐ€ HTTP ์ฒดํฌ๋กœ ์‹คํŒจํ•˜์—ฌ Admin Dashboard์—์„œ ์˜ค๋ฅ˜ ํ‘œ์‹œ (์‹ค์ œ๋กœ๋Š” ์ •์ƒ ์ž‘๋™ ์ค‘) - ---- - -## ํ•ด๊ฒฐ ๋ฐฉ์•ˆ - -- `system_service.py:32-33`: PostgreSQL/Neo4j HTTP URL ์ œ๊ฑฐ, `check_method: "tcp"` ์ถ”๊ฐ€ -- `system_service.py:346-384`: `check_tcp_service()` ํ•จ์ˆ˜ ์ถ”๊ฐ€, ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ ์‹œ๋„ (`172.17.0.1` โ†’ `localhost` โ†’ `127.0.0.1`) -- `system_service.py:421-423`: `check_method == "tcp"`์ธ ๊ฒฝ์šฐ TCP ์ฒดํฌ๋กœ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ - ---- - -## ๊ตฌํ˜„ ์™„๋ฃŒ - -- Git ์ปค๋ฐ‹: `4c9f227` -- API ํ…Œ์ŠคํŠธ: PostgreSQL/Neo4j ๋ชจ๋‘ `check_method: "tcp"`, `status: "healthy"` ํ™•์ธ - ---- - -## ๊ตํ›ˆ - -### ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค๋Š” TCP ์†Œ์ผ“ ์ฒดํฌ ์‚ฌ์šฉ -- HTTP ํ”„๋กœํ† ์ฝœ์ด ์•„๋‹Œ ์„œ๋น„์Šค๋Š” TCP ์†Œ์ผ“ ์ฒดํฌ ํ•„์ˆ˜ -- Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ˜ธ์ŠคํŠธ ์ ‘๊ทผ ์‹œ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ ์‹œ๋„๋กœ ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ ๋ฌธ์ œ ์™„ํ™” - -### ๋ธŒ๋ผ์šฐ์ € ํ…Œ์ŠคํŠธ ์‹œ docs ํ™•์ธ ํ•„์ˆ˜ -- ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ, API ์—”๋“œํฌ์ธํŠธ ๋“ฑ ์ ‘๊ทผ ์ •๋ณด๋Š” ์ฝ”๋“œ ๋˜๋Š” docs์—์„œ ํ™•์ธ (์ถ”์ธก ๊ธˆ์ง€) - ---- - -## ์ฐธ๊ณ  - -- `plans/251225_admin_dashboard_navigation_structure_refactoring.md` -- `troubleshooting/251228_admin_์„œ๋น„์Šค_ํ—ฌ์Šค์ฒดํฌ_๊ฐœ์„ .md` +- ์ƒˆ ์œ„์น˜: `260115_postgresql_neo4j_tcp_healthcheck.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : PostgreSQL, Neo4j ํ—ฌ์Šค์ฒดํฌ ๋ฐฉ์‹๊ณผ Docker ์ปจํ…Œ์ด๋„ˆ-ํ˜ธ์ŠคํŠธ ์ ‘๊ทผ ๊ทœ์น™์„ ๊ณตํ†ต ์ธํ”„๋ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. diff --git a/journey/troubleshooting/260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md b/journey/troubleshooting/260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md index a479ff2..929309e 100644 --- a/journey/troubleshooting/260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md +++ b/journey/troubleshooting/260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md @@ -1,81 +1,7 @@ -tags: [env, secrets, git, security, troubleshooting] +# 260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜ -# 260308 env backup git tracking exposure ๋ฐ ์ฐจ๋‹จ์กฐ์น˜ +์ด ๋ฌธ์„œ๋Š” ๊ณตํ†ต ์ธํ”„๋ผ ๋ฌธ์„œ๋กœ ์žฌ๋ถ„๋ฅ˜๋˜์–ด `infra/DOCS`๋กœ ์ด๊ด€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -์ƒ์œ„ ์›์น™: -- [global-principles](../../../../0_VALUE/00_Principles/global-principles.md) -- [writing-principles](../../../../0_VALUE/02_Governance/writing-principles.md) - -## 1. ๋ชฉ์  -- `rb8001` ์ €์žฅ์†Œ์— `.env` ๋ฐฑ์—…๋ณธ๊ณผ ๋ฐฐํฌ์šฉ env ํŒŒ์ผ์ด git ์›๊ฒฉ์— ํฌํ•จ๋œ ๊ฒฝ์œ„๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. -- ๋™์ผ ์œ ํ˜• ํŒŒ์ผ์ด ๋‹ค์‹œ ์›๊ฒฉ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๋„๋ก ์ฐจ๋‹จํ•œ ์กฐ์น˜์™€ ์ž”์—ฌ ๋ฒ”์œ„๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค. - -## 2. Facts - -### 2.1 `rb8001` ๋…ธ์ถœ ์‚ฌ์‹ค -- ๋Œ€์ƒ ํŒŒ์ผ: `.env.backup`, `.env.bak.20260304032910`, `.env.bak.20260306193102`, `.env.deploy` -- ์›๊ฒฉ ๋ฐ˜์˜ ์ปค๋ฐ‹: - - `b9731bfc68bd12d0bdefc74a1403a878433c6824` (`2026-01-02 12:53:52 +0900`): `.env.backup` ์ถ”๊ฐ€ - - `5f24b2bdb515b0a372cebaf62052f7086d41e739` (`2026-03-07 17:01:56 +0900`): `.env.bak.20260304032910`, `.env.bak.20260306193102`, `.env.deploy` ํฌํ•จ -- `5f24b2b`๋Š” ๋กœ์ปฌ reflog ๊ธฐ์ค€ ๊ฐ™์€ ์‹œ๊ฐ์— `refs/remotes/origin/main: update by push`๊ฐ€ ํ™•์ธ๋์Šต๋‹ˆ๋‹ค. - -### 2.2 `rb8001` ์›์ธ์„ฑ ์„ค์ • ์‚ฌ์‹ค -- `/home/admin/robeing/rb8001/.gitignore`์—๋Š” ๊ธฐ์กด์— `.env`๋งŒ ์žˆ์—ˆ๊ณ  `.env.*`, `*.env.*` ์ฐจ๋‹จ ๊ทœ์น™์€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. -- ์ €์žฅ์†Œ ๋‚ด๋ถ€ ๊ฒ€์ƒ‰ ๊ธฐ์ค€, `.env.bak.*` ๋˜๋Š” `.env.backup` ์ƒ์„ฑ์„ ์ง€์‹œํ•˜๋Š” ์ž๋™ ์Šคํฌ๋ฆฝํŠธ/์ฝ”๋“œ๋Š” ํ™•์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. -- `/home/admin/AGENTS.md`์—๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ธฐ์ค€์„ `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋กœ ๋‘๊ณ , ์„œ๋น„์Šค๋ณ„ `.env`๋Š” ์ž„์‹œ ๋กœ์ปฌ ์˜ค๋ฒ„๋ผ์ด๋“œ ์ „์šฉ์ด๋ผ๊ณ  ๋ช…์‹œ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. - -### 2.3 `rb8001` ์ฆ‰์‹œ ์กฐ์น˜ ์‚ฌ์‹ค -- `2026-03-08`์— `.gitignore`๋ฅผ ์•„๋ž˜ ํŒจํ„ด๊นŒ์ง€ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. - - `.env.*` - - `*.env` - - `*.env.*` - - ์˜ˆ์™ธ: `.env.deploy.example` -- ์ถ”์  ์ค‘์ด๋˜ `.env.backup`, `.env.bak.20260304032910`, `.env.bak.20260306193102`, `.env.deploy`๋ฅผ git ์ธ๋ฑ์Šค์—์„œ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. -- ์œ„ ๋ณ€๊ฒฝ์€ ์ปค๋ฐ‹ `5f0087d` (`chore: stop tracking env files`)๋กœ `origin/main`์— push๋์Šต๋‹ˆ๋‹ค. -- ๋กœ์ปฌ ํŒŒ์ผ๋„ `.env.backup`, `.env.bak.20260304032910`, `.env.bak.20260306193102`๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. - -### 2.4 ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ „์ˆ˜ ํ™•์ธ ์‚ฌ์‹ค -- ๋ฐฑ์—…๋ณธ ์‹คํŒŒ์ผ ํ™•์ธ: - - `/home/admin/robeing/skill-news/.env.backup` -- git ์ถ”์  ์ค‘์ธ `.env*` ํ™•์ธ: - - `/home/admin/fluent-bit`: `.env` - - `/home/admin/ivada_project/robeing-monitor`: `.env.deploy`, `.env.deploy.example` - - `/home/admin/robeing/robeing-monitor`: `.env.deploy`, `.env.deploy.example` - - `/home/admin/robeing/skill-calendar`: `.env.deploy`, `.env.deploy.example` - - `/home/admin/robeing/skill-email`: `.env.deploy`, `.env.deploy.example` - - `/home/admin/robeing/skill-embedding-repo`: `.env.deploy`, `.env.deploy.example`, `.env.example` - - `/home/admin/robeing/skill-news`: `.env.backup`, `.env.deploy`, `.env.deploy.example`, `.env.example` - - `/home/admin/robeing/skill-rag-file`: `.env.deploy`, `.env.deploy.example`, `.env.example` - - `/home/admin/robeing/skill-slack`: `.env.deploy`, `.env.deploy.example` - - `/home/admin/vMIR/LocalTerra`: `.env` - - `/home/admin/vMIR/mirror-terra-web-dapp-ref`: `.env`, `.env.development` - - `/home/admin/vMIR/vmir-web-app`: `.env`, `.env.development` -- `/home/admin/auth-server`๋Š” `.git/config` ๊ถŒํ•œ ๋ฌธ์ œ๋กœ ์ด๋ฒˆ ์ ๊ฒ€์—์„œ ์ถ”์  ์—ฌ๋ถ€๋ฅผ ํ™•์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. - -## 3. Interpretation -- `rb8001`์˜ ์ง์ ‘ ์›์ธ์€ `.env`๋งŒ ๋ฌด์‹œํ•˜๊ณ  `.env` ํŒŒ์ƒ ํŒŒ์ผ์„ ๋ฌด์‹œํ•˜์ง€ ์•Š์€ `.gitignore` ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค. -- `.env.bak.20260304032910`, `.env.bak.20260306193102`๋Š” ํŒŒ์ผ๋ช…๊ณผ ๋‚ด์šฉ์ƒ `.env`์˜ ์‹œ์ ๋ณ„ ์ˆ˜๋™ ๋ฐฑ์—…๋ณธ์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค. -- ์ด ๋ฌธ์ œ๋Š” ๋‹จ์ผ ์ €์žฅ์†Œ ์‹ค์ˆ˜๋ผ๊ธฐ๋ณด๋‹ค, ์—ฌ๋Ÿฌ ์ €์žฅ์†Œ์—์„œ `.env`, `.env.deploy`, `.env.backup`๋ฅผ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋Œ€์ƒ์œผ๋กœ ๋‹ค๋ค„ ์˜จ ์šด์˜ ์Šต๊ด€ ๋ฌธ์ œ๋กœ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -- ์ „์—ญ ์›์น™ ๋ฌธ์„œ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๋ฐฉํ–ฅ์€ SSOT(Single Source of Truth, ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›) ๊ธฐ๋ฐ˜์˜ `runtime.env`/`secrets.env` ๋ถ„๋ฆฌ์ด๋ฉฐ, ์„œ๋น„์Šค ๋ฃจํŠธ์˜ ์‹ค์ œ ๋น„๋ฐ€ env ํŒŒ์ผ์„ git์— ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. - -## 4. Unresolved -- ์ด๋ฏธ ์›๊ฒฉ ํžˆ์Šคํ† ๋ฆฌ์— ํฌํ•จ๋œ ๋ฏผ๊ฐ๊ฐ’์€ ์ปค๋ฐ‹ ์‚ญ์ œ๋งŒ์œผ๋กœ ๋ฌดํšจํ™”๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์‹ค์ œ ํ‚ค ํ๊ธฐ์™€ ์žฌ๋ฐœ๊ธ‰ ์—ฌ๋ถ€๋ฅผ ๋ณ„๋„๋กœ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -- `skill-news`๋ฅผ ํฌํ•จํ•œ ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋“ค์˜ `.env*` ์ถ”์  ํ•ด์ œ ๋ฒ”์œ„๋Š” ์•„์ง ๋ฏธ์ ์šฉ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. -- `auth-server`๋Š” ๊ถŒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด์†Œํ•œ ๋’ค `.env*` ์ถ”์  ์—ฌ๋ถ€๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -- `.env.deploy`๋ฅผ ์˜ˆ์ œ ํŒŒ์ผ๋งŒ ๋‚จ๊ธฐ๊ณ  ๋ชจ๋‘ ์ œ๊ฑฐํ• ์ง€, SSOT ๊ฒฝ๋กœ ์ฐธ์กฐ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ• ์ง€ ์ €์žฅ์†Œ๋ณ„ ์šด์˜ ๊ธฐ์ค€ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. - -## 5. ๋‹ค์Œ ์กฐ์น˜ ํ›„๋ณด -- ์šฐ์„ ์ˆœ์œ„ 1: ์›๊ฒฉ ํžˆ์Šคํ† ๋ฆฌ์— ๋…ธ์ถœ๋œ Slack, OpenAI, Perplexity, Tavily, JWT ๋“ฑ ๋ฏผ๊ฐ๊ฐ’ ํ๊ธฐ ๋ฐ ์žฌ๋ฐœ๊ธ‰ -- ์šฐ์„ ์ˆœ์œ„ 2: `skill-news` ํฌํ•จ ๋‚˜๋จธ์ง€ ์ €์žฅ์†Œ์—๋„ ๋™์ผํ•œ `.gitignore` ํ™•์žฅ๊ณผ git ์ถ”์  ํ•ด์ œ ์ ์šฉ -- ์šฐ์„ ์ˆœ์œ„ 3: ์„œ๋น„์Šค๋ณ„ `.env.deploy`๋ฅผ ์˜ˆ์ œ ํŒŒ์ผ๋งŒ ๋‚จ๊ธฐ๋Š” ๊ตฌ์กฐ๋กœ ํ†ต์ผํ•˜๊ฑฐ๋‚˜, `/home/admin/infra-config` ์ฐธ์กฐ ๊ตฌ์กฐ๋กœ ์ผ์›ํ™” - -## 6. ๊ฒ€์ฆ ๊ทผ๊ฑฐ -- `git log --follow --date=iso --name-status -- .env.bak.20260304032910` -- `git show --stat --summary 5f24b2bdb515b0a372cebaf62052f7086d41e739` -- `git reflog --date=iso --all` -- `git ls-files '.env*'` -- `find /home/admin -path '*/.git' -prune -o -type f \( -name '.env.backup' -o -name '.env.bak.*' -o -name '.env.deploy' -o -name '.env' \) -print` - -๊ด€๋ จ ๋ฌธ์„œ: -- [260307 gateway SSOT(runtime/secrets) ๋ถ„๋ฆฌ ์ ์šฉ ๋ฐ ๊ฒ€์ฆ](./260307_gateway_SSOT_runtime_secrets_๋ถ„๋ฆฌ_์ ์šฉ_๋ฐ_๊ฒ€์ฆ.md) -- [README](./README.md) +- ์ƒˆ ์œ„์น˜: `260308_env_backup_git_tracking_exposure_๋ฐ_์ฐจ๋‹จ์กฐ์น˜.md` +- ์ธํ”„๋ผ ๊ธฐ์ค€ ๋ฌธ์„œ: +- ์ด์œ : ์„œ๋น„์Šค๋ณ„ `.env` ์˜ค๋ฒ„๋ผ์ด๋“œ, SSOT runtime/secrets, git ์ถ”์  ๋…ธ์ถœ ๋ฌธ์ œ๋ฅผ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ณตํ†ต ์ธํ”„๋ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.