The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://transifex.com/wekan/wekan only.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
wekan/server/00checkStartup.js

47 lines
1.6 KiB

const fs = require('fs');
const os = require('os');
// Configure SyncedCron to suppress console logging
// This must be done before any SyncedCron operations
if (Meteor.isServer) {
const { SyncedCron } = require('meteor/percolate:synced-cron');
SyncedCron.config({
log: false, // Disable console logging
collectionName: 'cronJobs', // Use custom collection name
utc: false, // Use local time
collectionTTL: 172800 // 2 days TTL
});
}
let errors = [];
if (!process.env.WRITABLE_PATH) {
errors.push("WRITABLE_PATH environment variable missing and/or unset, please configure !");
} else {
try {
fs.accessSync(process.env.WRITABLE_PATH, fs.constants.W_OK);
} catch (err) {
const userInfo = os.userInfo();
errors.push("can't write to " + process.env.WRITABLE_PATH, err);
errors.push("the path of WRITABLE_PATH (" + process.env.WRITABLE_PATH + ") must be writable !!!");
errors.push("username: " + userInfo["username"] + " - uid: " + userInfo["uid"] + " - gid: " + userInfo["gid"]);
}
}
if (errors.length > 0) {
console.error("\n\n");
console.error(errors.join("\n"));
console.error("\n");
console.error("Stopping Wekan");
console.error("Wekan isn't runnable. Please resolve the error's above and restart Wekan !");
console.error("\n\n");
process.exit(1);
}
// Import cron job storage for persistent job tracking
import './cronJobStorage';
// Import board migration detector for automatic board migrations
import './boardMigrationDetector';
// Import cron migration manager for cron-based migrations
import './cronMigrationManager';