Commit Graph
100 Commits
Author SHA1 Message Date
asepharyanaandKilo e9f3cd458c feat(infra): update tools submodule with interactive resize/convert options
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 19:07:17 +07:00
asepharyanaandKilo 14c9668e85 fix(infra): update tools submodule with panic-safe contour detection
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 19:01:40 +07:00
asepharyanaandKilo 3c52036f7e fix(infra): replace curl healthcheck with wget, install wget in runtime
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 18:52:40 +07:00
asepharyanaandKilo 38873dd73e fix(infra): install leptonica/tesseract dev libs for tesseract feature build
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 18:44:22 +07:00
asepharyanaandKilo be2117aa16 fix(infra): audit — NATS subject, worker spawn, tesseract feature, pipeline PDF
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 18:24:35 +07:00
asepharyanaandKilo 5c79a91a2e fix(infra): copy bun binary to runtime for Next.js frontend
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 17:55:59 +07:00
asepharyanaandKilo 8f62f955d1 fix(infra): route tools Traefik to Next.js frontend (port 3000)
Frontend serves UI, proxies /api/* to Rust gateway on port 3001.
Rust gateway remains internal, not exposed via Traefik.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 17:52:23 +07:00
asepharyanaandKilo a35e19b546 fix(infra): update tools submodule entrypoint, use port 3002
Entrypoint now auto-discovers binary locations in various paths.
Host port changed to 3002 due to stale iptables rule on port 3001.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 17:47:24 +07:00
asepharyanaandKilo c25850b727 fix(infra): use unique binary names in Dockerfile builder stage
The cp destination /app/gateway conflicts with the source code
directory apps/tools/backend/gateway/ which is copied to /app/gateway/.
Use /app/tools-gateway-bin to avoid name collision.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 17:42:50 +07:00
asepharyanaandKilo 97b48ddb21 fix(infra): remove depends_on redis/nats from tools.yml
Shared services are in separate compose files. Tools depends on them
at runtime but Docker compose doesn't need to manage their lifecycle.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 17:40:35 +07:00
asepharyanaandKilo c5a7ae247a fix(infra): copy binaries from builder's filesystem, not cache mount
The builder stage uses --mount=type=cache for /app/target, so binaries
are in the cache which isn't available to the runtime stage COPY.
Fix by copying from /app/gateway and /app/workers which were cp'd
to the builder's regular filesystem.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 14:10:13 +07:00
asepharyanaandKilo cbda54fdee fix(infra): update tools submodule to rust 1.89 toolchain
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:57:51 +07:00
asepharyanaandKilo 836ef6862e fix(infra): bump cargo-chef image to rust 1.89 for compatibility
cargo-chef with rust 1.85 has compatibility issues with some dependency crates.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:45:51 +07:00
asepharyanaandKilo bd751c0fca fix(infra): update tools submodule to fix AbortController type error
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:43:32 +07:00
asepharyanaandKilo ad7a0de37b fix(infra): update tools submodule to fix lucide icon imports
Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:41:07 +07:00
asepharyana 05a9179356 chore: update tools submodule to latest (add bun.lock) 2026-07-24 13:32:44 +07:00
asepharyanaandKilo 584a7155e6 fix(infra): use pre-built cargo-chef image in Dockerfile
Replace cargo install cargo-chef with pre-built image
lukemathwalker/cargo-chef:latest-rust-1.85.0 and add build
cache mounts for faster rebuilds.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:32:31 +07:00
asepharyanaandKilo a41b2d7312 fix(infra): remove bun.lock from Dockerfile, fix frontend build
The bun.lock doesn't exist yet - use bun install without frozen-lockfile.
This will be optimized once a lockfile is generated.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:20:30 +07:00
asepharyanaandKilo c8fcaecbdb fix(ci): make tools submodule public for CI access
Tools repo is now public so GITHUB_TOKEN can clone it.
Revert the token injection workaround since it's no longer needed.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:16:21 +07:00
asepharyanaandKilo d8b1457a11 fix(infra): convert apps/tools to submodule, fix Dockerfile paths
Move tools code to its own repo (asepharyana/asepharyana-hub-tools)
and add as git submodule following the existing app pattern.
Fix Dockerfile paths to use apps/tools/ prefix since build context
is the repo root.

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:11:54 +07:00
asepharyanaandKilo 67288c8723 feat(infra): add tools service with document scanner, image & PDF tools
Implement self-hosted document scanner and media processing tools as
an alternative to CamScanner/ilovepdf without third-party uploads.

Backend: Rust Axum gateway + worker pool with NATS JetStream queue
Frontend: Next.js 16 + shadcn/ui + Tailwind v4 + Framer Motion
Pipeline: Canny edge detection -> DLT homography warp -> Sauvola
binarization -> Hough deskew -> Tesseract OCR -> searchable PDF

Phase 1 (MVP) delivers:
- Document scanner with perspective correction and OCR
- Image compress/resize/convert tools
- PDF merge/split/compress tools
- Real-time WebSocket progress updates
- Rate limiting, auto-cleanup, Prometheus metrics
- Full CI/CD pipeline with Docker multi-stage build

Co-Authored-By: Kilo <kilo@kilo.ai>
2026-07-24 13:08:09 +07:00
asepharyana 9c12d135e4 Implement code changes to enhance functionality and improve performance 2026-07-24 10:19:03 +07:00
asepharyana 68dea35d73 feat: add infrastructure documentation and processing pipeline for document scanner
- Introduced a comprehensive Docker image architecture for the project, detailing multi-stage builds for Rust backend and Next.js frontend.
- Added Docker Compose configuration for the tools service, including environment variables and volume management.
- Documented CI/CD integration steps for Docker build and deployment workflows.
- Implemented a detailed processing pipeline for document scanning, covering stages from image preprocessing to PDF generation.
- Included edge case handling and performance budget for each stage of the pipeline.
- Enhanced security considerations and rollback strategies for the tools service.
2026-07-24 10:19:03 +07:00
asepharyana ddc4c58243 chore: update subproject commit for hub application 2026-07-24 08:26:03 +07:00
asepharyanaandClaude 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
asepharyanaandClaude 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
asepharyanaandClaude 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
asepharyanaandAsep 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
asepharyanaandClaude 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
asepharyanaandClaude 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
asepharyana 69cae1e73e fix(infra): chown .next dir in hub Dockerfile for runtime permissions 2026-07-23 07:32:59 +07:00
asepharyanaandClaude 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
asepharyanaandClaude 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
asepharyanaandClaude 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
asepharyanaandClaude 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
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
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
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
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
asepharyana 6c24508c77 fix(ci): add missing dashboard output in changes job so update-manifest runs 2026-07-23 05:20:59 +07: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
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
asepharyana dcb93035f3 feat(observability): add OpenTelemetry Collector, Jaeger, and custom dashboard for monitoring
fix(infra): update NATS configuration for OpenTelemetry tracing and JetStream support
refactor(dapr): modify Dapr sidecar configuration to use new resources path and config file
chore(docs): update deployment documentation to include observability services
docs(commit-convention): establish commit message guidelines for Asepharyana Hub
docs(deploy-workflow): outline CI/CD pipeline and manual deployment steps for Asepharyana Hub
feat(event-driven): implement event-driven architecture patterns with Dapr and NATS
docs(hub-rules): define repository structure, submodule strategy, and infrastructure patterns
2026-07-22 16:43:37 +07:00
asepharyana df71487563 Add comprehensive documentation for CI/CD pipeline, NATS, security practices, Tailscale networking, and troubleshooting guide
- Created CI/CD pipeline documentation detailing workflows, triggers, and actions for `asepharyana-hub`.
- Added NATS + JetStream guide covering architecture, configuration, CLI tools, and event topics.
- Introduced a security guide outlining best practices for secrets management, TLS, container security, and access control.
- Documented Tailscale networking setup and troubleshooting for connectivity between VPS and bare-metal nodes.
- Compiled a troubleshooting guide addressing common issues across deployment, Dapr, NATS, Traefik, Tailscale, Docker, database, and submodules.
2026-07-22 16:35:38 +07:00
asepharyana 5025d103e9 chore: update scraper submodule to 7640e66 and add deployment documentation 2026-07-22 15:16:45 +07:00
asepharyana b7180ab30c chore: update .gitignore to include .playwright-mcp directory 2026-07-22 14:25:00 +07:00
asepharyana 2bb1f1e814 chore: update scraper submodule — remove 17 unused deps 2026-07-22 14:13:16 +07:00
asepharyana 9b9ce9e59e chore: update scraper submodule — add episodes+downloads to detail 2026-07-22 14:04:58 +07:00
asepharyana a659f598ee chore: update scraper submodule — revert to alqanime.si 2026-07-22 13:56:38 +07:00
asepharyana 7bf4d69f17 chore: update scraper submodule — CLAUDE.md cleanup 2026-07-22 13:43:20 +07:00
asepharyana b960f9915c chore: remove EXTERNAL_BROWSERLESS env var from compose and docs 2026-07-22 12:55:50 +07:00
asepharyana 7e563b7a54 chore: update scraper submodule — remove browserless fallback
Dropped EXTERNAL_BROWSERLESS_WS feature; proxy-bun service now handles
all proxy needs.
2026-07-22 12:55:32 +07:00
asepharyana 64b8bb29a3 fix: include all compose files for dependency resolution on selective deploy
Scraper services depend on dapr-placement (dapr.yml) and nats (nats.yml).
When only scraper.yml changed, docker compose pull/up failed with
'undefined service' because dependent compose files were excluded.

Now always include ALL compose files for dependency resolution, but
selectively pull and up only the target services during partial updates.
2026-07-22 08:40:49 +07:00
asepharyana 79015974df fix: map scraper-api service name to correct submodule path
The update-submodule.yml workflow used apps/${SERVICE} directly,
but the submodule path is apps/scraper, not apps/scraper-api.
Added a case statement to map service names to correct paths.
2026-07-22 07:17:40 +07:00
asepharyana f7f8ee1beb chore: update scraper submodule to fix notify-parent target
Points to asepharyana/asepharyana-hub instead of the dead
MythEclipse/ultimate-asepharyana.tech.
2026-07-22 07:07:16 +07:00
asepharyana a6b822bbfe fix: add manual cargo build step for CodeQL Rust analysis
The security.yml CodeQL job fails because:
1. The Rust project is in apps/scraper/, not at the repo root
2. CodeQL v4's autobuilder can't find Cargo.toml at the root
3. CodeQL v4 requires the Rust code to be built for analysis

Also removes javascript-typescript language since this repo has no JS/TS code.
2026-07-22 07:02:25 +07:00
asepharyana 0ba5da78f9 fix: remove javascript-typescript from CodeQL languages in security.yml
The repo only has Rust source code (no JS/TS). CodeQL v4 fails when
a specified language has no code to analyze, which blocks PR #5
(dependabot bumping codeql-action from v3 to v4).
2026-07-22 06:59:17 +07:00
asepharyana 26d980fc00 refactor(infra): update Traefik configuration references and remove obsolete traefik.yaml 2026-07-21 19:18:42 +07:00
asepharyana 1098f97c05 fix: remove duplicate clean-code.md — only keep the symlink to kana-best-practice-engineering 2026-07-21 18:38:27 +07:00
asepharyana 3fdf1c670f refactor(clean-code): symlink to kana-best-practice-engineering for comprehensive clean code references (SOLID, TDD, architecture, paradigms, craft, oath) 2026-07-21 18:23:07 +07:00
asepharyana 3299759dae feat: add Claude Code project skills — clean-code, hub-rules, commit-convention, event-driven, deploy-workflow 2026-07-21 18:21:29 +07:00
asepharyana bc153b7491 fix(dapr): use pubsub.redis — Dapr 1.17 doesn't include built-in NATS pubsub. Redis already running. 2026-07-21 17:33:09 +07:00
asepharyana 05f3a65358 fix(dapr): use pubsub.nats instead of deprecated natsstreaming, use --resources-path 2026-07-21 17:31:57 +07:00
asepharyana 7b983daa4c fix(nats,dapr): remove healthchecks — scratch images have no shell/wget. Fix depends_on to use service_started 2026-07-21 17:30:21 +07:00
asepharyana 9a29d86fbd fix(nats): correct CLI flags — use -js/-sd instead of --store_dir/--max_payload 2026-07-21 17:27:48 +07:00
asepharyanaandClaude Opus 4.8 ea168b4b20 feat: add NATS + Dapr infrastructure for event-driven architecture
- infra/compose/nats.yml: NATS server with JetStream, persistence volume, healthcheck
- infra/compose/dapr.yml: Dapr placement service for sidecar coordination
- infra/dapr/: Dapr global config, pubsub component (NATS), statestore (Redis)
- infra/compose/scraper.yml: add Dapr sidecar container + depends_on nats/dapr
- docs/add-dapr-service.md: guide for integrating Dapr into new services
- docs/add-new-app.md: add Dapr sidecar step
- ARCHITECTURE.md: add NATS/Dapr to infra table + service mesh diagram
- infra/README.md: update layout and deployment order
- deploy-docker.yml: add nats.yml + dapr.yml to ALL_COMPOSE_FILES

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 17:26:02 +07:00
asepharyana d546a1acf9 fix(scraper): healthcheck tolerate 404 — server is up even if root returns 404 2026-07-21 15:52:51 +07:00
asepharyana 23269e1ab2 fix(scraper): fix healthcheck — use wget instead of ss (not available in slim image) 2026-07-21 15:36:42 +07:00
asepharyanaandClaude Opus 4.8 8f05d1df3d fix(scraper): add EXTERNAL_BROWSERLESS_WS back — service still running on imrnes
Also relax scraper healthcheck to use TCP fallback (ss) for when /health
endpoint doesn't respond in time.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 15:32:25 +07:00
asepharyanaandClaude Opus 4.8 28934aaafc docs: update Tailscale IPs and node names to match live infrastructure
- ARCHITECTURE.md: orange → orangevps (100.79.111.61), update imrnes IP to 100.121.180.82, archlinux IP to 100.84.39.83, remove offline laptop node
- README.md: update VPS table, env examples, troubleshooting IPs
- CONTRIBUTING.md: fix VPS name and IP in deploy section

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 15:04:57 +07:00
asepharyana c4ecf8f21b Merge commit 'f465ca2'
# Conflicts:
#	infra/compose/scraper.yml
2026-07-21 13:28:37 +07:00
asepharyanaandClaude Opus 4.8 f465ca261e refactor: clean up codebase — remove legacy references, optimize dockerfile, prune .env.example, simplify CI/CD
- Traefik: remove asephstech/asephscloud SSL certs, fix api.insecure, add ping healthcheck
- .env.example: prune from 145 to 30 vars (remove Firebase, Discord, Coolify, etc.)
- scraper.Dockerfile: remove Node.js & Chromium from runtime, add healthcheck
- CI/CD: remove orphan container ref, commented blocks, fix lint workflow
- infra: remove mysql config (no active service), clean up middleware config
- root: remove .nvmrc (dup), renovate.json (use dependabot), simplify Makefile
- scripts: fix legacy package refs, simplify update-deps to use bun
- docs: remove stale handoff-log, quality-gates, superpowers designs, archived files
- compose: add healthchecks to traefik, redis, and scraper-api services

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 13:27:45 +07:00
asepharyana 092c0b363d Refactor Dockerfile for scraper, update Traefik configuration, and clean up scripts
- Simplified Dockerfile for scraper by removing unnecessary Node.js installation and optimizing build stages.
- Updated Traefik environment configuration to use shorter variable names for certificate paths.
- Removed commented-out middleware configurations in dynamic middlewares.yaml.
- Cleaned up legacy SSL configurations in ssl.yaml.
- Disabled insecure API access in Traefik configuration.
- Deleted unused renovate.json file.
- Modified update environment script to only process apps directory.
- Updated GHCR cleanup script to target specific package.
- Streamlined dependency update script to focus on app submodules.
- Removed setup script for Prometheus as it is no longer needed.
2026-07-21 13:27:13 +07:00
asepharyana 80027ee5d3 chore: update subproject commit for scraper application 2026-07-21 12:54:57 +07:00
asepharyana 5d6bdf6ce3 refactor: update architecture and documentation for scraper service, remove deprecated services 2026-07-21 12:54:57 +07:00
asepharyana cdad9ae720 chore: remove unused configuration files and submodules 2026-07-21 12:54:57 +07:00
asepharyana 44a56fa0a9 feat: add comprehensive deployment guide for Docker and GitHub Actions 2026-07-21 12:54:57 +07:00
asepharyana ef7e708fd6 fix: revert deploy workflow, secrets already configured 2026-07-10 07:16:16 +07:00