Asep Haryana
d0c9f16d5d
chore(infra): disable Docker compose for Nix-migrated services (hub, scraper, tools, llm-api)
2026-07-30 22:29:20 +07:00
Asep Haryana
6cbafbfe2e
fix(flake): update scraper pinned rev for config fix
2026-07-30 22:28:24 +07:00
Asep Haryana
60a1af436f
fix(infra): llm-api port 8080→8082 (conflict with gmw-proxy nginx)
2026-07-30 22:18:56 +07:00
Asep Haryana
2459541677
fix(scraper): update submodule - config list_separator fix
2026-07-30 22:18:03 +07:00
Asep Haryana
33b999d2b7
fix(ci): disable Determinate Nix / FlakeHub (no flakehub flakes used)
...
DeterminateSystems/nix-installer-action defaults to determinate:true
which tries to auth with FlakeHub via GitHub JWT. We don't use any
FlakeHub flakes, so disable it — skipping the auth entirely.
2026-07-30 22:05:41 +07:00
Asep Haryana
59f131f951
fix(ci): combine build+deploy per-service, pass exact store path
...
Separate deploy job failed because it used ls to find store paths
by name, finding OLD local paths instead of the freshly copied CI
paths. Now each service builds, copies, and updates its profile
in a single job using the exact store path from the build output.
No more guessing which path is the right one.
2026-07-30 21:42:39 +07:00
Asep Haryana
cc8c5088a4
fix(ci): use SSH_PRIVATE_KEY secret, sanitize key format
...
- Ganti secret name: VPS_SSH_KEY → SSH_PRIVATE_KEY (nama yg ada)
- Fix nix copy URL: ***@ → $VPS_USER@
- Sanitize SSH key: strip \r\n, validasi dengan ssh-keygen
- Cegah libcrypto error dari key format broken
2026-07-30 21:32:40 +07:00
Asep Haryana
d15e8621a9
fix(ci): proper SSH user in nix copy, deploy job structure
...
- Fix nix copy URL: ***@ → $VPS_USER@
- Store path from build output, passed across jobs
- Deploy job waits for all builds via needs: build
- SSH key setup in its own step, guarded by main branch
- Only deploy on main branch pushes
- Remote deploy script fetches from VPS nix store
2026-07-30 21:14:20 +07:00
Asep Haryana
33d5b12ec6
fix: tools-workers install path (no cd backend in installPhase)
2026-07-30 20:11:31 +07:00
Asep Haryana
b5596e1398
feat(infra): full Nix migration — all 6 services + CI/CD
...
- flake.nix: 6 derivations (hub, scraper, tools-gateway, tools-workers, tools-frontend, llm-api)
- Fetch submodule source via builtins.fetchGit with pinned revs
- Fix cargo HOME/TMPDIR for Nix sandbox permission issues
- Fix llm-api: CMake/Clang deps for llama.cpp-sys2 bindgen
- Add LIBCLANG_PATH, LD_LIBRARY_PATH for Rust bindgen builds
- Systemd units: tools-gateway (3501), tools-frontend (3500), tools-workers, llm-api (8080)
- tools.target for grouped management
- Env configs: /etc/tools/env, /etc/llm-api/env
- GitHub Actions: nix-build.yml — matrix build + nix copy + deploy
- Update Traefik apps.yaml: tools/host.docker.internal:3500, llm-api/host.docker.internal:8080
- iptables: allow Docker→host on 3099, 4091, 3500, 3501, 8080
- Add scripts/nix-deploy.sh for CI/CD deploy step
2026-07-30 19:45:43 +07:00
Asep Haryana
46730ec07d
feat(infra): Nix build for scraper, GitHub Actions workflow
...
- Build scraper (Rust) with Nix — cargo build --release
- Create scraper systemd unit (port 4091), env from Docker config
- Fix HOME/CARGO_HOME for Rust/cargo in Nix sandbox
- Update Traefik apps.yaml: scraper -> host.docker.internal:4091
- Add iptables rules for port 4091 (Docker->host)
- Add GitHub Actions workflow: nix-build.yml (determinate-nix + deploy)
- Save iptables rules persistently
2026-07-30 18:46:45 +07:00
Asep Haryana
1ae8a53cd4
chore: ignore Nix build result symlink
2026-07-30 18:33:52 +07:00
Asep Haryana
ff52f8841c
feat(infra): Nix build for hub app, systemd deployment
...
- Add flake.nix with derivations for hub (Next.js), scraper, tools, llm-api
- Create hub systemd unit (port 3099)
- Update Traefik dynamic config to point to host hub service
- Add iptables rule for Docker-to-host communication
- Use fetchGit for submodule source resolution
2026-07-30 18:33:43 +07:00
asepharyana
be7348a27d
fix(infra): remove buffer/compress from llm-api for real SSE streaming
...
- llm-api uses llm-chain instead of common-chain
- llm-chain excludes buffer & compress middlewares
- Prevents Traefik from buffering streaming SSE responses
- Each token is now flushed immediately
2026-07-26 19:14:52 +07:00
asepharyana
43f0df4493
fix(infra): remove buffer/compress from llm-api middleware chain
...
- Buffer middleware causes SSE stream buffering
- Compress middleware breaks real-time streaming
- Added llm-chain with only secure-headers + retry + rate-limit
- llm-api router now uses llm-chain@file instead of common-chain@file
2026-07-26 19:13:08 +07:00
asepharyana
a4687c9d5b
fix(llm-api): update submodule - reasoning/content stream separation
2026-07-26 19:04:36 +07:00
asepharyana
d99bc06df3
fix(llm-api): update submodule to 6ff31b5 — Jinja template via minijinja
...
- Replaced llama-cpp-2 apply_chat_template with minijinja rendering
- reasoning_content separate from content in API response
- Works with MiniCPM5 thinking model natively
2026-07-26 18:21:43 +07:00
asepharyana and GitHub
10aeda4d4b
fix: update llm-api MODEL_PATH for new MiniCPM5 GGUF
...
Updates MODEL_PATH to MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking-Q8_0.gguf
2026-07-26 15:40:14 +07:00
asepharyana
05d6b4a055
chore: update llm-api submodule to e1f5195 (SSE streaming)
2026-07-25 11:34:30 +07:00
asepharyana
8fc4a15e0c
feat(llm-api): add MiniCPM-V LLM API service with Traefik routing
2026-07-25 11:20:15 +07:00
Asepharyana
1e10973c86
ci: trigger fresh run for updated security.yml
2026-07-24 01:39:57 +07:00
Asepharyana
b7e4203a15
fix(security): checkout git submodules for CodeQL Rust analysis
2026-07-24 01:36:17 +07:00
asepharyana
45ab3c8792
test: pr-agent v3 with model fix
2026-07-17 08:03:26 +07:00