Files
aitbc/nginx-domain-setup.md
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

4.0 KiB

Nginx Domain Setup for AITBC

Problem

The admin endpoint at https://aitbc.bubuit.net/admin returns 404 because nginx isn't properly routing to the backend services.

Solution

1. Make sure services are running in the container

# Access the container
incus exec aitbc -- bash

# Inside container, start services
cd /home/oib/aitbc
./start_aitbc.sh

# Check if running
ps aux | grep uvicorn

2. Update nginx configuration in container

The nginx config needs to be inside the container at /etc/nginx/sites-available/aitbc:

server {
    listen 80;
    server_name aitbc.bubuit.net;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name aitbc.bubuit.net;
    
    # SSL certs (already configured)
    ssl_certificate /etc/letsencrypt/live/aitbc.bubuit.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/aitbc.bubuit.net/privkey.pem;
    
    # API routes - MUST include /v1
    location /api/ {
        proxy_pass http://127.0.0.1:8000/v1/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Admin routes
    location /admin/ {
        proxy_pass http://127.0.0.1:8000/admin/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Blockchain RPC
    location /rpc/ {
        proxy_pass http://127.0.0.1:9080/rpc/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Marketplace UI
    location /Marketplace {
        proxy_pass http://127.0.0.1:3001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Trade Exchange
    location /Exchange {
        proxy_pass http://127.0.0.1:3002/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Health endpoint
    location /health {
        proxy_pass http://127.0.0.1:8000/v1/health;
        proxy_set_header Host $host;
    }
    
    # Default redirect
    location / {
        return 301 /Marketplace;
    }
}

3. Apply the configuration

# Copy config to container
incus file push nginx-aitbc.conf aitbc/etc/nginx/sites-available/aitbc

# Enable site
incus exec aitbc -- ln -sf /etc/nginx/sites-available/aitbc /etc/nginx/sites-enabled/

# Test config
incus exec aitbc -- nginx -t

# Reload nginx
incus exec aitbc -- systemctl reload nginx

4. Verify services are running

# Check each service
curl -k https://aitbc.bubuit.net/api/health
curl -k https://aitbc.bubuit.net/admin/stats -H "X-Api-Key: admin_dev_key_1"
curl -k https://aitbc.bubuit.net/rpc/head

Quick Fix

If you need immediate access, you can access the API directly:

The issue is likely that:

  1. Services aren't running in the container
  2. Nginx config isn't properly routing /admin to the backend
  3. Port forwarding isn't configured correctly

Debug Steps

  1. Check container services: incus exec aitbc -- ps aux | grep uvicorn
  2. Check nginx logs: incus exec aitbc -- journalctl -u nginx -f
  3. Check nginx config: incus exec aitbc -- nginx -T
  4. Test backend directly: incus exec aitbc -- curl http://127.0.0.1:8000/v1/health