refactor: use dataPath variable as given in file config (#1118)
* Actually use path variables as given in default config * Drop paths.content, avoid populating the global WIKI object
This commit is contained in:
parent
5b36988d6d
commit
8000ebec8f
@ -105,3 +105,9 @@ uploads:
|
|||||||
# download the offline files for sideloading.
|
# download the offline files for sideloading.
|
||||||
|
|
||||||
offline: false
|
offline: false
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# Data Path
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# Writeable data path for Wiki.js, mainly for cache and user uploads.
|
||||||
|
dataPath: ./data
|
@ -57,9 +57,7 @@ defaults:
|
|||||||
# System defaults
|
# System defaults
|
||||||
channel: BETA
|
channel: BETA
|
||||||
setup: false
|
setup: false
|
||||||
paths:
|
dataPath: ./data
|
||||||
content: ./content
|
|
||||||
data: ./data
|
|
||||||
cors:
|
cors:
|
||||||
credentials: true
|
credentials: true
|
||||||
maxAge: 600
|
maxAge: 600
|
||||||
|
@ -11,7 +11,7 @@ const sanitize = require('sanitize-filename')
|
|||||||
* Upload files
|
* Upload files
|
||||||
*/
|
*/
|
||||||
router.post('/u', multer({
|
router.post('/u', multer({
|
||||||
dest: path.join(WIKI.ROOTPATH, 'data/uploads'),
|
dest: path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads'),
|
||||||
limits: {
|
limits: {
|
||||||
fileSize: WIKI.config.uploads.maxFileSize,
|
fileSize: WIKI.config.uploads.maxFileSize,
|
||||||
files: WIKI.config.uploads.maxFiles
|
files: WIKI.config.uploads.maxFiles
|
||||||
|
@ -10,7 +10,7 @@ module.exports = {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const sideloadExists = await fs.pathExists(path.join(WIKI.ROOTPATH, 'data/sideload'))
|
const sideloadExists = await fs.pathExists(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'sideload'))
|
||||||
|
|
||||||
if (!sideloadExists) {
|
if (!sideloadExists) {
|
||||||
return
|
return
|
||||||
@ -25,16 +25,16 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async importLocales() {
|
async importLocales() {
|
||||||
const localeExists = await fs.pathExists(path.join(WIKI.ROOTPATH, 'data/sideload/locales.json'))
|
const localeExists = await fs.pathExists(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'sideload/locales.json'))
|
||||||
if (localeExists) {
|
if (localeExists) {
|
||||||
WIKI.logger.info('Found locales master file. Importing locale packages...')
|
WIKI.logger.info('Found locales master file. Importing locale packages...')
|
||||||
let importedLocales = 0
|
let importedLocales = 0
|
||||||
|
|
||||||
const locales = await fs.readJson(path.join(WIKI.ROOTPATH, 'data/sideload/locales.json'))
|
const locales = await fs.readJson(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'sideload/locales.json'))
|
||||||
if (locales && _.has(locales, 'data.localization.locales')) {
|
if (locales && _.has(locales, 'data.localization.locales')) {
|
||||||
for (const locale of locales.data.localization.locales) {
|
for (const locale of locales.data.localization.locales) {
|
||||||
try {
|
try {
|
||||||
const localeData = await fs.readJson(path.join(WIKI.ROOTPATH, `data/sideload/${locale.code}.json`))
|
const localeData = await fs.readJson(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `sideload/${locale.code}.json`))
|
||||||
if (localeData) {
|
if (localeData) {
|
||||||
WIKI.logger.info(`Importing ${locale.name} locale package...`)
|
WIKI.logger.info(`Importing ${locale.name} locale package...`)
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
// Clear content cache
|
// Clear content cache
|
||||||
fs.emptyDir(path.join(WIKI.ROOTPATH, 'data/cache'))
|
fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))
|
||||||
|
|
||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,7 @@ module.exports = async () => {
|
|||||||
WIKI.logger.info('Purging orphaned upload files...')
|
WIKI.logger.info('Purging orphaned upload files...')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const uplTempPath = path.resolve(process.cwd(), WIKI.config.paths.data, 'uploads')
|
const uplTempPath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads')
|
||||||
await fs.ensureDir(uplTempPath)
|
await fs.ensureDir(uplTempPath)
|
||||||
const ls = await fs.readdir(uplTempPath)
|
const ls = await fs.readdir(uplTempPath)
|
||||||
const fifteenAgo = moment().subtract(15, 'minutes')
|
const fifteenAgo = moment().subtract(15, 'minutes')
|
||||||
|
@ -74,7 +74,7 @@ module.exports = class Asset extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async deleteAssetCache() {
|
async deleteAssetCache() {
|
||||||
await fs.remove(path.join(process.cwd(), `data/cache/${this.hash}.dat`))
|
await fs.remove(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${this.hash}.dat`))
|
||||||
}
|
}
|
||||||
|
|
||||||
static async upload(opts) {
|
static async upload(opts) {
|
||||||
@ -125,9 +125,9 @@ module.exports = class Asset extends Model {
|
|||||||
|
|
||||||
// Move temp upload to cache
|
// Move temp upload to cache
|
||||||
if (opts.mode === 'upload') {
|
if (opts.mode === 'upload') {
|
||||||
await fs.move(opts.path, path.join(process.cwd(), `data/cache/${fileHash}.dat`), { overwrite: true })
|
await fs.move(opts.path, path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${fileHash}.dat`), { overwrite: true })
|
||||||
} else {
|
} else {
|
||||||
await fs.copy(opts.path, path.join(process.cwd(), `data/cache/${fileHash}.dat`), { overwrite: true })
|
await fs.copy(opts.path, path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${fileHash}.dat`), { overwrite: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add to Storage
|
// Add to Storage
|
||||||
@ -158,7 +158,7 @@ module.exports = class Asset extends Model {
|
|||||||
|
|
||||||
static async getAssetFromCache(assetPath, res) {
|
static async getAssetFromCache(assetPath, res) {
|
||||||
const fileHash = assetHelper.generateHash(assetPath)
|
const fileHash = assetHelper.generateHash(assetPath)
|
||||||
const cachePath = path.join(process.cwd(), `data/cache/${fileHash}.dat`)
|
const cachePath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${fileHash}.dat`)
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
res.type(path.extname(assetPath))
|
res.type(path.extname(assetPath))
|
||||||
@ -174,7 +174,7 @@ module.exports = class Asset extends Model {
|
|||||||
|
|
||||||
static async getAssetFromDb(assetPath, res) {
|
static async getAssetFromDb(assetPath, res) {
|
||||||
const fileHash = assetHelper.generateHash(assetPath)
|
const fileHash = assetHelper.generateHash(assetPath)
|
||||||
const cachePath = path.join(process.cwd(), `data/cache/${fileHash}.dat`)
|
const cachePath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${fileHash}.dat`)
|
||||||
|
|
||||||
const asset = await WIKI.models.assets.query().where('hash', fileHash).first()
|
const asset = await WIKI.models.assets.query().where('hash', fileHash).first()
|
||||||
if (asset) {
|
if (asset) {
|
||||||
@ -188,6 +188,6 @@ module.exports = class Asset extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async flushTempUploads() {
|
static async flushTempUploads() {
|
||||||
return fs.emptyDir(path.join(process.cwd(), `data/uploads`))
|
return fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `uploads`))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -728,7 +728,7 @@ module.exports = class Page extends Model {
|
|||||||
* @returns {Promise} Promise with no value
|
* @returns {Promise} Promise with no value
|
||||||
*/
|
*/
|
||||||
static async savePageToCache(page) {
|
static async savePageToCache(page) {
|
||||||
const cachePath = path.join(process.cwd(), `data/cache/${page.hash}.bin`)
|
const cachePath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${page.hash}.bin`)
|
||||||
await fs.outputFile(cachePath, WIKI.models.pages.cacheSchema.encode({
|
await fs.outputFile(cachePath, WIKI.models.pages.cacheSchema.encode({
|
||||||
id: page.id,
|
id: page.id,
|
||||||
authorId: page.authorId,
|
authorId: page.authorId,
|
||||||
@ -757,7 +757,7 @@ module.exports = class Page extends Model {
|
|||||||
*/
|
*/
|
||||||
static async getPageFromCache(opts) {
|
static async getPageFromCache(opts) {
|
||||||
const pageHash = pageHelper.generateHash({ path: opts.path, locale: opts.locale, privateNS: opts.isPrivate ? 'TODO' : '' })
|
const pageHash = pageHelper.generateHash({ path: opts.path, locale: opts.locale, privateNS: opts.isPrivate ? 'TODO' : '' })
|
||||||
const cachePath = path.join(process.cwd(), `data/cache/${pageHash}.bin`)
|
const cachePath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${pageHash}.bin`)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const pageBuffer = await fs.readFile(cachePath)
|
const pageBuffer = await fs.readFile(cachePath)
|
||||||
@ -785,14 +785,14 @@ module.exports = class Page extends Model {
|
|||||||
* @returns {Promise} Promise with no value
|
* @returns {Promise} Promise with no value
|
||||||
*/
|
*/
|
||||||
static async deletePageFromCache(page) {
|
static async deletePageFromCache(page) {
|
||||||
return fs.remove(path.join(process.cwd(), `data/cache/${page.hash}.bin`))
|
return fs.remove(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache/${page.hash}.bin`))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flush the contents of the Cache
|
* Flush the contents of the Cache
|
||||||
*/
|
*/
|
||||||
static async flushCache() {
|
static async flushCache() {
|
||||||
return fs.emptyDir(path.join(process.cwd(), `data/cache`))
|
return fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache`))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,7 +15,7 @@ const commonDisk = require('../disk/common')
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
git: null,
|
git: null,
|
||||||
repoPath: path.join(process.cwd(), 'data/repo'),
|
repoPath: path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'repo'),
|
||||||
async activated() {
|
async activated() {
|
||||||
// not used
|
// not used
|
||||||
},
|
},
|
||||||
@ -66,7 +66,7 @@ module.exports = {
|
|||||||
WIKI.logger.info('(STORAGE/GIT) Setting SSH Command config...')
|
WIKI.logger.info('(STORAGE/GIT) Setting SSH Command config...')
|
||||||
if (this.config.sshPrivateKeyMode === 'contents') {
|
if (this.config.sshPrivateKeyMode === 'contents') {
|
||||||
try {
|
try {
|
||||||
this.config.sshPrivateKeyPath = path.join(WIKI.ROOTPATH, 'data/secure/git-ssh.pem')
|
this.config.sshPrivateKeyPath = path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'secure/git-ssh.pem')
|
||||||
await fs.outputFile(this.config.sshPrivateKeyPath, this.config.sshPrivateKeyContent, {
|
await fs.outputFile(this.config.sshPrivateKeyPath, this.config.sshPrivateKeyContent, {
|
||||||
encoding: 'utf8',
|
encoding: 'utf8',
|
||||||
mode: 0o600
|
mode: 0o600
|
||||||
|
@ -144,10 +144,9 @@ module.exports = () => {
|
|||||||
|
|
||||||
// Create directory structure
|
// Create directory structure
|
||||||
WIKI.logger.info('Creating data directories...')
|
WIKI.logger.info('Creating data directories...')
|
||||||
const dataPath = path.join(process.cwd(), 'data')
|
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath))
|
||||||
await fs.ensureDir(dataPath)
|
await fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))
|
||||||
await fs.emptyDir(path.join(dataPath, 'cache'))
|
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads'))
|
||||||
await fs.ensureDir(path.join(dataPath, 'uploads'))
|
|
||||||
|
|
||||||
// Generate certificates
|
// Generate certificates
|
||||||
WIKI.logger.info('Generating certificates...')
|
WIKI.logger.info('Generating certificates...')
|
||||||
|
Loading…
Reference in New Issue
Block a user