Canonical public origin for the AIMarket Federation Hub: https://modelmarket.dev.
Point A/AAAA records for modelmarket.dev and www.modelmarket.dev to the host running nginx (this fleet: 5.129.212.122).
Public ecosystem map (ecosystem-landing/) plus SEO landings (/learn/, /oracles/, /guides/, /encyclopedia/, sitemap.xml). Built by ./scripts/build_ecosystem_landing.sh before deploy. See seo-landings/README.md.
DNS at Timeweb:
| Host | Type | Value |
|---|---|---|
modeldev |
A | 5.129.212.122 |
One-shot (root):
sudo CERTBOT_EMAIL=you@example.com ./scripts/setup-modeldev-ecosystem-landing.shRoutine refresh after editing ecosystem-landing/ (also runs automatically from ./scripts/deploy_ecosystem.sh):
sudo ./scripts/deploy_ecosystem_landing.shVerify:
curl -sI https://modeldev.modelmarket.dev/ | head -5
curl -s https://modeldev.modelmarket.dev/ | grep -o '<title>[^<]*</title>'
curl -sI https://modeldev.modelmarket.dev/sitemap.xml | head -3
curl -sI https://modeldev.modelmarket.dev/oracles/platon/ | head -3
./scripts/verify_seo_landings.shPlaton Shadow Oracle runs on 78.17.126.214. DNS at Timeweb points the subdomain directly to that host (no factory nginx proxy).
Note:
oracles/andplaton/in this monorepo are archival mirrors of the external oracle stack. They are not deployed by./scripts/deploy_ecosystem.sh— run setup on the Platon host only.
| Host | Type | Value |
|---|---|---|
oracles |
A | 78.17.126.214 |
After DNS propagates, on the Platon server (78.17.126.214, root):
# Platon app: PUBLIC_URL=https://oracles.modelmarket.dev, listen 127.0.0.1:8080
sudo CERTBOT_EMAIL=you@example.com ./scripts/setup-oracles-platon-on-host.shFrom the factory host, register in federation:
./scripts/announce-platon-oracles.shVerify:
curl -s https://oracles.modelmarket.dev/.well-known/ai-market.json | jq '{hub_url, manifest_url, capabilities_count}'
curl -s https://oracles.modelmarket.dev/api/health | jq '{status, kappa, order_parameter}'| Service | Host port | Notes |
|---|---|---|
| AIMarket Hub (Docker) | 127.0.0.1:9083 → container 9080 |
modelmarket-hub container |
| nginx | :80 / :443 |
TLS termination, proxy to hub |
AI-Factory UI remains on magic-ai-factory.com (:9080). The hub seeds federation from
https://magic-ai-factory.com/.well-known/ai-market.json.
sudo CERTBOT_EMAIL=you@example.com /path/to/aicom/scripts/setup-modelmarket-ssl.shOr manually:
sudo cp deploy/nginx/modelmarket.dev.conf /etc/nginx/sites-available/modelmarket.dev
sudo ln -sf /etc/nginx/sites-available/modelmarket.dev /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
docker build -f aimarket-hub/Dockerfile -t modelmarket-hub:latest .
docker run -d --name modelmarket-hub --restart unless-stopped \
-p 127.0.0.1:9083:9080 \
-e AIMARKET_HUB_NAME=modelmarket.dev \
-e AIMARKET_HUB_URL=https://modelmarket.dev \
-e AIMARKET_SEED_LIST=https://magic-ai-factory.com/.well-known/ai-market.json \
-v modelmarket_hub_data:/app/data \
modelmarket-hub:latest
sudo certbot --nginx -d modelmarket.dev -d www.modelmarket.dev \
--non-interactive --agree-tos --redirect -m you@example.comUbuntu certbot.timer runs certbot renew twice daily and reloads nginx when a cert is renewed.
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
sudo certbot renew --dry-run --cert-name modelmarket.dev| Variable | Example |
|---|---|
AIMARKET_HUB_NAME |
modelmarket.dev |
AIMARKET_HUB_URL |
https://modelmarket.dev |
AIMARKET_SEED_LIST |
https://magic-ai-factory.com/.well-known/ai-market.json |
deploy/nginx/modelmarket.dev.conf— nginx template (pre-certbot; live file is certbot-managed on server)aimarket-hub/README.md— hub operationsdocs/production-domain.md— magic-ai-factory.com TLS