- 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
78 lines
2.0 KiB
YAML
78 lines
2.0 KiB
YAML
http:
|
|
routers:
|
|
# ── Hub (Portfolio SPA) ──
|
|
hub:
|
|
rule: 'Host(`asepharyana.my.id`) || Host(`www.asepharyana.my.id`) || Host(`asepharyana.web.id`) || Host(`www.asepharyana.web.id`)'
|
|
entryPoints:
|
|
- websecure
|
|
tls: {}
|
|
middlewares:
|
|
- common-chain@file
|
|
service: hub-service
|
|
|
|
# ── Scraper API ──
|
|
scraper:
|
|
rule: 'Host(`scraper.asepharyana.my.id`) || Host(`api.asepharyana.my.id`) || Host(`scraper.asepharyana.web.id`) || Host(`api.asepharyana.web.id`)'
|
|
entryPoints:
|
|
- websecure
|
|
tls: {}
|
|
middlewares:
|
|
- common-chain@file
|
|
service: scraper-service
|
|
|
|
# ── LLM API (MiniCPM-V) ──
|
|
llm-api:
|
|
rule: 'Host(`ai.asepharyana.my.id`) || Host(`ai.asepharyana.web.id`)'
|
|
entryPoints:
|
|
- websecure
|
|
tls: {}
|
|
middlewares:
|
|
- llm-chain@file
|
|
service: llm-api-service
|
|
|
|
# ── Tools (Document Scanner & Media Processing) ──
|
|
tools:
|
|
rule: 'Host(`tools.asepharyana.my.id`) || Host(`tools.asepharyana.web.id`)'
|
|
entryPoints:
|
|
- websecure
|
|
tls: {}
|
|
middlewares:
|
|
- common-chain@file
|
|
service: tools-service
|
|
|
|
# ── Jaeger UI ──
|
|
jaeger:
|
|
rule: 'Host(`jaeger.asepharyana.my.id`) || Host(`jaeger.asepharyana.web.id`)'
|
|
entryPoints:
|
|
- websecure
|
|
tls: {}
|
|
middlewares:
|
|
- common-chain@file
|
|
service: jaeger-service
|
|
|
|
services:
|
|
hub-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: 'http://host.docker.internal:3099'
|
|
|
|
scraper-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: 'http://host.docker.internal:4091'
|
|
|
|
tools-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: 'http://host.docker.internal:3500'
|
|
|
|
llm-api-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: 'http://host.docker.internal:8080'
|
|
|
|
jaeger-service:
|
|
loadBalancer:
|
|
servers:
|
|
- url: 'http://jaeger:16686'
|