feat(infra): add hub service — Docker, Traefik, CI/CD
- Add infra/docker/hub.Dockerfile (Next.js multi-stage build)
- Add infra/compose/hub.yml with app-shared-net
- Add Traefik route for hub.asepharyana.{my,web}.id → hub:3000
- Update docker-build-push.yml: path detection, matrix build, dispatch, manifest
- Update deploy-docker.yml: include hub.yml in ALL_COMPOSE_FILES
- Update update-submodule.yml: allow hub service
- Update docs/ARCHITECTURE.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
cdaa3c3d57
commit
9db886e68b
@@ -16,7 +16,7 @@ Dua node terhubung via **Tailscale** overlay network:
|
||||
│ ├─ Dapr Placement │ └──────────────────────────────┘
|
||||
│ ├─ Redis (cache, Dapr) │
|
||||
│ ├─ Scraper API + Dapr │
|
||||
│ └─ (future services) │
|
||||
│ └─ Hub (Next.js SPA) │
|
||||
└──────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -36,7 +36,8 @@ Traefik (v3.6)
|
||||
├─ Plugin: real-ip (Cloudflare), block-sensitive-paths
|
||||
│
|
||||
▼ Router matching
|
||||
Host(`scraper.asepharyana.my.id`) || Host(`api.asepharyana.my.id`)
|
||||
Host(`scraper.asepharyana.my.id`) || Host(`api.asepharyana.my.id') → scraper-api
|
||||
Host(`hub.asepharyana.my.id`) → hub
|
||||
│
|
||||
▼ Service load balancer
|
||||
http://scraper-api:4091
|
||||
@@ -63,6 +64,7 @@ Semua service berjalan dalam satu Docker Compose project bernama `compose` dan b
|
||||
| `nats.yml` | `nats` | Message broker + JetStream persistent streaming |
|
||||
| `dapr.yml` | `dapr-placement` | Koordinasi actor placement untuk sidecar Dapr |
|
||||
| `scraper.yml` | `scraper-api` + `scraper-api-dapr` | Aplikasi Rust + sidecar Dapr |
|
||||
| `hub.yml` | `hub` | Next.js SPA portfolio |
|
||||
|
||||
### Dapr Sidecar Pattern
|
||||
|
||||
|
||||
Reference in New Issue
Block a user