diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..980b12f686a3f6d5b62053e1763a0e7c266f2216
--- /dev/null
+++ b/ExpressAPI/src/config/Config.ts
@@ -0,0 +1,49 @@
+class Config {
+    private static _instance: Config;
+
+    public readonly api: {
+        port: number
+    };
+
+    public readonly database: {
+        type: string, host: string, port: number, user: string, password: string, database: string
+    };
+
+    public readonly jwtSecretKey: string;
+    public readonly sessionTimeout: number;
+
+    public readonly userPasswordLength: number;
+    public readonly userPasswordSaltRounds: number;
+
+    private constructor() {
+        this.api = {
+            port: Number(process.env.API_PORT)
+        };
+
+        this.database = {
+            type    : process.env.DATABASE_TYPE,
+            host    : process.env.DATABASE_HOST,
+            port    : Number(process.env.DATABASE_PORT),
+            user    : process.env.DATABASE_USER,
+            password: process.env.DATABASE_PASSWORD,
+            database: process.env.DATABASE_NAME
+        };
+
+        this.jwtSecretKey = process.env.JWT_SECRET_KEY;
+        this.sessionTimeout = Number(process.env.SESSION_TIMEOUT);
+
+        this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH);
+        this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS);
+    }
+
+    public static get instance(): Config {
+        if ( !Config._instance ) {
+            Config._instance = new Config();
+        }
+
+        return Config._instance;
+    }
+}
+
+
+export default Config.instance;