diff --git a/Html/apps/views/vscode.py b/Html/apps/views/vscode.py
index 407d4d1..0a1d142 100644
--- a/Html/apps/views/vscode.py
+++ b/Html/apps/views/vscode.py
@@ -1,4 +1,5 @@
# myapp/views/vscode.py
+import re
import os, uuid, json
from flask import Blueprint, current_app, session, redirect, url_for, render_template, request, jsonify
from ..services.backboard_service import realtime_response
@@ -39,21 +40,32 @@ def desktop(user_uuid, course_id, chapter_name, lesson_name):
-
caddy_conf = f"""
handle_path /vsc{user_uuid}/* {{
reverse_proxy localhost:{code_server_port}
}}
-
-
"""
caddy_config_path = "/etc/caddy/Caddyfile"
with open(caddy_config_path, "r") as f:
lines = f.readlines()
- insert_position = len(lines) - 2 if len(lines) >= 2 else len(lines)
+ pattern = re.compile(
+ r'handle_path\s+/vsc' + re.escape(user_uuid) + r'/\* {.*?reverse_proxy.*?}',
+ re.DOTALL
+ )
+ 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: