diff --git a/.workspace-ops/docs/environments.md b/.workspace-ops/docs/environments.md index 083407e..50f597c 100644 --- a/.workspace-ops/docs/environments.md +++ b/.workspace-ops/docs/environments.md @@ -15,7 +15,7 @@ | 프로젝트 | Local / Test 환경 | Remote / Runtime 환경 | 포트/환경 메모 | |---|---|---|---| | `alt` | Go workspace, Flutter client, local PostgreSQL/Redis compose, KIS smoke는 private testing env 의존 | `ssh toki@toki-labs.com`, `~/agent-work/alt` | API/worker 후보 `18030/18031`, frontend `13030`, optional wire `19030`, DB/cache `15430/16330`. KIS credential은 tracked 문서에 쓰지 않는다. | -| `iop` | Docker compose 기반 Control Plane, Edge, Node, Client, PostgreSQL, Redis. work container 안 Docker-in-Docker는 피한다. dev profile은 local/test 조건을 유지하되 `.env.dev.example`으로 host publish 포트만 분리한다. | `ssh toki@toki-labs.com`, `/Users/toki/agent-work/iop-dev` | workspace 기준 프로젝트. local/test frontend `13000`, backend `18000`, artifact/model `18080/18081`, wire `19080/19081/19090`, metrics `19092`, DB/cache `15400/16300`. dev frontend `13001`, backend `18001`, wire `19001/19002/19003`, DB/cache `15401/16301`, optional artifact/model `18082/18083`, metrics `19101`. | +| `iop` | Docker compose 기반 Control Plane, Client UI, PostgreSQL, Redis, Prometheus, Grafana. Edge는 Control Plane 연결 검증용 인접 runtime service로 붙일 수 있다. work container 안 Docker-in-Docker는 피한다. dev profile은 local/test 조건을 유지하되 `.env.dev.example`으로 host publish 포트만 분리한다. | `ssh toki@toki-labs.com`, `/Users/toki/agent-work/iop-dev`; dev-corp compose 검증은 `ssh fe@172.24.63.178`, `/Users/fe/agent-work/iop-dev-corp` | workspace 기준 프로젝트. local/test frontend `13000`, backend `18000`, artifact/model `18080/18081`, wire `19080/19081/19090`, Edge metrics `19092`, CP metrics `19100`, Prometheus/Grafana `19110/19120`, DB/cache `15400/16300`. dev frontend `13001`, backend `18001`, wire `19001/19002/19003`, DB/cache `15401/16301`, optional artifact/model `18082/18083`, Edge/CP metrics `19101/19103`, Prometheus/Grafana `19111/19121`, subnet `10.89.1.0/24`. dev Prometheus는 native Edge metrics `host.docker.internal:19101`도 scrape하고 Grafana/Prometheus는 runner 내부 또는 SSH 터널 접근 기준이다. dev-corp compose frontend `13002`, backend `18002`, wire `19004/19005/19006`, DB/cache `15402/16302`, Edge/CP metrics `19102/19104`, Prometheus/Grafana `19112/19122`, subnet `10.89.2.0/24`. 기존 사용자-facing 접속점은 유지하고 관측 포트만 추가한다. dev-corp는 runner 접근 가능 시에만 실제 세팅한다. | | `nexo` | Mattermost core, webapp, push-proxy, Flutter test host, upstream dev compose | `ssh toki@toki-labs.com`, repo `~/agent-work/nexo`, compose `~/docker/agent-service/nexo/compose` | core `18065`, push-proxy `18066`은 compatibility baseline. upstream dev compose 포트는 nexo-owned runtime 포트와 분리한다. | | `nomadcode` | Core local default `8080`, Docker compose DB/Redis, Flutter client, code-server preview | Android runner `$HOME/agent-work/nomadcode`, sibling `../nexo/packages/messaging_flutter`, `../proto-socket/dart` | frontend 후보 `13010`, backend 후보 `18010`, DB/cache `15410/16310`. Plane, Mattermost, Jira, IOP Edge endpoint는 secret 없이 책임 경계만 기록한다. | | `gito` | Core local default `8080`, Go control plane/worker/shell, Flutter client, optional Postgres/Redis/proto-socket runner smoke. 기본 local 테스트 evidence는 standard remote runner 기준 | `ssh toki@toki-labs.com`, `$HOME/agent-work/gito` | frontend `13060`, backend/Core HTTP `18060`, optional wire/agent transport `19060`, DB/cache `15460/16360`. Core 내부 listen `8080`은 유지하되 shared runner 검증은 gito-owned host slot을 사용한다. | diff --git a/.workspace-ops/docs/ports.md b/.workspace-ops/docs/ports.md index 889d1a5..823868e 100644 --- a/.workspace-ops/docs/ports.md +++ b/.workspace-ops/docs/ports.md @@ -28,7 +28,7 @@ | 프로젝트 | Frontend / Preview | Backend / API | Artifact / Model | Wire / Agent Transport | Metrics | DB / Cache | 메모 | |---|---:|---:|---:|---:|---:|---:|---| -| `iop` | `13000` (`dev:13001`) | `18000` (`dev:18001`) | `18080`, `18081` (`dev 후보:18082/18083`) | `19080`, `19081`, `19090` (`dev:19001/19002/19003`) | `19092` (`dev 후보:19101`) | `15400`, `16300` (`dev:15401/16301`) | 기존 field 포트 `18080`, `18081`, `19080`, `19090` 유지. dev profile은 `.env.dev.example` 기준 | +| `iop` | `13000` (`dev:13001`, `dev-corp:13002`) | `18000` (`dev:18001`, `dev-corp:18002`) | `18080`, `18081` (`dev 후보:18082/18083`, `dev-corp:18085/18086`) | `19080`, `19081`, `19090` (`dev:19001/19002/19003`, `dev-corp:19004/19005/19006`) | Edge `19092` (`dev:19101`, `dev-corp:19102`), CP `19100` (`dev:19103`, `dev-corp:19104`), Prometheus `19110` (`dev:19111`, `dev-corp:19112`), Grafana `19120` (`dev:19121`, `dev-corp:19122`) | `15400`, `16300` (`dev:15401/16301`, `dev-corp:15402/16302`) | 기존 field/user-facing 포트 `18080`, `18081`, `19080`, `19090` 및 dev 접속 포트 유지. 관측 포트만 추가. dev-corp compose profile은 문서 정의 우선 | | `nomadcode` | `13010` (`dev:13011`) | `18010` (`dev:18011`) | - | IOP 경유 | - | `15410`, `16310` (`dev:15411/16311`) | Core 내부/default `8080`은 유지하고 host publish만 local/dev로 분리. Gito webhook target은 local `18010`, dev `18011` | | `oto` | `13020` | `18020` | - | OTO-owned slot 미확정 | - | - | 기본 local 테스트 evidence는 `/Users/toki/agent-work/oto` 원격 runner 기준. 기존 product default `127.0.0.1:8080`은 compatibility fallback | | `alt` | `13030` | `18030`, `18031` | - | `19030` optional | - | `15430`, `16330` | 기존 API/worker 포트와 migration note 필요 | diff --git a/.workspace-ops/docs/remote-test-environments.md b/.workspace-ops/docs/remote-test-environments.md index 9df4e7c..13d6fbb 100644 --- a/.workspace-ops/docs/remote-test-environments.md +++ b/.workspace-ops/docs/remote-test-environments.md @@ -18,7 +18,7 @@ |---|---|---|---|---|---|---| | `appsok` | `ssh toki@toki-labs.com` standard remote Mac runner | `$HOME/docker/services/code-server/data/volume/workspace/appsok` | Flutter macOS, Xcode, Keychain, ADB, Jenkins 연동 검증 | Flutter web preview `13050` when needed | 일반 unit/analyze/macOS build는 public port 없음 | Jenkins credential, SSH password, signing/notary credential은 remote Keychain 또는 사용자 제공 값만 사용 | | `alt` | 필요 시 `ssh toki@toki-labs.com` | `~/agent-work/alt` | Docker-backed PostgreSQL/Redis, platform/device/browser runtime, 외부 provider/live smoke | frontend `13030`, API/worker `18030/18031`, optional wire/evidence relay `19030`, DB/cache `15430/16330` | field reserve `13000-13099`, artifact/model `18080/18081`, wire `19080/19090`, metrics `19092`, specialized `19190`는 shared baseline으로만 취급 | KIS/live provider credential은 private rule 또는 secret-only profile에서만 사용 | -| `iop` | `ssh toki@toki-labs.com`, code-server/remote runner | `/Users/toki/agent-work/iop-dev` | Control Plane, Edge, Node, Client, Docker compose, field/bootstrap 검증 | local/test: frontend `13000`, CP HTTP `18000`, DB/cache `15400/16300`; dev: frontend `13001`, CP HTTP `18001`, DB/cache `15401/16301` | local/test field baseline `18080/18081`, `19080/19081/19090`, metrics `19092`; dev wire/model candidates `19001/19002/19003`, `18082/18083`, metrics `19101` | Edge token 등 secret 원문은 원격 환경에서 주입하고 tracked 문서에 기록하지 않음 | +| `iop` | `ssh toki@toki-labs.com`, code-server/remote runner | `/Users/toki/agent-work/iop-dev` | Control Plane, Client UI, PostgreSQL, Redis, Prometheus, Grafana compose group; Edge, Node, field/bootstrap 검증 | local/test: frontend `13000`, CP HTTP `18000`, DB/cache `15400/16300`, Prometheus/Grafana `19110/19120`; dev: frontend `13001`, CP HTTP `18001`, DB/cache `15401/16301`, Prometheus/Grafana `19111/19121`, subnet `10.89.1.0/24`; dev-corp compose: frontend `13002`, CP HTTP `18002`, DB/cache `15402/16302`, Prometheus/Grafana `19112/19122`, subnet `10.89.2.0/24` | local/test field baseline `18080/18081`, `19080/19081/19090`, Edge/CP metrics `19092/19100`; dev wire/model candidates `19001/19002/19003`, `18082/18083`, Edge/CP metrics `19101/19103`; dev Prometheus scrapes native Edge via `host.docker.internal:19101`; dev-corp compose wire `19004/19005/19006`, Edge/CP metrics `19102/19104`. 기존 사용자-facing 접속점은 유지하고 dev-corp는 접근 가능 runner에서만 실제 세팅한다. | Edge token 등 secret 원문은 원격 환경에서 주입하고 tracked 문서에 기록하지 않음 | | `nexo` | `ssh toki@toki-labs.com` | repo `~/agent-work/nexo`, compose `~/docker/agent-service/nexo/compose` | Mattermost core/push-proxy runtime, Flutter/Android, Detox, FCM/device evidence | core `18065`, push-proxy `18066` | Android Detox Metro는 `8081` 점유 시 `8088`; Flutter Web preview는 ignored `web-smoke.env` 값 기준 | Mattermost/FCM/test account 값은 `agent-test/local/secrets.md` 같은 ignored profile에서만 확인 | | `nomadcode` | `ssh toki@toki-labs.com` standard remote runner | local `$HOME/agent-work/nomadcode`; dev `$HOME/agent-work/nomadcode-dev` | Core, Flutter client, Android SDK runner, Mattermost/FCM 시나리오, Gito branch webhook consumer | local preview `13010`, Core host publish `18010:8080`, DB/cache 후보 `15410/16310`; dev preview `13011`, Core host publish `18011:8080`, DB/cache 후보 `15411/16311` | sibling `../nexo/packages/messaging_flutter`, `../proto-socket/dart` 경로 전제. IOP dev model endpoint `http://toki-labs.com:18083/v1`은 dependency baseline이며 nomadcode-owned port가 아님 | Mattermost/FCM/signature/Gito webhook secret 등 private input은 ignored local profile 기준 | | `gito` | `ssh toki@toki-labs.com` standard remote runner | local `$HOME/docker/services/code-server/data/volume/workspace/gito`; dev `$HOME/agent-work/gito-dev` | Core Go, Flutter client, provider webhook/proto-socket smoke, agent-shell runner baseline, NomadCode delivery smoke | local preview `13060`, Core host publish/direct HTTP `18060`, optional proto-socket/agent transport `19060`, DB/cache 후보 `15460/16360`; dev preview `13061`, Core HTTP `18061`, optional transport `19061`, DB/cache 후보 `15461/16361` | Core internal/default `8080`은 compatibility 경로. NomadCode webhook target은 local `http://127.0.0.1:18010/api/integrations/gito/webhook`, dev `http://127.0.0.1:18011/api/integrations/gito/webhook` | Provider webhook secret, credential_ref, runner credential, Gito delivery signing secret은 ignored local profile 기준 | @@ -35,7 +35,7 @@ | `appsok` preview vs `nomadcode` preview | 기존 `appsok` 문서가 `13010+`를 언급해 `nomadcode` `13010`과 충돌 가능 | `appsok` project-owned preview slot을 `13050`으로 고정한다. | | `alt` field reserve `13000-13099` vs 프로젝트별 preview slots | field/shared reserve가 전체 frontend 대역을 넓게 표현함 | `alt` 자체 preview는 `13030`으로 보고, field reserve는 shared baseline으로 분리한다. | | `iop` shared field ports | `18080/18081/19080/19090/19092`가 다른 프로젝트 smoke에서도 참조됨 | IOP-owned runtime baseline으로 유지하되 다른 프로젝트의 project-owned slot으로 재사용하지 않는다. | -| `iop` dev profile | local/test stack이 원격 host에서 이미 `13000`, `18000`, `19080`, `19081`, `15400`, `16300`을 점유할 수 있음 | dev profile은 `.env.dev.example` 기준 `13001`, `18001`, `19001`, `19002`, `19003`, `15401`, `16301`을 사용하고 compose project/network를 분리한다. | +| `iop` dev profile | local/test stack이 원격 host에서 이미 `13000`, `18000`, `19080`, `19081`, `15400`, `16300`, `19110`, `19120`을 점유할 수 있음 | dev profile은 `.env.dev.example` 기준 `13001`, `18001`, `19001`, `19002`, `19003`, `15401`, `16301`, `19101`, `19103`, `19111`, `19121`을 사용하고 compose project/network를 분리한다. | | `oto` remote local profile | 제품 fallback `127.0.0.1:8080`과 workspace backend slot `18020`이 함께 존재함 | 테스트/원격 evidence는 `18020`을 기준으로 하고 `8080`은 product compatibility fallback으로만 문서화한다. | | `nexo` `18065/18066` | workspace backend 후보 `18040` 계열과 다름 | Mattermost compatibility baseline으로 유지한다. 신규 nexo-owned backend가 필요할 때만 `18040` 계열을 검토한다. | | `nomadcode` local/dev split | local profile과 dev profile을 같은 원격 host에서 분리해야 함 | local은 `13010/18010/15410/16310`, dev는 `13011/18011/15411/16311`을 사용한다. Gito dev subscription target은 `http://127.0.0.1:18011/api/integrations/gito/webhook`이다. |