diff --git a/couchpotato/core/_base/_core/__init__.py b/couchpotato/core/_base/_core/__init__.py index 8d702f1..c8c3fda 100644 --- a/couchpotato/core/_base/_core/__init__.py +++ b/couchpotato/core/_base/_core/__init__.py @@ -24,20 +24,22 @@ config = [{ 'type': 'password', }, { - 'name': 'host', - 'advanced': True, - 'default': '0.0.0.0', - 'hidden': True, - 'label': 'IP', - 'description': 'Host that I should listen to. "0.0.0.0" listens to all ips.', - }, - { 'name': 'port', 'default': 5050, 'type': 'int', 'description': 'The port I should listen to.', }, { + 'name': 'ssl_cert', + 'description': 'Path to SSL server.crt', + 'advanced': True, + }, + { + 'name': 'ssl_key', + 'description': 'Path to SSL server.key', + 'advanced': True, + }, + { 'name': 'launch_browser', 'default': True, 'type': 'bool', diff --git a/couchpotato/runner.py b/couchpotato/runner.py index c0b7eb8..d3a49f0 100644 --- a/couchpotato/runner.py +++ b/couchpotato/runner.py @@ -4,6 +4,7 @@ from couchpotato.api import api, NonBlockHandler from couchpotato.core.event import fireEventAsync, fireEvent from couchpotato.core.helpers.variable import getDataDir, tryInt from logging import handlers +from tornado.httpserver import HTTPServer from tornado.web import Application, FallbackHandler from tornado.wsgi import WSGIContainer from werkzeug.contrib.cache import FileSystemCache @@ -210,8 +211,9 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En # app.debug = development config = { 'use_reloader': reloader, - 'host': Env.setting('host', default = '0.0.0.0'), - 'port': tryInt(Env.setting('port', default = 5000)) + 'port': tryInt(Env.setting('port', default = 5000)), + 'ssl_cert': Env.setting('ssl_cert', default = None), + 'ssl_key': Env.setting('ssl_key', default = None), } # Static path @@ -243,12 +245,20 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En debug = config['use_reloader'] ) + if config['ssl_cert'] and config['ssl_key']: + server = HTTPServer(application, no_keep_alive = True, ssl_options = { + "certfile": config['ssl_cert'], + "keyfile": config['ssl_key'], + }) + else: + server = HTTPServer(application, no_keep_alive = True) + try_restart = True restart_tries = 5 while try_restart: try: - application.listen(config['port'], config['host'], no_keep_alive = True) + server.listen(config['port']) loop.start() except Exception, e: try: