Files
aitbc/local-domain-proxy.py
oib ff5486fe08 ```
chore: refactor logging module, update genesis timestamp, remove model relationships, and reorganize routers

- Rename logging.py to logger.py and update import paths in poa.py and main.py
- Update devnet genesis timestamp to 1766828620
- Remove SQLModel Relationship declarations from Block, Transaction, and Receipt models
- Add SessionDep type alias and get_session dependency in coordinator-api deps
- Reorganize coordinator-api routers: replace explorer/registry with exchange, users, marketplace
2025-12-28 21:05:53 +01:00

136 lines
4.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Local proxy to simulate domain routing for development
"""
import subprocess
import time
import os
import signal
import sys
from pathlib import Path
# Configuration
DOMAIN = "aitbc.bubuit.net"
SERVICES = {
"api": {"port": 8000, "path": "/v1"},
"rpc": {"port": 9080, "path": "/rpc"},
"marketplace": {"port": 3001, "path": "/"},
"exchange": {"port": 3002, "path": "/"},
}
def start_services():
"""Start all AITBC services"""
print("🚀 Starting AITBC Services")
print("=" * 40)
# Change to project directory
os.chdir("/home/oib/windsurf/aitbc")
processes = {}
# Start Coordinator API
print("\n1. Starting Coordinator API...")
api_proc = subprocess.Popen([
"python", "-m", "uvicorn",
"src.app.main:app",
"--host", "127.0.0.1",
"--port", "8000"
], cwd="apps/coordinator-api")
processes["api"] = api_proc
print(f" PID: {api_proc.pid}")
# Start Blockchain Node (if not running)
print("\n2. Checking Blockchain Node...")
result = subprocess.run(["lsof", "-i", ":9080"], capture_output=True)
if not result.stdout:
print(" Starting Blockchain Node...")
node_proc = subprocess.Popen([
"python", "-m", "uvicorn",
"aitbc_chain.app:app",
"--host", "127.0.0.1",
"--port", "9080"
], cwd="apps/blockchain-node")
processes["blockchain"] = node_proc
print(f" PID: {node_proc.pid}")
else:
print(" ✅ Already running")
# Start Marketplace UI
print("\n3. Starting Marketplace UI...")
market_proc = subprocess.Popen([
"python", "server.py",
"--port", "3001"
], cwd="apps/marketplace-ui")
processes["marketplace"] = market_proc
print(f" PID: {market_proc.pid}")
# Start Trade Exchange
print("\n4. Starting Trade Exchange...")
exchange_proc = subprocess.Popen([
"python", "server.py",
"--port", "3002"
], cwd="apps/trade-exchange")
processes["exchange"] = exchange_proc
print(f" PID: {exchange_proc.pid}")
# Wait for services to start
print("\n⏳ Waiting for services to start...")
time.sleep(5)
# Test endpoints
print("\n🧪 Testing Services:")
test_endpoints()
print("\n✅ All services started!")
print("\n📋 Local URLs:")
print(f" API: http://127.0.0.1:8000/v1")
print(f" RPC: http://127.0.0.1:9080/rpc")
print(f" Marketplace: http://127.0.0.1:3001")
print(f" Exchange: http://127.0.0.1:3002")
print("\n🌐 Domain URLs (when proxied):")
print(f" API: https://{DOMAIN}/api")
print(f" RPC: https://{DOMAIN}/rpc")
print(f" Marketplace: https://{DOMAIN}/Marketplace")
print(f" Exchange: https://{DOMAIN}/Exchange")
print(f" Admin: https://{DOMAIN}/admin")
print("\n🛑 Press Ctrl+C to stop all services")
try:
# Keep running
while True:
time.sleep(1)
except KeyboardInterrupt:
print("\n\n🛑 Stopping services...")
for name, proc in processes.items():
print(f" Stopping {name}...")
proc.terminate()
proc.wait()
print("✅ All services stopped!")
def test_endpoints():
"""Test if services are responding"""
import requests
endpoints = [
("API Health", "http://127.0.0.1:8000/v1/health"),
("Admin Stats", "http://127.0.0.1:8000/v1/admin/stats"),
("Marketplace", "http://127.0.0.1:3001"),
("Exchange", "http://127.0.0.1:3002"),
]
for name, url in endpoints:
try:
if "admin" in url:
response = requests.get(url, headers={"X-Api-Key": "admin_dev_key_1"}, timeout=2)
else:
response = requests.get(url, timeout=2)
print(f" {name}: ✅ {response.status_code}")
except Exception as e:
print(f" {name}: ❌ {str(e)[:50]}")
if __name__ == "__main__":
start_services()