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
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