Support hostname binding in config
authorPierre-Alain TORET <pierre-alain.toret@protonmail.com>
Tue, 17 Apr 2018 09:14:32 +0000 (11:14 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 17 Apr 2018 09:14:32 +0000 (11:14 +0200)
* Add basic support for hostname binding

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
* Make production example a bit more secure

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
* Make example config files compatible with hostname binding modification

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
* Fix typo

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
* Bind on 127.0.0.1 by default

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
* Update Docker configuration with hostname binding

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
config/default.yaml
config/production.yaml.example
server.ts
server/initializers/checker.ts
server/initializers/constants.ts
support/docker/production/config/production.yaml

index bf772faf6bb129e9229f4ef1988852dd5999a574..9f4a76621d08ba74e87144d2e1377db7d28182f0 100644 (file)
@@ -1,4 +1,5 @@
 listen:
+  hostname: '127.0.0.1'
   port: 9000
 
 webserver:
index c963118d943a6759824faa1aa4e330d87dbfbc86..fc06c51fb7d2e4e7e72a5bbdf16e2a99b90a0fc5 100644 (file)
@@ -1,4 +1,5 @@
 listen:
+  hostname: 'localhost'
   port: 9000
 
 # Correspond to your reverse proxy "listen" configuration
index 06d575c861c8d7ae705075b9e1beed18bfc3e5a6..5323bae2b423677bf3322fdf510485bfdd18e212 100644 (file)
--- a/server.ts
+++ b/server.ts
@@ -194,6 +194,7 @@ app.use(function (err, req, res, next) {
 
 async function startApplication () {
   const port = CONFIG.LISTEN.PORT
+  const hostname = CONFIG.LISTEN.HOSTNAME
 
   await installApplication()
 
@@ -214,7 +215,7 @@ async function startApplication () {
   Redis.Instance.init()
 
   // Make server listening
-  server.listen(port)
-  logger.info('Server listening on port %d', port)
+  server.listen(port, hostname)
+  logger.info('Server listening on %s:%d', hostname, port)
   logger.info('Web server: %s', CONFIG.WEBSERVER.URL)
 }
index 45f1d79c33844e699df90e4c004ccfebbcf22f68..71f3039634075ed7532a802b9d30dc55938b87d7 100644 (file)
@@ -18,7 +18,7 @@ function checkConfig () {
 
 // Check the config files
 function checkMissedConfig () {
-  const required = [ 'listen.port',
+  const required = [ 'listen.port', 'listen.hostname',
     'webserver.https', 'webserver.hostname', 'webserver.port',
     'trust_proxy',
     'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password',
index 2622b2c71a2561b735a31dbbcc25f4914f85cba2..56d39529e60f0e26268172f583717f54072a7f2c 100644 (file)
@@ -86,7 +86,8 @@ let SCHEDULER_INTERVAL = 60000 * 60
 const CONFIG = {
   CUSTOM_FILE: getLocalConfigFilePath(),
   LISTEN: {
-    PORT: config.get<number>('listen.port')
+    PORT: config.get<number>('listen.port'),
+    HOSTNAME: config.get<string>('listen.hostname')
   },
   DATABASE: {
     DBNAME: 'peertube' + config.get<string>('database.suffix'),
index 7b6de32e51e645c25197be0ab0f1e91ee6804d90..8a58c5b16b3e67f61365cde511ec86c898a30564 100644 (file)
@@ -1,4 +1,5 @@
 listen:
+  hostname: '127.0.0.1'
   port: 9000
 
 # Correspond to your reverse proxy "listen" configuration