This is the self-hosting guide for XAI Router, for running a dedicated private instance.

1) Prerequisites

  • Linux server (recommended: 2 vCPU / 2 GB RAM or above)
  • Docker + Docker Compose installed
  • Three domains pointing to your server IP:
    • API: api-xai.your-domain.com
    • Account console: manage-xai.your-domain.com
    • Admin console: admin-xai.your-domain.com

2) Docker Compose Deployment

1) Generate docker-compose.yml

curl -X POST https://deploy.xairouter.com/xai?raw=true \
  -H "Content-Type: application/json" \
  -d '{
    "xai_mail": "[email protected]",
    "xai_api": "api-xai.your-domain.com",
    "xai_manage": "manage-xai.your-domain.com",
    "xai_admin": "admin-xai.your-domain.com"
  }' > docker-compose.yml

2) Start services

docker-compose -f docker-compose.yml up -d

3) Configure Nginx

curl -X POST https://deploy.xairouter.com/nginx?raw=true \
  -H "Content-Type: application/json" \
  -d '{
    "xai_api": "api-xai.your-domain.com",
    "xai_manage": "manage-xai.your-domain.com",
    "xai_admin": "admin-xai.your-domain.com"
  }' > /etc/nginx/nginx.conf

sudo systemctl restart nginx && sudo systemctl enable nginx

4) Enable HTTPS

Enable TLS for all three domains (e.g. Let’s Encrypt).

5) Verify deployment

docker-compose ps

Open in browser:

  • https://manage-xai.your-domain.com
  • https://admin-xai.your-domain.com

3) Kubernetes Deployment (Optional)

curl -X POST https://deploy.xairouter.com/xai/k8s?raw=true \
  -H "Content-Type: application/json" \
  -d '{
    "xai_mail": "[email protected]",
    "xai_api": "api-xai.your-domain.com",
    "xai_manage": "manage-xai.your-domain.com",
    "xai_admin": "admin-xai.your-domain.com"
  }' > xai-router-k8s.yaml

kubectl apply -f xai-router-k8s.yaml

Adjust StorageClass, Ingress, and TLS settings based on your cluster.

4) Post-Deployment Recommendations

  • rotate admin credentials on first login
  • create child-account hierarchy (unlimited depth/quantity)
  • configure mapping, rate limits, and billing alerts