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:
asepharyana
2026-07-23 07:19:55 +07:00
co-authored by Claude Opus 4.8
parent cdaa3c3d57
commit 9db886e68b
7 changed files with 68 additions and 6 deletions
+4 -2
View File
@@ -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