Add warning if one of the storage directory is in the peertube
authorChocobozzz <me@florianbigard.com>
Thu, 20 Sep 2018 14:16:07 +0000 (16:16 +0200)
committerChocobozzz <me@florianbigard.com>
Thu, 20 Sep 2018 14:25:00 +0000 (16:25 +0200)
production directory

Because admins could loose these directories on peertube upgrade

server/helpers/core-utils.ts
server/initializers/checker.ts

index f5ef187fe73ccc29841e9b5786d8eb532de3d9ec..b1a27e089110d632604e5908506cc0961baffa46 100644 (file)
@@ -64,6 +64,10 @@ function isTestInstance () {
   return process.env.NODE_ENV === 'test'
 }
 
+function isProdInstance () {
+  return process.env.NODE_ENV === 'production'
+}
+
 function root () {
   // We are in /helpers/utils.js
   const paths = [ __dirname, '..', '..' ]
@@ -179,6 +183,8 @@ const createTorrentPromise = promisify2<string, any, any>(createTorrent)
 
 export {
   isTestInstance,
+  isProdInstance,
+
   root,
   escapeHTML,
   pageToStartAndCount,
index a54f6155be410612129293efe2f765387984dd36..5b068caa1bc04c6455d45aab6220e8ef102fe441 100644 (file)
@@ -1,5 +1,5 @@
 import * as config from 'config'
-import { promisify0 } from '../helpers/core-utils'
+import { promisify0, isProdInstance } from '../helpers/core-utils'
 import { UserModel } from '../models/account/user'
 import { ApplicationModel } from '../models/application/application'
 import { OAuthClientModel } from '../models/oauth/oauth-client'
@@ -59,6 +59,18 @@ function checkConfig () {
     }
   }
 
+  if (isProdInstance()) {
+    const configStorage = config.get('storage')
+    for (const key of Object.keys(configStorage)) {
+      if (configStorage[key].startsWith('storage/')) {
+        logger.warn(
+          'Directory of %s should not be in the production directory of PeerTube. Please check your production configuration file.',
+          key
+        )
+      }
+    }
+  }
+
   return null
 }