Asep Haryana
0c36007da4
chore(infra): bump llm-api flake rev to 5f7ead5
2026-08-03 11:46:08 +07:00
monrepo-bot
b7d02647d9
chore: update llm-api to 5f7ead550308
2026-08-03 04:45:04 +00:00
Asep Haryana and Claude Opus 5
ade2798ded
chore(infra): bump llm-api flake rev to 7cec411
...
Fixes streaming reasoning/content split (robust boundary detection,
flush un-tagged output) and renders reasoning in the chat UI.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 11:04:18 +07:00
monrepo-bot
ef14ca431f
chore: update llm-api to 7cec411cba7c
2026-08-03 04:04:04 +00:00
Asep Haryana and Claude Opus 5
f681e624b3
chore(infra): bump llm-api flake rev to b636496
...
Deploys the generation-flow refactor (unified generate, streaming fixes,
tool-calling, strict model validation, AddBos::Never).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 09:50:23 +07:00
Asep Haryana and Claude Opus 5
fdbdcbc1ec
fix(ci): trigger nix deploy on every push to main
...
GitHub path filters do not match submodule gitlink changes, so the
`paths: apps/**` filter meant a submodule pointer update never triggered
the deploy. Drop the filter so any push to main deploys (matches the
documented "Push to main -> nix build -> systemctl restart").
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 09:35:56 +07:00
Asep Haryana and Claude Opus 5
b7b60e9125
chore(ci): remove legacy Docker workflows (moved to Nix)
...
Docker was decommissioned 2026-08-02 but docker-build-push.yml and
deploy-docker.yml were left behind. They still listened to
repository_dispatch: [submodule-updated], so every app push queued a
redundant Docker build alongside the intended Nix deploy.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 09:13:38 +07:00
monrepo-bot
722709f6fb
chore: update llm-api to b63649649758
2026-08-03 01:58:50 +00:00
Asep Haryana
d20643fbbd
fix(infra): ship next.config.ts into Nix store for hub
...
next start re-reads next.config.ts at runtime; the OLD store had only
.next/public/package.json/node_modules, so images.maximumDiskCacheSize
fell back to defaults (undefined) and the image-optimizer disk LRU did
mkdir(<store>/.next/cache/images) -> EACCES on every optimized image.
Also now that next.config.ts sets maximumDiskCacheSize:0 +
isrFlushToDisk:false, shipping the file makes runtime match the baked
build config, eliminating the EACCES spike.
2026-08-03 04:33:46 +07:00
Asep Haryana
7da1727603
fix(firewall): accept IPv6 MLD/ND multicast (ff02::1, ff02::2, ff02::fb)
...
Neighbor multicast to ff02::1 (MLDv2 reports from other hosts) was
hitting the LOG+DROP tail — ~1800 FW6-DROP lines/6h in journald,
i.e. ~5/min of pure log spam from ICMPv6 layer-2 discovery. Accept
link-local multicast ranges before the logging rule.
2026-08-03 04:06:32 +07:00
Asep Haryana
9e9fd229d0
chore(infra): bump hub flake rev to 6829c7e (image disk cache fix)
2026-08-03 04:05:23 +07:00
Asep Haryana
40095f75f4
chore(infra): bump hub submodule to 6829c7efe2a735d249f5135bff4a0fc28411a295 (disable Next image disk cache)
2026-08-03 04:05:15 +07:00
asepharyana
3781a8882d
chore(infra): scraper OTEL env drop-in (OTLP endpoint 127.0.0.1:4317)
2026-08-02 21:05:20 +07:00
asepharyana
da2f4a2f2c
chore(infra): prometheus file_sd targets for nix services (gmw-backend/api-metrics)
2026-08-02 21:05:12 +07:00
asepharyana
ad22a39a9e
chore(infra): use full sha for hub flake rev
2026-08-02 20:56:16 +07:00
asepharyana and Asep Haryana
2f969972a1
chore(infra): bump hub flake rev to f35edb0 (dashboard fix)
2026-08-02 20:55:55 +07:00
monrepo-bot
620f06fbe0
chore: update hub to f35edb00d726
2026-08-02 13:55:07 +00:00
asepharyana
e6033c8b12
feat(infra): hardening firewall + sysctl + ssh
...
- deny-by-default iptables/ip6tables: public cuma 22/80/443/4013,
sisanya localhost + tailscale CGNAT; log FW-DROP rate-limited
- persist via netfilter-persistent (rules.v4/v6) + /usr/local/bin/firewall.sh
- sysctl hardening: syncookies, rp_filter, redirect off, kptr/dmesg
restrict, protected links, somaxconn, tcp retries tuner
- sshd: PasswordAuthentication no (fix 50-cloud-init.conf override),
PermitRootLogin prohibit-password, MaxAuthTries 4, LoginGraceTime 30,
X11Forwarding no
2026-08-02 20:22:49 +07:00
asepharyana
500af023de
fix(infra): otel collector no self-loop trace export
...
- hapus otlp/jaeger exporter (jaeger mati sejak Docker dihapus) yang
nunjuk ke 127.0.0.1:4317 (port receiver sendiri) -> loop trace tanpa
henti, ~1.8jt baris log/hari di journal
- traces pipeline -> nop exporter, metrics -> prometheus
- logs pipeline dihapus (tidak ada konsumen)
2026-08-02 19:59:31 +07:00
Asep Haryana
e280d196f9
chore: update llm-api to 344bc195fa95
2026-08-02 17:02:59 +07:00
Asep Haryana
4927338c98
docs: sync infra docs to Caddy+Nix 4000s (Traefik/Docker legacy)
2026-08-02 16:54:17 +07:00
monrepo-bot
54ee903647
chore: update llm-api to 344bc195fa95
2026-08-02 09:45:06 +00:00
Asep Haryana
35cbcdcc92
chore(infra): add tuned Caddyfile.prod reference
2026-08-02 16:37:05 +07:00
monrepo-bot
324fe08913
chore: update llm-api to 81c51772495c
2026-08-02 09:18:56 +00:00
Asep Haryana
e171201b1c
chore: sync port references and docs to 4000s infra
2026-08-02 16:16:40 +07:00
Asep Haryana
ec1394bdc5
chore: bump tools submodule (ports 4007/4008)
2026-08-02 14:31:47 +07:00
asepharyana
f0787b5f23
fix(nix): restrict flake to x86_64-linux (nixpkgs 26.11 dropped darwin)
2026-08-01 18:03:44 +07:00
asepharyana
0df6c35d5a
ci: publish flake to FlakeHub (rolling)
2026-08-01 17:58:22 +07:00
Asep Haryana
5d21848e87
perf(infra): traefik response speed - HTTP/3 + backend conn pooling
...
- entryPoints.websecure.http3: enable QUIC (UDP 443, alt-svc h3)
- serversTransport maxIdleConnsPerHost 2->100: reuse backend keep-alive
- forwardingTimeouts.dialTimeout 30s->3s: fail fast on dead backends
- disable version-check/anonymous-usage network chatter
2026-08-01 13:12:50 +07:00
Asep Haryana
b96548bffa
fix(infra): raise upload-buffer response cap to 2GB
...
Chunked file streaming (TeleUploader) serves multi-part bodies up to
120MB+; 10MB maxResponseBodyBytes made every big download 500.
2026-08-01 12:52:34 +07:00
Asep Haryana
e19fa76dc3
fix(infra): add teleuploader traefik router for upload hostnames
...
Restore upload.asepharyana.my.id/.web.id routing lost during Nix migration
(docker label router removed with container). Upload chain uses 2GB body
buffer + dedicated 300/100 rate limit, service targets bun on host:3000.
2026-08-01 12:34:22 +07:00
Asep Haryana
c535ee7858
ci(otel): add logs pipeline to otel-collector (OTLP /v1/logs 404 fix)
2026-07-31 14:13:56 +07:00
Asep Haryana
80b5161630
ci(infra): traefik dynamic config path -> /home/code (drop /root dependency)
2026-07-31 14:02:07 +07:00
Asep Haryana
1ccc0355ac
ci(traefik): add hermes dashboard route via file provider
2026-07-31 13:50:46 +07:00
asepharyana
12aed642a9
ci(traefik): add zeavis routes via file provider (Nix migration)
2026-07-31 12:42:14 +07:00
asepharyana
f8e3dccb44
ci(traefik): lidm routes -> host ports 3100/3101 (3000/3001 occupied by teleuploader+gmw)
2026-07-31 11:37:13 +07:00
asepharyana
1811c6adc2
ci(traefik): add lidm frontend+backend routes via file provider (Nix migration)
2026-07-31 11:29:47 +07:00
ceeac5c02f
chore(deps): bump the github-actions group across 1 directory with 3 updates ( #9 )
...
Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout ), [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action ) and [DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action ).
Updates `actions/checkout` from 4 to 7
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v7 )
Updates `DeterminateSystems/nix-installer-action` from 16 to 22
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases )
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v16...v22 )
Updates `DeterminateSystems/magic-nix-cache-action` from 8 to 14
- [Release notes](https://github.com/determinatesystems/magic-nix-cache-action/releases )
- [Commits](https://github.com/determinatesystems/magic-nix-cache-action/compare/v8...v14 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: DeterminateSystems/magic-nix-cache-action
dependency-version: '14'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: DeterminateSystems/nix-installer-action
dependency-version: '22'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-30 22:34:36 +07:00
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
GitHub Action
d6b9a0806b
chore: update manifests and submodules [skip ci]
2026-07-30 15:23:34 +00: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