mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-09-19 16:39:15 +00:00
Previously only the Electron GUI had installers; server admins had to build the
core by hand (`make build` -> bare binary). This adds a first-class server
distribution:
- `make core-dist` -> packaging/core-dist.sh -> cmd/build/dist/
llmsproxy_<ver>_amd64.deb (systemd unit + adapters + example config)
llmsproxy-<ver>.x86_64.rpm
llmsproxy-<ver>-linux-amd64.tar.gz
- nfpm config (packaging/nfpm.yaml): binary to /usr/bin, systemd unit with the
measured memory tuning (GOGC=50, MALLOC_ARENA_MAX=2) baked in, Lua adapters to
/usr/share/llmsproxy/adapters, repo's config.yaml as the example.
- postinst seeds /etc/llmsproxy/config.yaml on first install and keeps existing
runtime state across reinstalls; prerm stops the service on removal.
Gotchas handled: nfpm v2 here does not render `{{ .Env.VERSION }}`, so the script
stamps the version into a throwaway config copy; and under `set -o pipefail` the
idiom `strings | grep -q` is broken (grep -q closes the pipe and strings dies on
SIGPIPE -> spurious 141), so the symbol sanity-gate stages strings in a temp file.
README (zh/en) updated: memory figures replaced with production-measured
32-35 MB settled (was 37-42), and the packaging docs now describe core-dist and
the dockerized Windows build.
60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
# nfpm config for the llmsproxy core gateway binary.
|
|
# The version placeholder below is substituted by packaging/core-dist.sh (nfpm v2
|
|
# here does not honour {{ .Env.VERSION }} template rendering), so do not edit it
|
|
# by hand.
|
|
name: llmsproxy
|
|
arch: amd64
|
|
platform: linux
|
|
version: __VERSION__
|
|
epoch: "1"
|
|
section: net
|
|
priority: optional
|
|
maintainer: JianFeeeee <dev@modelrouter.local>
|
|
description: |
|
|
Unified OpenAI-compatible multi-source LLM gateway.
|
|
Routes requests across multiple upstream LLM providers with Lua adapters,
|
|
model scheduling, quota windows, an elastic Lua worker pool, and a Web UI.
|
|
vendor: ModelRouter
|
|
homepage: https://gitcode.com/JianFeeeee/ModelRouter
|
|
license: MIT
|
|
contents:
|
|
# binary
|
|
- src: ./cmd/build/llmsproxy
|
|
dst: /usr/bin/llmsproxy
|
|
file_info:
|
|
mode: 0755
|
|
# systemd unit (memory tuning baked in)
|
|
- src: ./packaging/llmsproxy.service
|
|
dst: /etc/systemd/system/llmsproxy.service
|
|
file_info:
|
|
mode: 0644
|
|
# example config (seeded to /etc/llmsproxy on first install by postinst)
|
|
- src: ./config.yaml
|
|
dst: /usr/share/llmsproxy/config.example.yaml
|
|
file_info:
|
|
mode: 0644
|
|
# built-in Lua adapters (deployed to /etc/llmsproxy/adapters)
|
|
- src: ./internal/lua/adapters/*.lua
|
|
dst: /usr/share/llmsproxy/adapters/
|
|
file_info:
|
|
mode: 0644
|
|
# README pointer
|
|
- src: ./README.md
|
|
dst: /usr/share/doc/llmsproxy/README.md
|
|
file_info:
|
|
mode: 0644
|
|
|
|
scripts:
|
|
postinstall: ./packaging/postinst.sh
|
|
preremove: ./packaging/prerm.sh
|
|
|
|
rpm:
|
|
group: Applications/Internet
|
|
summary: Unified OpenAI-compatible multi-source LLM gateway
|
|
compression: gzip
|
|
|
|
deb:
|
|
compression: gzip
|
|
fields:
|
|
Recommends: ca-certificates
|