no caddy reload
This commit is contained in:
@@ -14,7 +14,7 @@ from typing import Optional
|
|||||||
mongo = PyMongo()
|
mongo = PyMongo()
|
||||||
|
|
||||||
|
|
||||||
socketio = SocketIO(cors_allowed_origins="*",max_payload_size=52428800, async_mode="eventlet",always_connect=True) # 不直接传 app
|
socketio = SocketIO(cors_allowed_origins="*",max_payload_size=52428800, async_mode="eventlet",always_connect=False) # 不直接传 app
|
||||||
cors = CORS()
|
cors = CORS()
|
||||||
# ===== 你的全局对象 =====
|
# ===== 你的全局对象 =====
|
||||||
# Backboard
|
# Backboard
|
||||||
@@ -38,7 +38,7 @@ def init_extensions(app):
|
|||||||
cors_allowed_origins='*',#app.config["VSCODE_WEB_URL"],
|
cors_allowed_origins='*',#app.config["VSCODE_WEB_URL"],
|
||||||
ping_timeout=app.config["SOCKETIO_PING_TIMEOUT"],
|
ping_timeout=app.config["SOCKETIO_PING_TIMEOUT"],
|
||||||
ping_interval=app.config["SOCKETIO_PING_INTERVAL"],
|
ping_interval=app.config["SOCKETIO_PING_INTERVAL"],
|
||||||
max_payload_size=50000000, async_mode="eventlet",always_connect=True
|
max_payload_size=50000000, async_mode="eventlet",always_connect=False
|
||||||
)
|
)
|
||||||
cors.init_app(
|
cors.init_app(
|
||||||
app,
|
app,
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ class AgentNamespace(Namespace):
|
|||||||
route='dialog',
|
route='dialog',
|
||||||
callback=receive_ase_dialog,
|
callback=receive_ase_dialog,
|
||||||
entry=self,
|
entry=self,
|
||||||
init_data={'room': user_uuid}
|
init_data={'room':user_uuid}
|
||||||
)
|
)
|
||||||
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
||||||
route='dialog-hint',
|
route='dialog-hint',
|
||||||
@@ -193,13 +193,13 @@ class AgentNamespace(Namespace):
|
|||||||
route='judge',
|
route='judge',
|
||||||
callback=receive_ase_judge,
|
callback=receive_ase_judge,
|
||||||
entry=self,
|
entry=self,
|
||||||
init_data={'room': user_uuid}
|
init_data={'room':user_uuid}
|
||||||
)
|
)
|
||||||
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
||||||
route='next_chapter',
|
route='next_chapter',
|
||||||
callback=receive_ase_next_chapter,
|
callback=receive_ase_next_chapter,
|
||||||
entry=self,
|
entry=self,
|
||||||
init_data={'room': user_uuid}
|
init_data={'room':user_uuid}
|
||||||
)
|
)
|
||||||
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
user_uuid2ase_client[user_uuid].register_route_with_entry(
|
||||||
route='chapter_score',
|
route='chapter_score',
|
||||||
|
|||||||
@@ -91,38 +91,6 @@ def desktop(user_uuid, course_id, chapter_name, lesson_name):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
caddy_conf = f"""
|
|
||||||
handle_path /vsc{user_id}/* {{
|
|
||||||
reverse_proxy localhost:{code_server_port}
|
|
||||||
}}
|
|
||||||
"""
|
|
||||||
caddy_config_path = "/etc/caddy/Caddyfile"
|
|
||||||
with open(caddy_config_path, "r") as f:
|
|
||||||
lines = f.readlines()
|
|
||||||
pattern = re.compile(
|
|
||||||
r'handle_path\s+/vsc' + re.escape(user_id) + r'/\* {.*?reverse_proxy.*?}',
|
|
||||||
re.DOTALL
|
|
||||||
)
|
|
||||||
for i in range(len(lines)):
|
|
||||||
if (lines[i].strip()==''): lines[i]=''
|
|
||||||
content = "".join(lines)
|
|
||||||
if pattern.search(content):
|
|
||||||
new_content = pattern.sub('', content)
|
|
||||||
lines = new_content.splitlines(keepends=True)
|
|
||||||
if len(lines) >= 2:
|
|
||||||
insert_position = len(lines) - 2
|
|
||||||
else:
|
|
||||||
insert_position = len(lines)
|
|
||||||
if caddy_conf[-1] not in ['\n', '\r']:
|
|
||||||
caddy_conf += '\n'
|
|
||||||
lines.insert(insert_position, caddy_conf)
|
|
||||||
with open(caddy_config_path, "w") as f:
|
|
||||||
f.writelines(lines)
|
|
||||||
|
|
||||||
try:
|
|
||||||
subprocess.run(["sudo", "caddy", "reload", "--config", "/etc/caddy/Caddyfile"])
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
print(f"Error reload caddy {e}")
|
|
||||||
|
|
||||||
cfg = current_app.config["VSCODE_WEB_PATH"]
|
cfg = current_app.config["VSCODE_WEB_PATH"]
|
||||||
path_for_vscode = path_dir
|
path_for_vscode = path_dir
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ from flask_socketio import SocketIO
|
|||||||
from .config import Config
|
from .config import Config
|
||||||
# 初始化扩展
|
# 初始化扩展
|
||||||
cors = CORS()
|
cors = CORS()
|
||||||
socketio = SocketIO(path='vsc-like-ws',cors_allowed_origins="*",max_payload_size=5242880, async_mode="eventlet",always_connect=True) # 不直接传 app
|
socketio = SocketIO(path='vsc-like-ws',cors_allowed_origins="*",max_payload_size=5242880, async_mode="eventlet",always_connect=False) # 不直接传 app
|
||||||
|
|
||||||
session_paths = {}
|
session_paths = {}
|
||||||
def init_extensions(app):
|
def init_extensions(app):
|
||||||
cors.init_app(app, resources={r"/*": {"origins": "*"}}, supports_credentials=True)
|
cors.init_app(app, resources={r"/*": {"origins": "*"}}, supports_credentials=True)
|
||||||
socketio.init_app(app, cors_allowed_origins="*", max_payload_size=5242880, async_mode="eventlet",always_connect=True)
|
socketio.init_app(app, cors_allowed_origins="*", max_payload_size=5242880, async_mode="eventlet",always_connect=False)
|
||||||
app.extensions["session_paths"] = session_paths
|
app.extensions["session_paths"] = session_paths
|
||||||
|
|
||||||
def register_namespaces(app):
|
def register_namespaces(app):
|
||||||
|
|||||||
Reference in New Issue
Block a user