|
import os |
|
import socket |
|
import threading |
|
from http.server import HTTPServer, SimpleHTTPRequestHandler |
|
import ssl |
|
|
|
print("HI") |
|
|
|
def start_https(): |
|
https_port = int(os.getenv("HTTPS_PORT", "8443")) |
|
httpd = HTTPServer(("0.0.0.0", https_port), SimpleHTTPRequestHandler) |
|
httpd.socket = ssl.wrap_socket( |
|
httpd.socket, |
|
certfile="cert.pem", |
|
keyfile="key.pem", |
|
server_side=True |
|
) |
|
print(f"https listening on 0.0.0.0:{https_port}") |
|
httpd.serve_forever() |
|
|
|
thread = threading.Thread(target=start_https, daemon=True) |
|
thread.start() |
|
|
|
repo_id = os.getenv("REPO_ID", "spaceslab/thost") |
|
user, space = repo_id.split("/") |
|
port = int(os.getenv("PORT", "5678")) |
|
host = f"{space}.{user}.hf.space" |
|
|
|
print(f"tcp://{host}:{port}") |
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
sock.bind(("0.0.0.0", port)) |
|
sock.listen() |
|
print(f"listening on 0.0.0.0:{port}") |
|
|
|
while True: |
|
conn, addr = sock.accept() |
|
print("connection from", addr) |
|
data = conn.recv(1024) |
|
if not data: |
|
conn.close() |
|
continue |
|
conn.sendall(data) |
|
conn.close() |