feat: 接入 AnyTLS 节点托管和用户流量同步

This commit is contained in:
2026-09-29 13:35:44 +08:00
parent 586c2399d1
commit ac5fed695c
24 changed files with 1413 additions and 185 deletions
+39
View File
@@ -0,0 +1,39 @@
import { readFile } from "node:fs/promises";
import path from "node:path";
import { SING_BOX_VERSION } from "@/lib/anytls";
import { createHash } from "node:crypto";
export const runtime = "nodejs";
export async function GET(
request: Request,
context: { params: Promise<{ arch: string }> },
) {
const { arch } = await context.params;
if (!["amd64", "arm64"].includes(arch))
return new Response(null, { status: 404 });
try {
const bytes = await readFile(
path.join(
process.cwd(),
"data/artifacts",
`sing-box-${SING_BOX_VERSION}-linux-${arch}`,
),
);
const checksum = createHash("sha256").update(bytes).digest("hex");
if (new URL(request.url).searchParams.has("sha256"))
return new Response(checksum, {
headers: { "Cache-Control": "no-store" },
});
return new Response(bytes, {
headers: {
"Content-Type": "application/octet-stream",
"Cache-Control": "no-store",
"X-Content-SHA256": checksum,
},
});
} catch {
return new Response(
"尚未构建节点程序,请运行 scripts/build-sing-box.sh。",
{ status: 503 },
);
}
}