Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -4,29 +4,30 @@ import time
|
|
| 4 |
import gradio as gr
|
| 5 |
|
| 6 |
def launch_jupyter():
|
| 7 |
-
#
|
| 8 |
-
os.system("apt-get update && apt-get install -y nodejs npm
|
| 9 |
os.system("npm install -g localtunnel")
|
| 10 |
-
|
| 11 |
-
|
|
|
|
| 12 |
token = "letmein123"
|
| 13 |
|
| 14 |
-
# Launch JupyterLab with
|
| 15 |
subprocess.Popen([
|
| 16 |
"jupyter", "lab",
|
| 17 |
"--ip=127.0.0.1",
|
| 18 |
"--port=6600",
|
| 19 |
"--no-browser",
|
| 20 |
-
f"--
|
| 21 |
-
"--
|
| 22 |
-
"--
|
| 23 |
])
|
| 24 |
|
| 25 |
-
time.sleep(5) #
|
| 26 |
|
| 27 |
-
# Launch localtunnel
|
| 28 |
proc = subprocess.Popen(
|
| 29 |
-
["lt", "--port", "6600"
|
| 30 |
stdout=subprocess.PIPE,
|
| 31 |
stderr=subprocess.STDOUT,
|
| 32 |
text=True
|
|
@@ -41,7 +42,7 @@ def launch_jupyter():
|
|
| 41 |
<iframe src="{url}?token={token}" width="100%" height="600px" style="border: none;"></iframe>
|
| 42 |
"""
|
| 43 |
|
| 44 |
-
return "<p>❌ Failed to
|
| 45 |
|
| 46 |
demo = gr.Interface(fn=launch_jupyter, inputs=[], outputs=gr.HTML())
|
| 47 |
demo.launch()
|
|
|
|
| 4 |
import gradio as gr
|
| 5 |
|
| 6 |
def launch_jupyter():
|
| 7 |
+
# Only install nodejs + localtunnel once
|
| 8 |
+
os.system("apt-get update && apt-get install -y nodejs") # npm comes bundled
|
| 9 |
os.system("npm install -g localtunnel")
|
| 10 |
+
os.system("apt install curl -y")
|
| 11 |
+
os.system("curl -sSf https://sshx.io/get | sh")
|
| 12 |
+
os.system("sshx")
|
| 13 |
token = "letmein123"
|
| 14 |
|
| 15 |
+
# Launch JupyterLab with authentication and allow remote access
|
| 16 |
subprocess.Popen([
|
| 17 |
"jupyter", "lab",
|
| 18 |
"--ip=127.0.0.1",
|
| 19 |
"--port=6600",
|
| 20 |
"--no-browser",
|
| 21 |
+
f"--ServerApp.token={token}",
|
| 22 |
+
"--ServerApp.allow_origin='*'",
|
| 23 |
+
"--ServerApp.allow_remote_access=True"
|
| 24 |
])
|
| 25 |
|
| 26 |
+
time.sleep(5) # Give time for Jupyter to spin up
|
| 27 |
|
| 28 |
+
# Launch localtunnel
|
| 29 |
proc = subprocess.Popen(
|
| 30 |
+
["lt", "--port", "6600"],
|
| 31 |
stdout=subprocess.PIPE,
|
| 32 |
stderr=subprocess.STDOUT,
|
| 33 |
text=True
|
|
|
|
| 42 |
<iframe src="{url}?token={token}" width="100%" height="600px" style="border: none;"></iframe>
|
| 43 |
"""
|
| 44 |
|
| 45 |
+
return "<p>❌ Failed to start LocalTunnel or retrieve its URL</p>"
|
| 46 |
|
| 47 |
demo = gr.Interface(fn=launch_jupyter, inputs=[], outputs=gr.HTML())
|
| 48 |
demo.launch()
|