From cd280802de1b8fe9254dd5bcc0a966754fb918b0 Mon Sep 17 00:00:00 2001
From: James Long <longster@gmail.com>
Date: Fri, 29 Apr 2022 11:10:20 -0400
Subject: [PATCH] Improve how data dirs are treated

---
 Dockerfile     | 3 +++
 account-db.js  | 5 +++++
 app-sync.js    | 2 +-
 app.js         | 9 +++++++++
 load-config.js | 2 +-
 5 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 0a5db9a..4460adb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,6 +7,9 @@ RUN mkdir /app
 WORKDIR /app
 ENV NODE_ENV=production
 
+
+
+
 ADD . .
 
 RUN yarn install --production
diff --git a/account-db.js b/account-db.js
index 8a90459..8e60efd 100644
--- a/account-db.js
+++ b/account-db.js
@@ -6,6 +6,11 @@ let accountDb = null;
 
 function getAccountDb() {
   if (accountDb == null) {
+    if (!fs.existsSync(config.serverFiles)) {
+      console.log('MAKING SERVER DIR');
+      fs.mkdirSync(config.serverFiles);
+    }
+
     let dbPath = join(config.serverFiles, 'account.sqlite');
     let needsInit = !fs.existsSync(dbPath);
 
diff --git a/app-sync.js b/app-sync.js
index 9b7dbfb..d3af3ef 100644
--- a/app-sync.js
+++ b/app-sync.js
@@ -19,7 +19,7 @@ const app = express();
 app.use(errorMiddleware);
 
 async function init() {
-  let fileDir = join(__dirname, process.env.ACTUAL_USER_FILES || config.userFiles);
+  let fileDir = join(process.env.ACTUAL_USER_FILES || config.userFiles);
 
   console.log('Initializing Actual with user file dir:', fileDir);
 
diff --git a/app.js b/app.js
index ceb39af..1b43754 100644
--- a/app.js
+++ b/app.js
@@ -1,3 +1,4 @@
+const fs = require('fs');
 const express = require('express');
 const bodyParser = require('body-parser');
 const cors = require('cors');
@@ -31,6 +32,14 @@ app.get('/*', (req, res) => {
 });
 
 async function run() {
+  if (!fs.existsSync(config.serverFiles)) {
+    fs.mkdirSync(config.serverFiles);
+  }
+
+  if (!fs.existsSync(config.userFiles)) {
+    fs.mkdirSync(config.userFiles);
+  }
+
   await accountApp.init();
   await syncApp.init();
 
diff --git a/load-config.js b/load-config.js
index 5e068a6..11ef2b6 100644
--- a/load-config.js
+++ b/load-config.js
@@ -4,7 +4,7 @@ try {
 } catch (e) {
   let fs = require('fs');
   let { join } = require('path');
-  let root = fs.existsSync('/data') ? '/data' : './';
+  let root = fs.existsSync('/data') ? '/data' : __dirname;
 
   config = {
     mode: 'development',
-- 
GitLab