diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index 87390a494..7f644fbc0 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -1,14 +1,12 @@ import express from "express"; -import path from "path"; +import path, { join } from "path"; import favicon from "serve-favicon"; import cookieParser from "cookie-parser"; import helmet from "helmet"; import compression from "compression"; -import { fileURLToPath } from "url"; -import { dirname } from "path"; import sessionParser from "./routes/session_parser.js"; import config from "./services/config.js"; -import utils from "./services/utils.js"; +import utils, { getResourceDir } from "./services/utils.js"; import assets from "./routes/assets.js"; import routes from "./routes/routes.js"; import custom from "./routes/custom.js"; @@ -26,8 +24,6 @@ import "./becca/becca_loader.js"; export default async function buildApp() { const app = express(); - const scriptDir = dirname(fileURLToPath(import.meta.url)); - // Initialize DB sql_init.initializeDb(); @@ -67,8 +63,10 @@ export default async function buildApp() { console.log("Database not initialized yet. LLM features will be initialized after setup."); } + const assetsDir = getResourceDir(); + // view engine setup - app.set("views", path.join(scriptDir, "views")); + app.set("views", path.join(assetsDir, "views")); app.engine("ejs", (await import("ejs")).renderFile); app.set("view engine", "ejs"); @@ -105,12 +103,13 @@ export default async function buildApp() { app.use(express.raw({ limit: "500mb" })); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); - app.use(express.static(path.join(scriptDir, "public/root"))); - app.use(`/manifest.webmanifest`, express.static(path.join(scriptDir, "public/manifest.webmanifest"))); - app.use(`/robots.txt`, express.static(path.join(scriptDir, "public/robots.txt"))); - app.use(`/icon.png`, express.static(path.join(scriptDir, "public/icon.png"))); + + app.use(express.static(path.join(assetsDir, "public/root"))); + app.use(`/manifest.webmanifest`, express.static(path.join(assetsDir, "public/manifest.webmanifest"))); + app.use(`/robots.txt`, express.static(path.join(assetsDir, "public/robots.txt"))); + app.use(`/icon.png`, express.static(path.join(assetsDir, "public/icon.png"))); app.use(sessionParser); - app.use(favicon(`${scriptDir}/assets/icon.ico`)); + app.use(favicon(`${assetsDir}/assets/icon.ico`)); if (openID.isOpenIDEnabled()) app.use(auth(openID.generateOAuthConfig())); diff --git a/apps/server/src/views/desktop.ejs b/apps/server/src/assets/views/desktop.ejs similarity index 100% rename from apps/server/src/views/desktop.ejs rename to apps/server/src/assets/views/desktop.ejs diff --git a/apps/server/src/views/login.ejs b/apps/server/src/assets/views/login.ejs similarity index 100% rename from apps/server/src/views/login.ejs rename to apps/server/src/assets/views/login.ejs diff --git a/apps/server/src/views/mobile.ejs b/apps/server/src/assets/views/mobile.ejs similarity index 100% rename from apps/server/src/views/mobile.ejs rename to apps/server/src/assets/views/mobile.ejs diff --git a/apps/server/src/views/partials/windowGlobal.ejs b/apps/server/src/assets/views/partials/windowGlobal.ejs similarity index 100% rename from apps/server/src/views/partials/windowGlobal.ejs rename to apps/server/src/assets/views/partials/windowGlobal.ejs diff --git a/apps/server/src/views/set_password.ejs b/apps/server/src/assets/views/set_password.ejs similarity index 100% rename from apps/server/src/views/set_password.ejs rename to apps/server/src/assets/views/set_password.ejs diff --git a/apps/server/src/views/setup.ejs b/apps/server/src/assets/views/setup.ejs similarity index 100% rename from apps/server/src/views/setup.ejs rename to apps/server/src/assets/views/setup.ejs diff --git a/apps/server/src/views/share/404.ejs b/apps/server/src/assets/views/share/404.ejs similarity index 100% rename from apps/server/src/views/share/404.ejs rename to apps/server/src/assets/views/share/404.ejs diff --git a/apps/server/src/views/share/page.ejs b/apps/server/src/assets/views/share/page.ejs similarity index 100% rename from apps/server/src/views/share/page.ejs rename to apps/server/src/assets/views/share/page.ejs diff --git a/apps/server/src/views/share/tree_item.ejs b/apps/server/src/assets/views/share/tree_item.ejs similarity index 100% rename from apps/server/src/views/share/tree_item.ejs rename to apps/server/src/assets/views/share/tree_item.ejs