Settings
Passcode ์ ์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
โ ๏ธ ์ด๊ฒ์ ๋ก๊ทธ์ธ ๋น๋ฐ๋ฒํธ๊ฐ ์๋๋๋ค. ์์ด์ ํธยทํ ๋จธ์ ํฌํยทwebhook ์ด ์ฐ๋ ํต์ ํ ํฐ(Authorization: Bearer)์ด๋ฉฐ, ๋ฐ๊พธ๋ฉด ๊ทธ ๊ฒฝ๋ก๋ค์ ํจ๊ป ๊ฐฑ์ ํด์ผ ํฉ๋๋ค. ๋ก๊ทธ์ธ ๋น๋ฐ๋ฒํธ๋ ์ [๋ด ๋น๋ฐ๋ฒํธ]์์ ๋ณ๊ฒฝํ์ธ์.
๐ต ๋ฐ๊พธ๋ฉด ์ต์๋์ธ ๊ธ๊ณ
_secrets/๊ธ๊ณ .md ยซํฌํธ passcodeยป ์ ๊ณผ ~/.claude/harness.env ์ PORTAL_PASSCODE ๋ ๊ฐ์ ๊ฐ์ผ๋ก ๊ณ ์น๋ค โ ์ ๊ณ ์น๋ฉด ์์ด์ ํธ๊ฐ ์ ๊ฐ์ ์ด๋ค.์๋ฆผ์ ์์ ์๋ฃยท์ ๋ ฅ ๋๊ธฐ ๋ ๋๋ ์๋ฆฌ
๐ต ์ ๋ณธ์ ์ต์๋์ธ โ
๊ด์ /seoul/starian-portal/์๋ฆผ์/์ค์ .md ์ ์๋ฃ:ยท๋๊ธฐ: ๋ฅผ ๊ณ ์น๋ฉด ๋ชจ๋ ๋จธ์ ํฌํธ์ด ๋ฐ๋ฅธ๋ค. ์๋๋ ์ด ๋ธ๋ผ์ฐ์ ๋ง ๋ฐ๋ก ๋ฐ๊ฟ ๋ ์ด๋ค(๋น์ ๋๋ฉด ์ต์๋์ธ ์ค์ ). Passkey passkey/FIDO2 device ๋ฑ๋ก (์์ฒด ์ธ์ฆยทhardware key)
passkey๋ฅผ ๋ฑ๋กํ๋ฉด passcode ์์ด device ์ธ์ฆ(Touch IDยทFace IDยทyubikey ๋ฑ)์ผ๋ก ๋ก๊ทธ์ธ ๊ฐ๋ฅํฉ๋๋ค. brute forceยทtiming attack ๋ฉด์ญ.
์นด๋ ์ํ ์๋ฆผ ์ํ๊ฐ ๋ฐ๋๋ฉด ์์ฑ์ผ๋ก ์๋ฆผ
ํฐ๋ฏธ๋ ์นด๋๊ฐ ์์
์ค(active) โ ์
๋ ฅ ๋๊ธฐ(waiting) ๋๋ ์์
์๋ฃ(idle) ๋ก ๋ฐ๋๋ฉด,
๊ทธ๋ฆฌ๊ณ ์ค๋ฅ(error) ๊ฐ ๋๋ฉด "์นด๋์ด๋ฆ + ์ํ"๋ฅผ ์์ฑ์ผ๋ก ์๋ฆฝ๋๋ค.
์์
์ค ์ง์
์ ์๋ฆฌ์ง ์์ต๋๋ค(๊ณ์ ์ธ๋ ค์ ์๋ฆผ์ด ๋ฌด์๋ฏธํด์ง).
UI ์ต์ ํ๋ฉด ํ์ ์ค์
Portal UI ํ์ ๋ฐฉ์์ ์ค์ ํฉ๋๋ค. ๊ตฌ์ฑ์์ ๋ผ๋ฒจ์ ๋๋ฒ๊น
/์คํฌ๋ฆฐ์ท์ฉ์ผ๋ก,
data-label ์์ฑ์ ํ๋ฉด์ ํ์ํฉ๋๋ค.Auto Update ์ commit ์๋ git pull + restart
GitHub
origin/main์ ์ commit์ด ์ฌ๋ผ์ค๋ฉด 5๋ถ๋ง๋ค ์๋์ผ๋ก git pull โ npm install โ systemctl restart ์คํ. ์ด ์๋ฒ์ sudo NOPASSWD ๋๋ user systemd ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค.Portal Base URL ์ธ๋ถ ๊ณต๊ฐ URL (webhook + identity injection)
peer webhook URL ๋ฐ ACP self-identity ์ฃผ์
์ ์ฌ์ฉ๋๋ portal ์ธ๋ถ ๊ณต๊ฐ URL. ์ฐ์ ์์:
PORTAL_BASE_URL env > portal.baseUrl setting > ํด๋ฐฑ(https://portal-seoul.starian.us). env๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด ์ด ์
๋ ฅ์ ๋ฌด์๋ฉ๋๋ค.ํ๋ก์ ํธ ๋ชฉ๋ก (project_titles) vaultยทdashboard ํฉ์ฑ ๋์
vault ๋๊ธฐํ + Dashboard.md ์๋ ํฉ์ฑ ๋์์ด ๋๋ ํ์ฑ ํ๋ก์ ํธ ํค ๋ชฉ๋ก์
๋๋ค. ์นฉ์ ร ๋ฅผ ๋๋ฅด๋ฉด ํด๋น ํ๋ก์ ํธ๊ฐ ์ ๊ฑฐ๋๋ฉฐ, ๋์์ ์๋ project_reps ๋งคํ์์๋ ์ ๊ฑฐ๋ฉ๋๋ค. ์ถ๊ฐ/์ญ์ ์ฆ์ PUT
/api/settings ๋ก ์ ์ฅ๋๊ณ ๊ทธ ์๋ ๋ํ ์์ด์ ํธ ํจ๋์ด ์ฌ๋ ๋๋ฉ๋๋ค. SSOT: portal-settings.json โ aoe_default_categories.project_titles. (v1.27.21.0)ํ๋ก์ ํธ ๋ํ ์์ด์ ํธ (project_reps) vault-snapshot 04/08/15/22 KST
๊ฐ ํ๋ก์ ํธ์ ๋ํ ์์ด์ ํธ๋ฅผ ๋๋กญ๋ค์ด์์ ์ ํํฉ๋๋ค (v1.27.20.0 โ seoul/zalman/macmini ๋ผ์ด๋ธ ํผ์ด ํตํฉ ๋ชฉ๋ก). portal cron์ด 04/08/15/22 KST๋ง๋ค ์ด ์์ด์ ํธ์๊ฒ vault ์ค๋
์ท(ํํฉ/์ผ์ผ์์
๊ธฐ๋ก/์ํ/ํ ์ผ) ์์ฑ ์์ฒญ์ webhook์ผ๋ก ๋ณด๋
๋๋ค. SSOT:
portal-settings.json โ aoe_default_categories.project_reps. ์ ์ฅ ๊ฐ ํ์: <machine>:<id>.Terminal Order ํฐ๋ฏธ๋ ์ฌ์ด๋๋ฐ ์์ ์กฐ์
์ฌ์ด๋๋ฐ์ ํ์๋๋ ํฐ๋ฏธ๋์ ์์๋ฅผ ๋๋๊ทธ๋ก ์กฐ์ ํฉ๋๋ค. ๋ณ๊ฒฝ ํ ์ ์ฅํ๋ฉด
portal-settings.json์ terminalOrder ๋ฐฐ์ด์ ๋ฐ์๋ฉ๋๋ค.Quick Commands ๋จ์ถ ๋ช ๋ น ๋ฑ๋ก
ํฐ๋ฏธ๋ ํด๋ฐ์ ํ์๋๋ ๋จ์ถ ๋ช
๋ น ๋ฒํผ์ ๋ฑ๋กํฉ๋๋ค. ๋ฒํผ ํด๋ฆญ ์ ํด๋น ๋ช
๋ น์ด ํ์ฌ ํฐ๋ฏธ๋์ ์๋ ์
๋ ฅ๋ฉ๋๋ค.
portal-settings.json์ quickCommands ๋ฐฐ์ด์ ์ ์ฅ๋ฉ๋๋ค.Remote Servers ์๊ฒฉ ํฌํ ์ฐ๊ฒฐ
๋ค๋ฅธ ๋จธ์ ์ Portal ์ธ์คํด์ค๋ฅผ ๋ฑ๋กํฉ๋๋ค. ๋ฑ๋ก๋ ์๋ฒ๋ ์ฌ์ด๋๋ฐ์์ ๋น ๋ฅด๊ฒ ์ ํํ ์ ์์ผ๋ฉฐ, peer-to-peer ๋ฉ์์ง ๋ผ์ฐํ
์๋ ํ์ฉ๋ฉ๋๋ค.
AI ์ค์ ์ธํ๋ฃจ์ธ์๋ณ Gemini ๊ณ์ ยทAPI ํค
๊ฐ ์ธํ๋ฃจ์ธ์๊ฐ ์ฌ์ฉํ Google ๊ณ์ ๊ณผ Gemini API ํค๋ฅผ ๋ฐ๋ก ๋ฑ๋กํฉ๋๋ค. ์ ์ฅ๋ ํค ์๋ฌธ์ ๋ชฉ๋ก/API ์๋ต์ ํ์๋์ง ์์ต๋๋ค.
์ธํ๋ฃจ์ธ์ ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๋ ์ค...
์๋ ์ ์ญ ํค๋ ์ธํ๋ฃจ์ธ์์ ๋ฌด๊ดํ ๊ธฐ์กด Portal ๊ธฐ๋ฅ์ฉ์
๋๋ค.
tmux ๊ด๋ฆฌ
๐ก Portal ํ์๋ช
ยท๊ทธ๋ฃน โ Terminal ํญ ์ข์ธก ์ฌ์ด๋๋ฐ ์นด๋์ ์ฆ์ ๋ฐ์๋จ
| ๋จธ์ | tmux ์ธ์ ๋ช | tmux ID | Portal ํ์๋ช | ๊ทธ๋ฃน | ์๋์ฐ | ์์ฑ์ผ | AoE | ๊ณ ์ | ์์ |
|---|---|---|---|---|---|---|---|---|---|
| ๋ก๋ฉโฆ | |||||||||
Resource Lease Manager
AndroidยทiOSยทGPU ์์ ์ถฉ๋์ ๋ง๋ ์ค์ ์์ ๋์ฌ์
๋จธ์
ํฌํธ์ด ๋ ์๋ ๋จธ์ ๋ชฉ๋ก(์ ๋ณธ: vault ์ด๊ธฐ์ธํ /harness/nodes.json) ยท ์ ๋จธ์ ์ถ๊ฐ
์ ๋จธ์ ์ ํฌํธ ์ค์น
ํฐ ์๋ฆผ
๊ธฐ๊ธฐ๋ณ ์๋ฆผ ์ค๋ ๋ ยท ์ ํ๋ณ ์ฒ๋ฆฌ๊ท์น ยท ๋ผ์ฐํ ์ค์