asepharyana and Claude Opus 4.8
7181710aa7
chore: remove lidm routes from file config — now via Docker labels
...
Routing is handled by container labels (traefik.enable + router labels),
so file-level routes for lidm are no longer needed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 19:19:30 +07:00
asepharyana and Claude Opus 4.8
478a0f849f
fix: use websecure + tls for lidm routes, same pattern as other services
...
Cloudflare Origin CA wildcard cert covers *.asepharyana.my.id,
so websecure entrypoint with tls works correctly.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 19:07:22 +07:00
asepharyana and Claude Opus 4.8
7fc863d611
feat: add lidm frontend and backend routes to traefik config
...
Add routers and services for lidm.asepharyana.my.id (→ lidm-frontend:3000)
and lidm-api.asepharyana.my.id (→ lidm-backend:3001) behind Traefik.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 19:02:13 +07:00
GitHub Action
df7aaedfba
chore: update manifests and submodules [skip ci]
2026-07-23 11:17:49 +00:00
asepharyana and Asep Haryana Saputra
93d053b123
ci(deploy): remove :latest tag from Docker images to avoid cache bugs
...
Using only :sha-<short> tags ensures deterministic image references
and prevents stale :latest caches from serving wrong images.
Co-Authored-By: Asep Haryana Saputra <asepharyana@users.noreply.github.com >
2026-07-23 18:15:17 +07:00
asepharyana
401a26aea9
chore: update hub submodule to f3ddc62
2026-07-23 17:56:37 +07:00
asepharyana
0a4952ce7f
chore: update hub submodule to 22cdc2e
2026-07-23 17:56:15 +07:00
asepharyana
23ba9c48fa
chore: update hub submodule to e528b6a
2026-07-23 17:05:17 +07:00
asepharyana
7e92351f45
chore: update hub submodule to 4dbaba7
2026-07-23 15:54:01 +07:00
asepharyana
8e489b9f41
chore: update hub submodule to 6b725f3
2026-07-23 15:03:04 +07:00
asepharyana
0dbaf66743
chore: update hub submodule to e529e8c
2026-07-23 12:47:56 +07:00
asepharyana
6091d358e1
chore: update hub submodule to d94524b
2026-07-23 12:21:34 +07:00
asepharyana and Claude Opus 4.8
c17f5f5b32
docs: update ARCHITECTURE.md and CLAUDE.md
...
- HTTP flow includes hub routes (/, /dashboard, /api/dashboard)
- Compose table adds hub.yml and observability.yml
- Prometheus auto-discovery section (Docker SD + labels)
- Traefik metrics query reference
- Docker socket access pattern (group_add: 988)
- Service registry table includes root domain, hub, jaeger
- CLAUDE.md monitoring section
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 11:11:30 +07:00
asepharyana
83b825b449
chore: bump hub submodule (latency metric fix)
2026-07-23 07:59:08 +07:00
asepharyana
48086de66b
chore: bump hub submodule to f0bbd13
2026-07-23 07:52:41 +07:00
asepharyana
545397eb1f
fix(infra): fix Prometheus Docker SD relabel + group_add
2026-07-23 07:50:20 +07:00
asepharyana and Claude Opus 4.8
40e1a80f9f
feat(infra): auto-discovery Prometheus + Traefik metrics
...
- Prometheus: add docker_sd_configs for auto-discovery via labels
- Prometheus: mount Docker socket for Docker SD
- Traefik: enable --metrics.prometheus with entrypoint/service labels
- Traefik: add prometheus.io/scrape=true label
- Observability: mount Docker socket for Prometheus container
- Bump hub submodule (Traefik metrics queries + sparkline charts)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 07:45:59 +07:00
asepharyana
688ac095f6
fix(infra): add group_add for docker socket access in hub
2026-07-23 07:35:58 +07:00
GitHub Action
a4852f636a
chore: update manifests and submodules [skip ci]
2026-07-23 00:33:56 +00:00
asepharyana
69cae1e73e
fix(infra): chown .next dir in hub Dockerfile for runtime permissions
2026-07-23 07:32:59 +07:00
GitHub Action
bd9cc1f4c7
chore: update manifests and submodules [skip ci]
2026-07-23 00:25:10 +00:00
asepharyana and Claude Opus 4.8
aaaf5de70c
feat(infra): remove Go dashboard, dashboard is now part of hub Next.js app
...
- Remove dashboard container from observability.yml
- Remove infra/docker/dashboard.Dockerfile
- Remove dashboard route from Traefik apps.yaml
- Mount Docker socket on hub container for /api/dashboard
- Remove dashboard build from CI/CD (docker-build-push.yml)
- Update submodule pointer to hub with Next.js dashboard rewrite
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 07:23:12 +07:00
asepharyana
cea96fcfc2
fix(ci): update dashboard detection to apps/hub/dashboard/
2026-07-23 07:19:55 +07:00
asepharyana and Claude Opus 4.8
5ff8f9224f
feat(infra): migrate dashboard into hub submodule
...
- Move infra/dashboard/ → apps/hub/dashboard/ (hub submodule repo)
- Update dashboard.Dockerfile to COPY from apps/hub/dashboard/
- Update go module path
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 07:19:55 +07:00
asepharyana
caf3f1d79b
fix(infra): remove hub subdomain from Traefik rule
2026-07-23 07:19:55 +07:00
asepharyana
4e4ed101c5
fix(infra): hub at root domain asepharyana.my.id
2026-07-23 07:19:55 +07:00
asepharyana and Claude Opus 4.8
9db886e68b
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 >
2026-07-23 07:19:55 +07:00
asepharyana and Claude Opus 4.8
cdaa3c3d57
feat(root): add apps/hub as git submodule
...
- Created asepharyana/asepharyana-hub-hub repo
- Updated CLAUDE.md with both submodules
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 07:19:55 +07:00
GitHub Action
f085375363
chore: update manifests and submodules [skip ci]
2026-07-22 23:03:10 +00:00
asepharyana
5999ac159a
feat(infra): responsive UI with mobile-first design and blur header
...
- Mobile-first responsive: single column → 2 columns → auto-fill grid
- Sticky header with backdrop-filter blur
- Cards with hover glow and fade-in animation
- SVG charts scale with container (max-width constraint per breakpoint)
- Touch-friendly link targets on mobile
- Custom dark scrollbar
- 5 breakpoints: 480, 640, 768, 1024, 1280px
2026-07-23 06:02:10 +07:00
GitHub Action
28ba9dd78c
chore: update manifests and submodules [skip ci]
2026-07-22 22:59:17 +00:00
asepharyana
4cc2ba1630
fix(infra): remove all fixed grid-column overrides, layout fully auto-flow
...
All cards now auto-arrange in the CSS grid — no hardcoded positions,
no fixed widths. Layout adapts naturally to content and screen size.
2026-07-23 05:58:17 +07:00
GitHub Action
bf39884ea6
chore: update manifests and submodules [skip ci]
2026-07-22 22:39:21 +00:00
asepharyana
373cb4fc1a
feat(infra): fully dynamic dashboard layout with auto-adaptive grid
...
- Replace fixed grid-column spans with auto-fill grid
- Charts auto-hide when no data available (no gaps)
- System Resources row spans full width only when data exists
- Responsive breakpoints for mobile, tablet, desktop
- SVG charts scale with container width
2026-07-23 05:38:27 +07:00
GitHub Action
f96041a164
chore: update manifests and submodules [skip ci]
2026-07-22 22:32:10 +00:00
asepharyana
9a48a49f21
feat(infra): auto-discovered node metrics (CPU, RAM, Disk) and fully dynamic dashboard
...
- Add node-exporter container for host metrics (CPU, RAM, Disk)
- SVG gauge charts rendered server-side from Prometheus data
- Auto-detect compose project name from Docker labels
- Auto-detect web services via traefik.* labels for quick links
- Remove all hardcoded service name filters
- Dynamic system name based on compose project
2026-07-23 05:31:05 +07:00
GitHub Action
4f15cafc02
chore: update manifests and submodules [skip ci]
2026-07-22 22:21:46 +00:00
asepharyana
6c24508c77
fix(ci): add missing dashboard output in changes job so update-manifest runs
2026-07-23 05:20:59 +07:00
GitHub Action
c909c4a9a1
chore: update manifests and submodules [skip ci]
2026-07-22 22:17:46 +00:00
asepharyana
aa05820393
fix(ci): correct dashboard change detection regex to match files inside infra/dashboard/
2026-07-23 05:16:47 +07:00
asepharyana
ffe07ddef0
fix(infra): filter hub services by compose project label, fix TraceList field name collision
2026-07-22 18:46:16 +07:00
asepharyana
0bc61d8b1c
fix(infra): downgrade go.mod to 1.24 for CI build compatibility
2026-07-22 18:37:13 +07:00
asepharyana
afae724f6b
refactor(infra): server-side SVG dashboard with Go
...
- Replace nginx+Chart.js client-side dashboard with Go server
- Server-side rendered SVG charts (donut, line charts)
- Direct Docker socket integration via Go stdlib
- Embedded HTML template via //go:embed
- Minimal scratch image (~9MB total)
- Remove nginx.conf and client-side Chart.js
2026-07-22 18:35:29 +07:00
asepharyana
9f54f90621
fix(infra): use anonymous Prometheus volume to avoid deploy script name collision
2026-07-22 18:28:16 +07:00
asepharyana
ee4fd677ea
feat(infra): add Prometheus and Chart.js dashboard with real-time charts
...
- Add Prometheus server scraping OTel collector
- Add Chart.js donut chart for service health distribution
- Add line charts for RPS, latency, error rate, trace volume
- Add Prometheus API proxy to nginx whitelist
- Restructure dashboard layout with 12-column responsive grid
2026-07-22 18:26:41 +07:00
asepharyana
1ee99ffc2c
fix(infra): restrict Docker API proxy to whitelist only
2026-07-22 18:20:11 +07:00
asepharyana
46314e6d38
fix(infra): correct Traefik OTLP tracing flags
2026-07-22 18:16:18 +07:00
GitHub Action
362e9f4115
chore: update manifests and submodules [skip ci]
2026-07-22 11:13:25 +00:00
asepharyana
da268f1671
feat: enhance observability with dynamic links, Docker API integration, and health checks
2026-07-22 18:12:44 +07:00
asepharyana
4ef4f615c1
feat: add dashboard service to Docker build and push workflow
2026-07-22 18:12:44 +07:00