def terminal(app, port, debug=False): term_manager = NamedTermManager(shell_command=None, max_terminals=100) wrapped_app = WSGIContainer(app) handlers = [ (r"/_websocket/(\w+)", TermSocket, { 'term_manager': term_manager }), (r"/terminal/new/([a-zA-Z\-0-9\.]+)/(.*)/?", NewTerminalHandler), (r"/terminal/open/([a-zA-Z\-0-9\.]+)/(.*)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler), ("/(.*)", tornado.web.FallbackHandler, { 'fallback': wrapped_app }), ] tornado_app = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager, debug=debug) http_server = HTTPServer(tornado_app) http_server.listen(port, '0.0.0.0') IOLoop.instance().start()
def start(listen_address='127.0.0.1', listen_port=8001, ssl_crt=None, ssl_key=None, asterisk_binary='/usr/sbin/asterisk', asterisk_options='-vvvvvr'): salt.utils.process.appendproctitle('AsteriskCLI') log.info('Starting Asterisk CLI server at %s:%s.', listen_address, listen_port) io_loop = salt.ext.tornado.ioloop.IOLoop(make_current=False) io_loop.make_current() term_manager = UniqueTermManager( shell_command=[asterisk_binary, asterisk_options], ioloop=io_loop) handlers = [(r'/ws', MyTermSocket, { 'term_manager': term_manager }), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] })] # Init app. app = salt.ext.tornado.web.Application( handlers, static_path=STATIC_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/')) ssl_options = None if all([ssl_crt, ssl_key]): ssl_options = {"certfile": ssl_crt, "keyfile": ssl_key} http_server = salt.ext.tornado.httpserver.HTTPServer( app, ssl_options=ssl_options) http_server.listen(listen_port, address=listen_address) try: if not io_loop._running: io_loop.start() finally: term_manager.shutdown()
def main(argv): term_manager = UniqueTermManager(shell_command=['bash']) handlers = [ (r"/websocket", TermSocket, {'term_manager': term_manager, 'keep_alive_time': 30}), # AJL: added the keep_alive after noticed dropped ws in class after 55s Heroku limit. (r"/", TerminalHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {'allowed_modules': ['termjs']}), (r"/(dir[0-9][0-9])", ClassDir), (r"/(class[0-9][0-9])/(week[0-9][0-9])/([0-9][0-9])", ClassWeek), (r"/(class[0-9][0-9])/(lesson[0-9][0-9])/([0-9][0-9])", ClassLesson), # (r"/test", TestHandler), (r"/ws", WSHandler), ] app = tornado.web.Application(handlers, # static_path=os.path.join(os.path.dirname(terminado.__file__), "static/js"), static_path=os.path.join(os.path.dirname(__file__), "static"), # static_path=os.path.join(os.path.dirname(__file__), "static"), template_path=os.path.join(os.path.dirname(__file__), "templates"), ui_modules={'Terminal': uimodule.Terminal}, xstatic_url=tornado_xstatic.url_maker('/xstatic/', True) ) http_server = tornado.httpserver.HTTPServer(app) port = int(os.environ.get("PORT", 8765)) http_server.listen(port) tornado.ioloop.IOLoop.instance().start()
def run_server(options, args): http_port = options.port http_host = options.host external_host = options.external_host or http_host external_port = options.external_port or http_port if options.https: server_url = "https://"+external_host+("" if external_port == 443 else ":%d" % external_port) else: server_url = "http://"+external_host+("" if external_port == 80 else ":%d" % external_port) new_url = server_url + "/new" if args: if options.auth_type == "login": sys.exit("--auth_type=login cannot be combined with specified shell command") shell_command = args[:] elif options.auth_type == "login": if os.geteuid(): sys.exit("Error: Must run server as root for --auth_type=login") if not options.https and external_host != "localhost": sys.exit("Error: At this time --auth_type=login is permitted only with https or localhost (for security reasons)") shell_command = ["login"] else: shell_command = ["bash"] term_manager = NamedTermManager(shell_command=shell_command, max_terminals=options.max_terminals) handlers = [ (r"/_websocket/(\w+)", TermSocket, {'term_manager': term_manager}), (r"/new/?", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler) ] application = tornado.web.Application(handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager) ssl_options = prepare_ssl_options(options) Http_server = tornado.httpserver.HTTPServer(application, ssl_options=ssl_options) Http_server.listen(http_port, address=http_host) if options.logging: Log_filename = "pyxterm.log" setup_logging(logging.INFO, Log_filename, logging.INFO) logging.error("**************************Logging to %s", Log_filename) else: setup_logging(logging.WARNING) logging.error("**************************Logging to console") run_and_show_browser(new_url, term_manager)
def main(argv): term_manager = UniqueTermManager(shell_command=['bash']) handlers = [ (r"/websocket", TermSocket, {'term_manager': term_manager}), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {'allowed_modules': ['termjs']}) ] app = tornado.web.Application(handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url = tornado_xstatic.url_maker('/xstatic/')) app.listen(8765, 'localhost') run_and_show_browser("http://localhost:8765/", term_manager)
def main(argv): term_manager = SingleTermManager(shell_command=['bash']) handlers = [ (r"/websocket", TermSocket, {'term_manager': term_manager}), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {'allowed_modules': ['termjs']}) ] app = tornado.web.Application(handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url = tornado_xstatic.url_maker('/xstatic/')) app.listen(8765, 'localhost') run_and_show_browser("http://localhost:8765/", term_manager)
def main(): term_manager = NamedTermManager(shell_command=['bash'], max_terminals=100) ##logging.basicConfig(filename="config.log",filemode="a",format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",level=logging.DEBUG) handlers = [(r"/_websocket/(\w+)", TermSocket, { 'term_manager': term_manager }), (r"/new", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)] application = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager) application.listen(8700) run_and_show_browser("http://localhost:8700/new", term_manager)
def main(): term_manager = NamedTermManager(shell_command=['bash'], max_terminals=100) handlers = [(r"/_websocket/(\w+)", TermSocket, { 'term_manager': term_manager }), (r"/new/?", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)] application = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager) application.listen(8700, 'localhost') run_and_show_browser("http://localhost:8700/new", term_manager)
def main(argv): term_manager = SingleTermManager(shell_command=['bash']) handlers = [(r"/user/[\s\S]+/terminals/websocket/1", TermSocket, { 'term_manager': term_manager }), (r"/", TerminalPageHandler), (r"/user/[\s\S]+/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] }), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] })] app = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/')) app.listen(8000, '0.0.0.0') run_and_show_browser("http://0.0.0.0:8000/", term_manager)
def main(): term_manager = NamedTermManager(shell_command=['bash'], max_terminals=100) handlers = [ (r"/_websocket/(\w+)", TermSocket, {'term_manager': term_manager}), (r"/new/?", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler) ] application = tornado.web.Application(handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager) application.listen(8700, 'localhost') run_and_show_browser("http://localhost:8700/new", term_manager)
def main(): print("Starting") term_manager = NamedTermManager(shell_command=['zsh'], max_terminals=100) handlers = [(r"/_websocket/(\w+)", TermSocket, { 'term_manager': term_manager }), (r"/multi/?", MultiTerm), (r"/new/?", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler), (r"/static/(.*)", tornado.web.StaticFileHandler)] application = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), term_manager=term_manager) application.listen(5001, '0.0.0.0') tornado.ioloop.IOLoop.current().start()
def main(argv): term_manager = SingleTermManager(shell_command=[ 'docker', 'exec', '-it', str(sys.argv[1]), str(sys.argv[2]) ]) handlers = [(r"/websocket", TermSocket, { 'term_manager': term_manager }), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] })] app = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/')) app.listen(8765, '0.0.0.0') run_and_show_browser("http://0.0.0.0:8765/", term_manager)
def main(argv): term_manager = ProtectedTermManager() handlers = [(r"/file", FileUploadHandler), (r"/websocket", UserTermSocket, { 'term_manager': term_manager }), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] }), (r"/(.*)", tornado.web.StaticFileHandler, { "path": "./client" })] app = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/'), cookie_secret="TEST_SECRET") app.listen(80, '0.0.0.0') run_and_show_browser("http://0.0.0.0/", term_manager)
def main(argv): term_manager = UniqueTermManager(shell_command=["bash"]) handlers = [ (r"/websocket", TermSocket, { "term_manager": term_manager }), (r"/", TerminalPageHandler), ( r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { "allowed_modules": ["termjs"] }, ), ] app = tornado.web.Application( handlers, static_path=STATIC_DIR, template_path=TEMPLATE_DIR, xstatic_url=tornado_xstatic.url_maker("/xstatic/"), ) app.listen(8765, "localhost") run_and_show_browser("http://localhost:8765/", term_manager)
class TerminalPageHandler(tornado.web.RequestHandler): def get(self): return self.render("termpage.html", static=self.static_url, xstatic=self.application.settings['xstatic_url'], ws_url_path="/websocket") if __name__ == '__main__': term_manager = terminado.SingleTermManager(shell_command=['bash']) handlers = [(r"/websocket", terminado.TermSocket, { 'term_manager': term_manager }), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, { 'allowed_modules': ['termjs'] })] app = tornado.web.Application( handlers, static_path=STATIC_DIR, xstatic_url=tornado_xstatic.url_maker('/xstatic/')) # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here will # work, but it will listen on the public network interface as well. # Given what terminado does, that would be rather a security hole. app.listen(3100, 'localhost') # app.listen(3030, '127.0.0.1') try: tornado.ioloop.IOLoop.instance().start() finally: term_manager.shutdown()
STATIC_DIR = os.path.join(os.path.dirname(terminado.__file__), "_static") class TerminalPageHandler(tornado.web.RequestHandler): def get(self): return self.render( "termpage.html", static=self.static_url, xstatic=self.application.settings["xstatic_url"], ws_url_path="/websocket", ) if __name__ == "__main__": term_manager = terminado.UniqueTermManager(shell_command=["bash"]) handlers = [ (r"/websocket", terminado.TermSocket, {"term_manager": term_manager}), (r"/", TerminalPageHandler), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {"allowed_modules": ["termjs"]}), ] app = tornado.web.Application(handlers, static_path=STATIC_DIR, xstatic_url=tornado_xstatic.url_maker("/xstatic/")) # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here will # work, but it will listen on the public network interface as well. # Given what terminado does, that would be rather a security hole. app.listen(8765, "localhost") try: tornado.ioloop.IOLoop.instance().start() finally: term_manager.shutdown()
def make_app(): global term_manager settings = { "xstatic_url": tornado_xstatic.url_maker('/xstatic/'), "template_path": "templates", "cookie_secret": get_cookie_secret(), "login_url": "/login", "upload_progress_handler": dict() #"autoescape": None } term_manager = SingleTermManager(shell_command=['./zynbash.sh']) return tornado.web.Application([ (r'/$', DashboardHandler), #(r'/()$', tornado.web.StaticFileHandler, {'path': 'html', "default_filename": "index.html"}), (r'/(.*\.html)$', tornado.web.StaticFileHandler, {'path': 'html'}), (r'/(favicon\.ico)$', tornado.web.StaticFileHandler, {'path': 'img'}), (r'/fonts/(.*)$', tornado.web.StaticFileHandler, {'path': 'fonts'}), (r'/img/(.*)$', tornado.web.StaticFileHandler, {'path': 'img'}), (r'/css/(.*)$', tornado.web.StaticFileHandler, {'path': 'css'}), (r'/js/(.*)$', tornado.web.StaticFileHandler, {'path': 'js'}), (r'/captures/(.*)$', tornado.web.StaticFileHandler, {'path': 'captures'}), (r'/bower_components/(.*)$', tornado.web.StaticFileHandler, {'path': 'bower_components'}), (r"/login", LoginHandler), (r"/logout", LogoutHandler), (r"/lib-snapshot$", SnapshotConfigHandler), (r"/lib-snapshot/ajax/(.*)$", SnapshotConfigHandler), (r"/lib-snapshot/download/(.*)$", SnapshotDownloadHandler), (r"/lib-snapshot/remove/(.*)/(.*)$", SnapshotRemoveOptionHandler), (r"/lib-snapshot/remove-layer/(.*)/(.*)$", SnapshotRemoveLayerHandler), (r"/lib-snapshot/add/(.*)/(.*)$", SnapshotAddOptionsHandler), (r"/lib-presets$", PresetsConfigHandler), (r"/lib-presets/(.*)$", PresetsConfigHandler), (r"/lib-presets/(.*)/(.*)$", PresetsConfigHandler), (r"/lib-captures$", CapturesConfigHandler), (r"/hw-kit$", KitConfigHandler), (r"/hw-audio$", AudioConfigHandler), (r"/hw-audio-mixer$", AudioMixerHandler), (r"/hw-audio-mixer/(.*)/(.*)$", AudioMixerHandler), (r"/hw-display$", DisplayConfigHandler), (r"/hw-wiring$", WiringConfigHandler), (r"/sw-update$", SoftwareUpdateHandler), (r"/sw-pianoteq$", PianoteqHandler), (r"/sw-jalv-lv2$", JalvLv2Handler), (r"/sw-repos$", RepositoryHandler), (r"/ui-options$", UiConfigHandler), (r"/ui-keybind$", UiKeybindHandler), (r"/ui-log$", UiLogHandler), (r"/ui-midi-options$", MidiConfigHandler), (r"/ui-midi-log$", MidiLogHandler), (r"/sys-wifi$", WifiConfigHandler), (r"/sys-backup$", SystemBackupHandler), (r"/sys-security$", SecurityConfigHandler), (r"/sys-reboot$", RebootHandler), (r"/sys-poweroff$", PoweroffHandler), (r"/wifi/list$", WifiListHandler), (r'/upload$', UploadHandler), (r"/ws$", ZynthianWebSocketHandler), (r"/zynterm", ZyntermHandler), (r"/zynterm_ws", TermSocket, {'term_manager': term_manager}), (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {'allowed_modules': ['termjs']}) ], **settings)