Skip to content
Snippets Groups Projects
Commit c20648c3 authored by James Long's avatar James Long
Browse files

Improve bootstrap process

parent fa329485
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,5 @@ ADD . . ...@@ -12,6 +12,5 @@ ADD . .
RUN yarn install --production RUN yarn install --production
RUN mkdir ./server-files RUN mkdir ./server-files
RUN mkdir ./user-files RUN mkdir ./user-files
RUN cp ./sql/default-account.sqlite ./server-files/account.sqlite
CMD ["yarn", "start"] CMD ["yarn", "start"]
\ No newline at end of file
let fs = require('fs');
let { join } = require('path'); let { join } = require('path');
let { openDatabase } = require('./db'); let { openDatabase } = require('./db');
let config = require('./load-config');
let accountDb = null; let accountDb = null;
function getAccountDb() { function getAccountDb() {
if (accountDb == null) { if (accountDb == null) {
accountDb = openDatabase(join(__dirname, 'server-files/account.sqlite')); let dbPath = join(config.serverFiles, 'account.sqlite');
let needsInit = !fs.existsSync(dbPath);
accountDb = openDatabase(dbPath);
if (needsInit) {
let initSql = fs.readFileSync(join(__dirname, 'sql/account.sql'), 'utf8');
accountDb.exec(initSql);
}
} }
return accountDb; return accountDb;
......
...@@ -19,7 +19,7 @@ const app = express(); ...@@ -19,7 +19,7 @@ const app = express();
app.use(errorMiddleware); app.use(errorMiddleware);
async function init() { async function init() {
let fileDir = join(__dirname, process.env.ACTUAL_USER_FILES || config.files); let fileDir = join(__dirname, process.env.ACTUAL_USER_FILES || config.userFiles);
console.log('Initializing Actual with user file dir:', fileDir); console.log('Initializing Actual with user file dir:', fileDir);
...@@ -279,12 +279,12 @@ app.post('/upload-user-file', async (req, res) => { ...@@ -279,12 +279,12 @@ app.post('/upload-user-file', async (req, res) => {
// supported yet in the self-hosted version because it's unclear if // supported yet in the self-hosted version because it's unclear if
// it's still needed, given that you own your server // it's still needed, given that you own your server
// //
// await fs.writeFile(join(config.files, `${fileId}.blob`), req.body); // await fs.writeFile(join(config.userFiles, `${fileId}.blob`), req.body);
let zip = new AdmZip(req.body); let zip = new AdmZip(req.body);
try { try {
zip.extractAllTo(join(config.files, fileId), true); zip.extractAllTo(join(config.userFiles, fileId), true);
} catch (err) { } catch (err) {
console.log('Error writing file', err); console.log('Error writing file', err);
res.send(JSON.stringify({ status: 'error' })); res.send(JSON.stringify({ status: 'error' }));
...@@ -339,7 +339,7 @@ app.get('/download-user-file', async (req, res) => { ...@@ -339,7 +339,7 @@ app.get('/download-user-file', async (req, res) => {
let zip = new AdmZip(); let zip = new AdmZip();
try { try {
zip.addLocalFolder(join(config.files, fileId), '/'); zip.addLocalFolder(join(config.userFiles, fileId), '/');
} catch (e) { } catch (e) {
res.status(500).send('Error reading files'); res.status(500).send('Error reading files');
return; return;
......
...@@ -3,11 +3,14 @@ try { ...@@ -3,11 +3,14 @@ try {
config = require('./config'); config = require('./config');
} catch (e) { } catch (e) {
let fs = require('fs'); let fs = require('fs');
let { join } = require('path');
let root = fs.existsSync('/data') ? '/data' : '/';
config = { config = {
mode: 'development', mode: 'development',
port: 5006, port: 5006,
files: fs.existsSync('/data') ? '/data' : './user-files' serverFiles: join(root, 'server-files'),
userFiles: join(root, 'user-files')
}; };
} }
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment