diff --git a/src/config/config.model.ts b/src/config/config.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..18c0caeba7f84378cc56d6b3d2ad57b5a4878071
--- /dev/null
+++ b/src/config/config.model.ts
@@ -0,0 +1,7 @@
+export interface IServerConfig {
+  port: number;
+}
+
+export interface IConfig {
+  server: IServerConfig;
+}
diff --git a/src/config/config.template.json b/src/config/config.template.json
new file mode 100644
index 0000000000000000000000000000000000000000..88fb6118efe29a8f3815767df9fb60654b4ffabf
--- /dev/null
+++ b/src/config/config.template.json
@@ -0,0 +1,5 @@
+{
+  "server": {
+    "port": 0
+  }
+}
diff --git a/src/config/index.ts b/src/config/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8baff1d005e27bcd6b8e8e3ef1b38ec103005d13
--- /dev/null
+++ b/src/config/index.ts
@@ -0,0 +1,7 @@
+import _config from './config.json';
+import { IConfig } from './config.model';
+
+const config = _config as IConfig;
+
+export const server = config.server;
+export default config;
diff --git a/src/main.ts b/src/main.ts
index 13cad38cff92aa3b3d3ef6232306e450cadf5713..a946614e106906a5e7958b5f284df1e53e6ad116 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,8 +1,9 @@
 import { NestFactory } from '@nestjs/core';
 import { AppModule } from './app.module';
+import { server } from './config';
 
 async function bootstrap() {
   const app = await NestFactory.create(AppModule);
-  await app.listen(3000);
+  await app.listen(server.port);
 }
 bootstrap();
diff --git a/tsconfig.json b/tsconfig.json
index adb614cab7d04d6f2391c7663b833b296ed334e1..7a64609354423e340702d67a7e2b1aed65a35319 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,6 +16,7 @@
     "noImplicitAny": false,
     "strictBindCallApply": false,
     "forceConsistentCasingInFileNames": false,
-    "noFallthroughCasesInSwitch": false
+    "noFallthroughCasesInSwitch": false,
+    "resolveJsonModule": true
   }
 }