import logging from tornado.ioloop import IOLoop from tornado.web import Application from terminado import TermSocket, UniqueTermManager from config import TERMINADO_PORT, TERMINADO_WD class TerminadoMiniServer: def __init__(self, url, port, workdir, shellcmd): self.port = port self.application = Application( [( url, TerminadoMiniServer.CORSTermSocket, {'term_manager': UniqueTermManager(shell_command=shellcmd, term_settings={'cwd': workdir})} )] ) class CORSTermSocket(TermSocket): def check_origin(self, origin): return True def listen(self): self.application.listen(self.port) IOLoop.instance().start() if __name__ == '__main__': logging.getLogger().setLevel(logging.DEBUG) logging.info('Terminado Mini Server listening on {}'.format(TERMINADO_PORT)) TerminadoMiniServer('/terminal', TERMINADO_PORT, TERMINADO_WD, ['bash']).listen()