File size: 1,460 Bytes
9650886
 
 
 
9063de4
9650886
 
 
 
 
 
9063de4
9650886
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import subprocess
import time
import socket

def check_port(host, port):
    try:
        with socket.create_connection((host, port), timeout=1):
            return True
    except OSError:
        return False

def start_perplexica():
    print("Starte Docker Compose...")
    subprocess.run(["docker-compose", "up", "-d"], check=True)
    print("Docker Compose wurde gestartet.")


    print("Warte bis Perplexica backend und frontend erreichbar ist...")
    # Warte auf den Backend-API-Port (3001) und Frontend Port (3000)
    backend_ready = False
    frontend_ready = False
    while not backend_ready or not frontend_ready:
            if not backend_ready:
                backend_ready = check_port("127.0.0.1",3001)
                if backend_ready:
                    print("Perplexica backend ist erreichbar")
            if not frontend_ready:
                frontend_ready = check_port("127.0.0.1",3000)
                if frontend_ready:
                    print("Perplexica frontend ist erreichbar")
            if not backend_ready or not frontend_ready:
                time.sleep(5)
    print("Perplexica ist bereit.")


    # Ermittle die öffentliche URL und gib sie aus (wichtig für Huggingface Spaces)
    public_url = os.environ.get("SPACE_PUBLIC_URL", "http://127.0.0.1:7860") # Standard wenn keine variable
    print(f"Perplexica UI ist erreichbar unter: {public_url}")


if __name__ == "__main__":
    start_perplexica()