Files
asepharyana-hub/infra/traefik/dynamic/apps.yaml
T
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

78 lines
1.9 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://scraper-api:4091'
tools-service:
loadBalancer:
servers:
- url: 'http://tools:3000'
llm-api-service:
loadBalancer:
servers:
- url: 'http://llm-api:8080'
jaeger-service:
loadBalancer:
servers:
- url: 'http://jaeger:16686'