forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import { ctx } from "context";
2import cors from "cors";
3import type { Request, Response } from "express";
4import express from "express";
5import { createProxyMiddleware } from "http-proxy-middleware";
6import { createServer } from "lexicon";
7import dns from "node:dns";
8import API from "./xrpc";
9dns.setDefaultResultOrder("ipv4first");
10
11const proxyMiddleware = createProxyMiddleware<Request, Response>({
12 target: "http://localhost:8000",
13 changeOrigin: true,
14});
15
16let server = createServer({
17 validateResponse: false,
18 payload: {
19 jsonLimit: 100 * 1024, // 100kb
20 textLimit: 100 * 1024, // 100kb
21 blobLimit: 5 * 1024 * 1024, // 5mb
22 },
23});
24
25server = API(server, ctx);
26
27const app = express();
28app.use(cors());
29app.use(server.xrpc.router);
30app.use(proxyMiddleware);
31
32app.listen(process.env.ROCKSKY_XPRC_PORT || 3004, () => {
33 console.log(
34 `Rocksky XRPC API is running on port ${process.env.ROCKSKY_XRPC_PORT || 3004}`,
35 );
36});