diff --git a/Dockerfile b/Dockerfile index ced0eef1d..ec5655818 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,15 @@ -FROM node:bookworm-slim -ENV NODE_ENV=production +FROM node:20-slim WORKDIR /app -COPY ["package.json", "./"] +RUN corepack enable -RUN npm install +COPY package.json pnpm-lock.yaml* ./ + +RUN pnpm install --frozen-lockfile COPY . . -CMD [ "node", "index.js" ] \ No newline at end of file +EXPOSE 8080 + +CMD ["pnpm", "start"] diff --git a/FROM node:20 WORKDIR /Dockerfile b/FROM node:20 WORKDIR /Dockerfile new file mode 100644 index 000000000..86d91eea1 --- /dev/null +++ b/FROM node:20 WORKDIR /Dockerfile @@ -0,0 +1,13 @@ +FROM node:20 + +WORKDIR /app + +COPY package*.json ./ +RUN npm install -g pnpm +RUN pnpm install + +COPY . . + +EXPOSE 8080 + +CMD ["pnpm", "start"] diff --git a/index.js b/index.js index 3382404d8..03fd7e2c1 100644 --- a/index.js +++ b/index.js @@ -10,14 +10,14 @@ import basicAuth from "express-basic-auth"; import bareMuxNode from "@mercuryworkshop/bare-mux/node"; import { server as wisp } from "@mercuryworkshop/wisp-js/server"; import mime from "mime"; -import fetch from "node-fetch"; +const fetch = global.fetch; // import { setupMasqr } from "./Masqr.js"; import config from "./config.js"; console.log(chalk.yellow("🚀 Starting server...")); const __dirname = process.cwd(); -const server = http.createServer(); +const server = http.createServer((req, res) => app(req, res)); const app = express(); const bareServer = createBareServer("/ca/"); const { baremuxPath } = bareMuxNode; @@ -160,8 +160,6 @@ server.on("upgrade", (req, socket, head) => { } }); -server.on("listening", () => { - console.log(chalk.green(`🌍 Server is running on http://localhost:${PORT}`)); +server.listen(PORT, "0.0.0.0", () => { + console.log(`🌍 Server running on port ${PORT}`); }); - -server.listen({ port: PORT });