web-ide / app.py
wdad46546's picture
Update app.py
3ef0ccc verified
Raw
History Blame Contribute Delete
1.27 kB
import os
import subprocess
import time
import threading
import gradio as gr
def install_and_run_code_server():
# 切换路径并检查下载
cmd = """
if [ ! -f "./code-server/bin/code-server" ]; then
echo "Downloading code-server..."
curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=./code-server
fi
# 在后台独立运行 code-server,监听 7860 端口,关闭内置密码认证
./code-server/bin/code-server --bind-addr 0.0.0.0:7860 --auth none --disable-telemetry /home/user/app
"""
subprocess.run(cmd, shell=True)
# 在单独的守护线程中启动 code-server
threading.Thread(target=install_and_run_code_server, daemon=True).start()
# 稍等 3 秒让 code-server 准备就绪
time.sleep(3)
# 用 Gradio 的 Blocks 嵌入一个全屏 HTML iframe 占位(保持 Gradio 主进程不退出)
with gr.Blocks(css="footer {visibility: hidden}") as demo:
gr.HTML("""
<div style='width: 100%; height: 90vh;'>
<iframe src='/' style='width:100%; height:100%; border:none;'></iframe>
</div>
""")
if __name__ == "__main__":
# 启动 Gradio,占满 7860 端口/保持服务在线
demo.launch(server_name="0.0.0.0", server_port=7860)