Dockerhost / server.py
Swizzyy's picture
Create server.py
2f4c8d1 verified
Raw
History Blame Contribute Delete
1.33 kB
import os
from fastapi import FastAPI, Header, HTTPException, Request
from pydantic import BaseModel
from typing import Optional
app = FastAPI()
# Get the Secret from Hugging Face Settings
API_KEY = os.getenv("API_KEY")
class EncryptedSignal(BaseModel):
recipient_id: str
encrypted_blob: str # The E2EE data from AIDE
type: str = "signal"
@app.get("/")
def health_check():
return {"status": "Teamer Python Server is Online", "blind": True}
@app.post("/api/push")
async def push_signal(
signal: EncryptedSignal,
x_api_key: Optional[str] = Header(None)
):
# 1. Security Check
if not x_api_key or x_api_key != API_KEY:
print("Unauthorized access attempt blocked.")
raise HTTPException(status_code=401, detail="Unauthorized")
# 2. Blind Routing Logic
# The server only sees who it is for, not what is inside.
print(f"Routing encrypted payload to: {signal.recipient_id}")
# In a full app, you would push this to a DB (like MongoDB or Supabase)
return {
"success": True,
"message": "Blob routed",
"timestamp": os.getloadavg() # Just a dummy metric
}
if __name__ == "__main__":
import uvicorn
# Hugging Face uses port 7860 by default
port = int(os.getenv("PORT", 7860))
uvicorn.run(app, host="0.0.0.0", port=port)