Spaces:
Build error
Build error
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() |