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',