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