File size: 1,672 Bytes
6082a39
 
1c22605
 
 
6082a39
 
 
fd9d9e6
6082a39
fd9d9e6
a6e80fa
6082a39
 
a6e80fa
6082a39
1c22605
 
fd9d9e6
 
 
1c22605
 
 
 
6082a39
 
fd9d9e6
 
1c22605
 
 
 
 
 
 
fd9d9e6
a6e80fa
fd9d9e6
1c22605
 
 
 
fd9d9e6
 
a6e80fa
1c22605
 
 
fd9d9e6
1c22605
 
 
fd9d9e6
1c22605
 
fd9d9e6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import subprocess
import threading
import json
import gradio as gr

def install_pufferpanel():
    if not os.path.exists("pufferpanel"):
        # Download a valid binary for v3.0.0-rc.13
        subprocess.run(
            "wget https://github.com/PufferPanel/PufferPanel/releases/download/v3.0.0-rc.13/pufferpanel-linux-amd64.tar.gz -O puffer.tar.gz",
            shell=True, check=True
        )
        subprocess.run("tar -xzf puffer.tar.gz -C .", shell=True, check=True)
        subprocess.run("rm puffer.tar.gz", shell=True, check=True)

        config = {
            "web": {"listen": "0.0.0.0:8080"},
            "daemon": {"listen": "0.0.0.0:5657"},
            # If needed, disable advanced sandboxing
            "security": {"disableUnshare": True}
        }
        with open("config.json", "w") as f:
            json.dump(config, f, indent=4)

        subprocess.run("./pufferpanel install --user admin --password admin123", shell=True, check=True)

install_pufferpanel()

def run_pufferpanel():
    subprocess.run("./pufferpanel run", shell=True)

threading.Thread(target=run_pufferpanel, daemon=True).start()

def launch_info():
    return """
##  PufferPanel v3.0.0-rc.13

Running inside Hugging Face Space.

**Login Credentials:**  
- **User:** `admin`  
- **Pass:** `admin123`

Use the embedded panel below:
"""

with gr.Blocks(title="PufferPanel on Hugging Face") as demo:
    gr.Markdown(launch_info)
    gr.HTML("""
        <iframe src="http://localhost:8080" 
                style="width:100%; height:800px; border:none;">
        </iframe>
    """)

if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0", server_port=7860)