From b10cd14c96b0c1638f1b7f0dca5a4498005dbfab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kratochv=C3=ADl?= <xkrato10@fi.muni.cz> Date: Sun, 12 Jun 2022 10:00:21 +0200 Subject: [PATCH] fix: nestjs server port is specified .env file and it applies everywhere - it's not hard-coded anymore --- backend/package-lock.json | 54 +++++++++++++++++++++++++++ backend/package.json | 1 + backend/src/app.module.ts | 5 ++- backend/src/main.ts | 5 ++- docker-compose.yml | 3 +- nginx/templates/default.conf.template | 7 ++-- 6 files changed, 68 insertions(+), 7 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index a85dbef..ca5a6ee 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -10,6 +10,7 @@ "license": "UNLICENSED", "dependencies": { "@nestjs/common": "^8.0.0", + "@nestjs/config": "^2.1.0", "@nestjs/core": "^8.0.0", "@nestjs/platform-express": "^8.0.0", "jshint": "^2.13.4", @@ -1541,6 +1542,22 @@ } } }, + "node_modules/@nestjs/config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-2.1.0.tgz", + "integrity": "sha512-wUpt1/QJEN7xnJl4pM3c9rHrY1widq2yPOZfjaMD1//XAP9LLHTaW+RxSEG6BSGIm3w4wGtjco+gKNB2WL7yRg==", + "dependencies": { + "dotenv": "16.0.1", + "dotenv-expand": "8.0.3", + "lodash": "4.17.21", + "uuid": "8.3.2" + }, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^6.0.0 || ^7.2.0" + } + }, "node_modules/@nestjs/core": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.4.6.tgz", @@ -3523,6 +3540,22 @@ "domelementtype": "1" } }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", + "engines": { + "node": ">=12" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -9979,6 +10012,17 @@ "uuid": "8.3.2" } }, + "@nestjs/config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-2.1.0.tgz", + "integrity": "sha512-wUpt1/QJEN7xnJl4pM3c9rHrY1widq2yPOZfjaMD1//XAP9LLHTaW+RxSEG6BSGIm3w4wGtjco+gKNB2WL7yRg==", + "requires": { + "dotenv": "16.0.1", + "dotenv-expand": "8.0.3", + "lodash": "4.17.21", + "uuid": "8.3.2" + } + }, "@nestjs/core": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.4.6.tgz", @@ -11518,6 +11562,16 @@ "domelementtype": "1" } }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", diff --git a/backend/package.json b/backend/package.json index 8c71fb3..21cdb97 100644 --- a/backend/package.json +++ b/backend/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "@nestjs/common": "^8.0.0", + "@nestjs/config": "^2.1.0", "@nestjs/core": "^8.0.0", "@nestjs/platform-express": "^8.0.0", "jshint": "^2.13.4", diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 8662803..c3a23fc 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -1,9 +1,12 @@ import { Module } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ - imports: [], + imports: [ConfigModule.forRoot({ + envFilePath: '../.env', + })], controllers: [AppController], providers: [AppService], }) diff --git a/backend/src/main.ts b/backend/src/main.ts index 13cad38..55127cb 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -1,8 +1,11 @@ import { NestFactory } from '@nestjs/core'; +import { ConfigService } from '@nestjs/config'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); - await app.listen(3000); + const configService = new ConfigService(); + console.log('NestJS server is listening on: http://localhost:' + configService.get('SERVER_PORT')); + await app.listen(configService.get('SERVER_PORT')); } bootstrap(); diff --git a/docker-compose.yml b/docker-compose.yml index d407385..a04f092 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: command: npm run start:debug env_file: .env ports: - - 127.0.0.1:${SERVER_PORT}:3000 + - 127.0.0.1:${SERVER_PORT}:${SERVER_PORT} volumes: # changes in host's ./backend directory will be propagated to the container - ./backend:/usr/src/app @@ -53,6 +53,7 @@ services: nginx: container_name: nginx image: nginx:1.21.6-alpine + env_file: .env ports: - 127.0.0.1:${NGINX_PORT}:${NGINX_PORT} volumes: diff --git a/nginx/templates/default.conf.template b/nginx/templates/default.conf.template index 1b0ec6a..831ce45 100644 --- a/nginx/templates/default.conf.template +++ b/nginx/templates/default.conf.template @@ -1,6 +1,5 @@ -upstream nest_server { - # TODO: must be same port as the nestJS server container port - server server:3000; +upstream nestjs_server { + server server:${SERVER_PORT}; } server { @@ -22,6 +21,6 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass http://nest_server; + proxy_pass http://nestjs_server; } } -- GitLab