From 3e0d8bcf884210976777791d15f0df07086988f0 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 8 Jun 2026 03:16:21 +0900 Subject: [PATCH] =?UTF-8?q?docs(plan):=20Phase=206=20=E2=91=A0=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20+=20=EC=9E=AC=EA=B0=9C=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=ED=8F=AC=EC=9D=B8=ED=8A=B8(=E2=91=A2=20DNS=20=EC=A0=84?= =?UTF-8?q?=ED=99=98=20=EC=A7=81=EC=A0=84)=20=EA=B8=B0=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../2026-06-02-nas-selfhost-migration.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/superpowers/plans/2026-06-02-nas-selfhost-migration.md b/docs/superpowers/plans/2026-06-02-nas-selfhost-migration.md index f0e619e..e33b534 100644 --- a/docs/superpowers/plans/2026-06-02-nas-selfhost-migration.md +++ b/docs/superpowers/plans/2026-06-02-nas-selfhost-migration.md @@ -12,6 +12,31 @@ --- +## ๐Ÿ”– ์žฌ๊ฐœ ์ฒดํฌํฌ์ธํŠธ (2026-06-08) โ€” Phase 6 โ‘ข DNS ์ „ํ™˜ ์ง์ „ + +**ํ˜„์žฌ ์ƒํƒœ:** Phase 0~5 โœ… ์™„๋ฃŒ + Phase 6 โ‘ (DB ์žฌ๊ตฌ์ถ•ยท๋ฐ์ดํ„ฐ ์ตœ์ข… ๋™๊ธฐ) โœ… ์™„๋ฃŒ. **โ‘ข DNS ์ „ํ™˜๋งŒ ๋‚จ์Œ(์•„์ง ์šด์˜=Vercel, ๋ฌด์˜ํ–ฅ).** + +### ์™„๋ฃŒ๋œ NAS ์ธํ”„๋ผ +- **self-host Supabase**: `/volume1/docker/jsm`, PG **17.6**, ์ „ ์ปจํ…Œ์ด๋„ˆ healthy. **๋ฐ๋ชจ ํ‚ค ์ „๋Ÿ‰ ๊ต์ฒด ์™„๋ฃŒ**(JWT_SECRETยทANONยทSERVICEยทVAULTยทPOSTGRES_PASSWORD ๋ชจ๋‘ ์‹ค์ œ๊ฐ’). KONG 8100/8543, pooler 5432 host ๋ฏธ๋…ธ์ถœ(6543๋งŒ). +- **supa ๋…ธ์ถœ**: `https://supa.jaengseung-made.com` (Cloudflare DNS only โ†’ DSM ์—ญํ”„๋ก์‹œ 443โ†’kong:8100 + DSM Let's Encrypt). Google OAuth ํ™œ์„ฑ(`GOTRUE_EXTERNAL_GOOGLE_*`, redirect=`https://supa.jaengseung-made.com/auth/v1/callback`, Google Console ๋“ฑ๋ก๋จ). +- **๋ฐ์ดํ„ฐ**: ํด๋ผ์šฐ๋“œโ†’NAS ๋ฌด์†์‹ค(users4/profiles4/quotes4/orders15/payments4/products25/saju3/milestones7, RLS ์ •์ฑ… ํฌํ•จ). storage ๋ฏธ์‚ฌ์šฉ(0). +- **์•ฑ ์ปจํ…Œ์ด๋„ˆ**: ์ด๋ฏธ์ง€ `gitea.gahusb.synology.me/gahusb/jsm-web:latest`(๋กœ์ปฌ Docker Desktop ๋นŒ๋“œโ†’Gitea registry pushโ†’NAS pull). NAS `/volume1/docker/jsm-web/`(compose: image+env_file `.env`+`ports 13000:3000`+`extra_hosts host-gateway`). ์ปจํ…Œ์ด๋„ˆโ†’supa **hairpin 200**(๊ณต์œ ๊ธฐ ์ง€์›). ํ…Œ์ŠคํŠธ `https://app.jaengseung-made.com`(DSM ์—ญํ”„๋ก์‹œโ†’13000) ๋ธŒ๋ผ์šฐ์ € OAuthยท๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ํ†ต๊ณผ. +- **์ฝ”๋“œ/๋ฐฐํฌ**: Gitea `gitea.gahusb.synology.me/gahusb/jaengseung-made`(main=ํ˜„์žฌ + `backup-old-main`=์˜›). GitHub origin ๋™๊ธฐ. ๋นŒ๋“œ: `docker build --build-arg NEXT_PUBLIC_SUPABASE_URL=https://supa.jaengseung-made.com --build-arg NEXT_PUBLIC_SUPABASE_ANON_KEY=<์ƒˆ ANON> -t gitea.gahusb.synology.me/gahusb/jsm-web:latest .` โ†’ `docker push` โ†’ NAS `docker compose up -d`. + +### โ–ถ ๋‹ค์Œ ์žฌ๊ฐœ ์ž‘์—… (Phase 6 โ‘ก~โ‘ค โ†’ Phase 7) +1. **โ‘ก DSM ์—ญํ”„๋ก์‹œ** `jaengseung-made.com`ยท`www`(443) โ†’ `localhost:13000` ์ƒ์„ฑ(์ธ์ฆ์„œ๋Š” ์ „ํ™˜ ํ›„). +2. **โ‘ข Cloudflare DNS ์ „ํ™˜**(=์‹ค์ œ ์ปท์˜ค๋ฒ„): TTL 60s๋กœ ๋‚ฎ์ถ˜ ๋’ค `jaengseung-made.com` A `216.198.79.1`โ†’**`211.44.164.244`**, `www`๋„ NAS๋กœ. `ADDITIONAL_REDIRECT_URLS`์— `https://jaengseung-made.com/**` ํฌํ•จ ํ™•์ธ(์„ค์ •๋จ). +3. **โ‘ฃ ์ธ์ฆ์„œ**: ์ „ํ™˜ ์งํ›„ DSM Let's Encrypt `jaengseung-made.com`ยท`www` ๋ฐœ๊ธ‰(80 ๋„๋‹ฌ) โ†’ ์—ญํ”„๋ก์‹œ ๋งคํ•‘ โ†’ ์ „ ๊ธฐ๋Šฅ ๊ฒ€์ฆ(๋กœ๊ทธ์ธยทmypageยท๊ฒฐ์ œยท์‚ฌ์ฃผยท๋ฌธ์˜). +4. **โ‘ค ๋กค๋ฐฑ**: ๋ฌธ์ œ ์‹œ Cloudflare ๋ ˆ์ฝ”๋“œ `216.198.79.1`(Vercel)๋กœ ๋ณต๊ตฌ. +5. **Phase 7**: Postgres ๋ฐฑ์—… cron + ๋ชจ๋‹ˆํ„ฐ๋ง(ํ…”๋ ˆ๊ทธ๋žจ ์žฌํ™œ์šฉ) + ์ธ์ฆ์„œ ์ž๋™๊ฐฑ์‹  ํ™•์ธ โ†’ ์•ˆ์ • 1~2์ฃผ ํ›„ Vercelยทํด๋ผ์šฐ๋“œ Supabase ํ•ด์ง€(๋ฐฑ์—… 2์ค‘ ํ™•์ธ). ๋…ธ์ถœ๋œ ํด๋ผ์šฐ๋“œ ๋น„๋ฒˆ์€ ํ•ด์ง€๋กœ ์ž์—ฐ ํ๊ธฐ. + +### ์ฃผ์˜ +- ํด๋ผ์šฐ๋“œ Supabase๋Š” **๋ฉ€ํ‹ฐ์•ฑ ๊ณต์œ **(ebay/lotto/wk ๋ณ„๊ฐœ) โ†’ ํด๋ผ์šฐ๋“œ ํ•ด์ง€๋Š” ๊ทธ ์•ฑ๋“ค ์ •๋ฆฌ ํ›„. ์Ÿ์Šน์€ NAS ๋…๋ฆฝ. +- ๋กœ์ปฌ `.env.local`์€ ํด๋ผ์šฐ๋“œ๊ฐ’(๋ฐฑ์—… `.env.local.cloud.bak`). ๋กœ์ปฌ supa ์žฌํ…Œ์ŠคํŠธ ์‹œ supa/์ƒˆํ‚ค๋กœ ๊ต์ฒด ํ›„ ๋ณต๊ตฌ. +- Vercel/ํด๋ผ์šฐ๋“œ๋Š” ์ปท์˜ค๋ฒ„ ํ›„์—๋„ **ํ•ด์ง€ ์ „๊นŒ์ง€ ์œ ์ง€**(๋กค๋ฐฑ ์•ˆ์ „๋ง). + +--- + ## ๋ณ€์ˆ˜ (์‹คํ–‰์ž๊ฐ€ ๋ณธ์ธ ํ™˜๊ฒฝ๊ฐ’์œผ๋กœ ์ฑ„์›€) | ๋ณ€์ˆ˜ | ์˜๋ฏธ | ์˜ˆ์‹œ |