You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
918 B

import fastify from "fastify";
import fastifyStatic from "fastify-static";
import fastifyHttpProxy from "fastify-http-proxy";
import { join } from "path";
let server = fastify();
/**
* If the app is in production mode, serve static assets.
* If the app is in development mode, forward 404's to Vite.
* NOTE: Static assets may be moved to nginx later... not sure yet
*/
if (process.env["NODE_ENV"] == "production") {
server.register(fastifyStatic, {
root: join(__dirname, "../public")
});
server.setNotFoundHandler((request, reply) => {
console.log("Replying with default");
return reply.sendFile("index.html");
});
} else {
server.register(fastifyHttpProxy, {
upstream: "http://localhost:3000"
});
}
server.get("/test", (request, reply) => {
reply.send({result: "Success"})
});
server.listen(parseInt(<string>process.env["SERVER_PORT"]), "0.0.0.0");