Fix jamid.node path in server

Add npm script in server to generate keys.
Improve dockerfile to generate server keys.
Add dotenv and dotenv-cli dependencies to server

Change-Id: Ibcb21578b4cb59d3bc9a99fa0e832d3b30cfb01a
diff --git a/server/src/vault.ts b/server/src/vault.ts
index 45548db..07e2914 100644
--- a/server/src/vault.ts
+++ b/server/src/vault.ts
@@ -15,8 +15,6 @@
  * License along with this program.  If not, see
  * <https://www.gnu.org/licenses/>.
  */
-import { readFile } from 'node:fs/promises';
-
 import { importPKCS8, importSPKI, KeyLike } from 'jose';
 import { Service } from 'typedi';
 
@@ -25,13 +23,16 @@
   privateKey!: KeyLike;
   publicKey!: KeyLike;
 
-  // TODO: Convert to environment variables and check if defined
   async build() {
-    const privateKeyBuffer = await readFile('privkey.pem');
-    this.privateKey = await importPKCS8(privateKeyBuffer.toString(), 'EdDSA');
+    const privatekey = process.env.PRIVATE_KEY;
+    const publicKey = process.env.PUBLIC_KEY;
 
-    const publicKeyBuffer = await readFile('pubkey.pem');
-    this.publicKey = await importSPKI(publicKeyBuffer.toString(), 'EdDSA');
+    if (!privatekey || !publicKey) {
+      throw new Error('Missing private or public key environment variables. Try running "npm run genkeys"');
+    }
+
+    this.privateKey = await importPKCS8(privatekey, 'EdDSA');
+    this.publicKey = await importSPKI(publicKey, 'EdDSA');
 
     return this;
   }