diff --git a/packages/nocodb/Dockerfile b/packages/nocodb/Dockerfile index 7cf4135a59..4eac4af1d3 100644 --- a/packages/nocodb/Dockerfile +++ b/packages/nocodb/Dockerfile @@ -31,9 +31,7 @@ COPY ./package*.json ./ COPY ./docker/main.js ./docker/main.js #COPY ./docker/start.sh /usr/src/appEntry/start.sh COPY ./docker/start-litestream.sh /usr/src/appEntry/start.sh -COPY ./public/css/*.css ./docker/public/css/ -COPY ./public/js/*.js ./docker/public/js/ -COPY ./public/favicon.ico ./docker/public/ +COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, diff --git a/packages/nocodb/Dockerfile.local b/packages/nocodb/Dockerfile.local index 07b3c07c00..390deb32dd 100644 --- a/packages/nocodb/Dockerfile.local +++ b/packages/nocodb/Dockerfile.local @@ -14,9 +14,7 @@ COPY ./package*.json ./ COPY ./docker/nc-gui/ ./docker/nc-gui/ COPY ./docker/main.js ./docker/index.js COPY ./docker/start-local.sh /usr/src/appEntry/start.sh -COPY ./public/css/*.css ./docker/public/css/ -COPY ./public/js/*.js ./docker/public/js/ -COPY ./public/favicon.ico ./docker/public/ +COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, diff --git a/packages/nocodb/src/Noco.ts b/packages/nocodb/src/Noco.ts index 942ce717f6..1b93161bb7 100644 --- a/packages/nocodb/src/Noco.ts +++ b/packages/nocodb/src/Noco.ts @@ -1,5 +1,6 @@ import Sentry, { Handlers } from '@sentry/node'; import { Logger } from '@nestjs/common'; +import path from 'path'; import { NestFactory } from '@nestjs/core'; import clear from 'clear'; import * as express from 'express'; @@ -122,6 +123,7 @@ export default class Noco { const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; server.use(NcToolGui.expressMiddleware(dashboardPath)); + server.use(express.static(path.join(__dirname, 'public'))); server.get('/', (_req, res) => res.redirect(dashboardPath)); this.initSentryErrorHandler(server); diff --git a/packages/nocodb/src/app.module.ts b/packages/nocodb/src/app.module.ts index e87e17a37e..f5a4e8f1b7 100644 --- a/packages/nocodb/src/app.module.ts +++ b/packages/nocodb/src/app.module.ts @@ -5,7 +5,6 @@ import { EventEmitterModule as NestJsEventEmitter } from '@nestjs/event-emitter' import { GlobalExceptionFilter } from './filters/global-exception/global-exception.filter'; import { GlobalMiddleware } from './middlewares/global/global.middleware'; import { GuiMiddleware } from './middlewares/gui/gui.middleware'; -import { PublicMiddleware } from './middlewares/public/public.middleware'; import { DatasModule } from './modules/datas/datas.module'; import { EventEmitterModule } from './modules/event-emitter/event-emitter.module'; import { AuthService } from './services/auth.service'; @@ -59,8 +58,6 @@ export class AppModule { consumer .apply(GuiMiddleware) .forRoutes({ path: '*', method: RequestMethod.GET }) - .apply(PublicMiddleware) - .forRoutes({ path: '*', method: RequestMethod.GET }) .apply(GlobalMiddleware) .forRoutes({ path: '*', method: RequestMethod.ALL }); } diff --git a/packages/nocodb/src/middlewares/public/public.middleware.spec.ts b/packages/nocodb/src/middlewares/public/public.middleware.spec.ts deleted file mode 100644 index 7b5e460f52..0000000000 --- a/packages/nocodb/src/middlewares/public/public.middleware.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PublicMiddleware } from './public.middleware'; - -describe('PublicMiddleware', () => { - it('should be defined', () => { - expect(new PublicMiddleware()).toBeDefined(); - }); -}); diff --git a/packages/nocodb/src/middlewares/public/public.middleware.ts b/packages/nocodb/src/middlewares/public/public.middleware.ts deleted file mode 100644 index 4c5761065c..0000000000 --- a/packages/nocodb/src/middlewares/public/public.middleware.ts +++ /dev/null @@ -1,23 +0,0 @@ -import path, { join } from 'path'; -import { Injectable } from '@nestjs/common'; -import express from 'express'; -import isDocker from 'is-docker'; -import type { NestMiddleware } from '@nestjs/common'; - -@Injectable() -export class PublicMiddleware implements NestMiddleware { - use(req: any, res: any, next: () => void) { - // redirect root to dashboard - if (req.path === '/') { - const dashboardPath = process.env.NC_DASHBOARD_URL || '/dashboard'; - return res.redirect(dashboardPath); - } - - // serve static files from public folder - if (isDocker()) { - express.static(join(process.cwd(), 'docker', 'public'))(req, res, next); - } else { - express.static(join(process.cwd(), 'public'))(req, res, next); - } - } -} diff --git a/packages/nocodb/public/css/fonts.montserrat.css b/packages/nocodb/src/public/css/fonts.montserrat.css similarity index 100% rename from packages/nocodb/public/css/fonts.montserrat.css rename to packages/nocodb/src/public/css/fonts.montserrat.css diff --git a/packages/nocodb/public/css/fonts.roboto.css b/packages/nocodb/src/public/css/fonts.roboto.css similarity index 100% rename from packages/nocodb/public/css/fonts.roboto.css rename to packages/nocodb/src/public/css/fonts.roboto.css diff --git a/packages/nocodb/public/css/materialdesignicons.5.x.min.css b/packages/nocodb/src/public/css/materialdesignicons.5.x.min.css similarity index 100% rename from packages/nocodb/public/css/materialdesignicons.5.x.min.css rename to packages/nocodb/src/public/css/materialdesignicons.5.x.min.css diff --git a/packages/nocodb/public/css/swagger-ui-bundle.4.5.2.min.css b/packages/nocodb/src/public/css/swagger-ui-bundle.4.5.2.min.css similarity index 100% rename from packages/nocodb/public/css/swagger-ui-bundle.4.5.2.min.css rename to packages/nocodb/src/public/css/swagger-ui-bundle.4.5.2.min.css diff --git a/packages/nocodb/public/css/vuetify.2.x.min.css b/packages/nocodb/src/public/css/vuetify.2.x.min.css similarity index 100% rename from packages/nocodb/public/css/vuetify.2.x.min.css rename to packages/nocodb/src/public/css/vuetify.2.x.min.css diff --git a/packages/nocodb/public/favicon.ico b/packages/nocodb/src/public/favicon.ico similarity index 100% rename from packages/nocodb/public/favicon.ico rename to packages/nocodb/src/public/favicon.ico diff --git a/packages/nocodb/public/icon.png b/packages/nocodb/src/public/icon.png similarity index 100% rename from packages/nocodb/public/icon.png rename to packages/nocodb/src/public/icon.png diff --git a/packages/nocodb/public/js/axios.0.19.2.min.js b/packages/nocodb/src/public/js/axios.0.19.2.min.js similarity index 100% rename from packages/nocodb/public/js/axios.0.19.2.min.js rename to packages/nocodb/src/public/js/axios.0.19.2.min.js diff --git a/packages/nocodb/public/js/redoc.standalone.min.js b/packages/nocodb/src/public/js/redoc.standalone.min.js similarity index 100% rename from packages/nocodb/public/js/redoc.standalone.min.js rename to packages/nocodb/src/public/js/redoc.standalone.min.js diff --git a/packages/nocodb/public/js/swagger-ui-bundle.4.5.2.min.js b/packages/nocodb/src/public/js/swagger-ui-bundle.4.5.2.min.js similarity index 100% rename from packages/nocodb/public/js/swagger-ui-bundle.4.5.2.min.js rename to packages/nocodb/src/public/js/swagger-ui-bundle.4.5.2.min.js diff --git a/packages/nocodb/public/js/vue.2.6.14.min.js b/packages/nocodb/src/public/js/vue.2.6.14.min.js similarity index 100% rename from packages/nocodb/public/js/vue.2.6.14.min.js rename to packages/nocodb/src/public/js/vue.2.6.14.min.js diff --git a/packages/nocodb/public/js/vue.global.js b/packages/nocodb/src/public/js/vue.global.js similarity index 100% rename from packages/nocodb/public/js/vue.global.js rename to packages/nocodb/src/public/js/vue.global.js diff --git a/packages/nocodb/public/js/vuetify.2.x.min.js b/packages/nocodb/src/public/js/vuetify.2.x.min.js similarity index 100% rename from packages/nocodb/public/js/vuetify.2.x.min.js rename to packages/nocodb/src/public/js/vuetify.2.x.min.js diff --git a/packages/nocodb/webpack.config.js b/packages/nocodb/webpack.config.js index 9f462d4c1d..4e3789a283 100644 --- a/packages/nocodb/webpack.config.js +++ b/packages/nocodb/webpack.config.js @@ -44,7 +44,7 @@ module.exports = { plugins: [ new webpack.EnvironmentPlugin(['EE']), new CopyPlugin({ - patterns: [{ from: 'public', to: 'public' }], + patterns: [{ from: 'src/public', to: 'public' }], }), ],