Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Actually use path variables as given in default config #1118

Merged
merged 2 commits into from Oct 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 6 additions & 0 deletions config.sample.yml
Expand Up @@ -105,3 +105,9 @@ uploads:
# download the offline files for sideloading.

offline: false

# ---------------------------------------------------------------------
# Data Path
# ---------------------------------------------------------------------
# Writeable data path for Wiki.js, mainly for cache and user uploads.
dataPath: ./data
4 changes: 1 addition & 3 deletions server/app/data.yml
Expand Up @@ -57,9 +57,7 @@ defaults:
# System defaults
channel: BETA
setup: false
paths:
content: ./content
data: ./data
dataPath: ./data
cors:
credentials: true
maxAge: 600
Expand Down
2 changes: 1 addition & 1 deletion server/controllers/upload.js
Expand Up @@ -11,7 +11,7 @@ const sanitize = require('sanitize-filename')
* Upload files
*/
router.post('/u', multer({
dest: path.join(WIKI.ROOTPATH, 'data/uploads'),
dest: path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads'),
limits: {
fileSize: WIKI.config.uploads.maxFileSize,
files: WIKI.config.uploads.maxFiles
Expand Down
8 changes: 4 additions & 4 deletions server/core/sideloader.js
Expand Up @@ -10,7 +10,7 @@ module.exports = {
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) {
return
Expand All @@ -25,16 +25,16 @@ module.exports = {
}
},
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) {
WIKI.logger.info('Found locales master file. Importing locale packages...')
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')) {
for (const locale of locales.data.localization.locales) {
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) {
WIKI.logger.info(`Importing ${locale.name} locale package...`)

Expand Down
2 changes: 1 addition & 1 deletion server/core/system.js
Expand Up @@ -16,7 +16,7 @@ module.exports = {
},
init() {
// Clear content cache
fs.emptyDir(path.join(WIKI.ROOTPATH, 'data/cache'))
fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))

return this
},
Expand Down
2 changes: 1 addition & 1 deletion server/jobs/purge-uploads.js
Expand Up @@ -9,7 +9,7 @@ module.exports = async () => {
WIKI.logger.info('Purging orphaned upload files...')

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)
const ls = await fs.readdir(uplTempPath)
const fifteenAgo = moment().subtract(15, 'minutes')
Expand Down
12 changes: 6 additions & 6 deletions server/models/assets.js
Expand Up @@ -74,7 +74,7 @@ module.exports = class Asset extends Model {
}

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) {
Expand Down Expand Up @@ -125,9 +125,9 @@ module.exports = class Asset extends Model {

// Move temp upload to cache
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 {
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
Expand Down Expand Up @@ -158,7 +158,7 @@ module.exports = class Asset extends Model {

static async getAssetFromCache(assetPath, res) {
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) => {
res.type(path.extname(assetPath))
Expand All @@ -174,7 +174,7 @@ module.exports = class Asset extends Model {

static async getAssetFromDb(assetPath, res) {
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()
if (asset) {
Expand All @@ -188,6 +188,6 @@ module.exports = class Asset extends Model {
}

static async flushTempUploads() {
return fs.emptyDir(path.join(process.cwd(), `data/uploads`))
return fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `uploads`))
}
}
8 changes: 4 additions & 4 deletions server/models/pages.js
Expand Up @@ -728,7 +728,7 @@ module.exports = class Page extends Model {
* @returns {Promise} Promise with no value
*/
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({
id: page.id,
authorId: page.authorId,
Expand Down Expand Up @@ -757,7 +757,7 @@ module.exports = class Page extends Model {
*/
static async getPageFromCache(opts) {
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 {
const pageBuffer = await fs.readFile(cachePath)
Expand Down Expand Up @@ -785,14 +785,14 @@ module.exports = class Page extends Model {
* @returns {Promise} Promise with no value
*/
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
*/
static async flushCache() {
return fs.emptyDir(path.join(process.cwd(), `data/cache`))
return fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, `cache`))
}

/**
Expand Down
4 changes: 2 additions & 2 deletions server/modules/storage/git/storage.js
Expand Up @@ -15,7 +15,7 @@ const commonDisk = require('../disk/common')

module.exports = {
git: null,
repoPath: path.join(process.cwd(), 'data/repo'),
repoPath: path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'repo'),
async activated() {
// not used
},
Expand Down Expand Up @@ -66,7 +66,7 @@ module.exports = {
WIKI.logger.info('(STORAGE/GIT) Setting SSH Command config...')
if (this.config.sshPrivateKeyMode === 'contents') {
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, {
encoding: 'utf8',
mode: 0o600
Expand Down
7 changes: 3 additions & 4 deletions server/setup.js
Expand Up @@ -144,10 +144,9 @@ module.exports = () => {

// Create directory structure
WIKI.logger.info('Creating data directories...')
const dataPath = path.join(process.cwd(), 'data')
await fs.ensureDir(dataPath)
await fs.emptyDir(path.join(dataPath, 'cache'))
await fs.ensureDir(path.join(dataPath, 'uploads'))
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath))
await fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads'))

// Generate certificates
WIKI.logger.info('Generating certificates...')
Expand Down