Skip to main content

Public stand

The public stand uses the quickstart stack behind the operator's existing Caddy edge. It is an evaluation deployment with operator-issued credentials. The repository's redeploy script targets https://yabanin.ai by default; this page describes that deployment contract, not a live availability check.

Access​

Obtain an admin account and organization gateway key from the operator. The local demo's fixed credentials do not apply here.

SurfacePublic pathBackend
Website and documentation/, /docsStatic Docusaurus build
Gateway/gw/healthz, /gw/v1/...Gateway on loopback port 8082; edge strips /gw
Admin login and API/auth/..., /api/...Admin on loopback port 8086

A separately served dashboard may use /stand; its assets and edge routing are managed outside the quickstart redeploy script. Use the dashboard URL provided by the operator. The shared VPS Caddy configuration is not the three-domain template in deploy/caddy/Caddyfile.tmpl.

Use https://yabanin.ai/gw/v1 as an OpenAI-compatible client base URL, with your gateway key. Use a model returned by /gw/v1/models; the redeploy smoke test expects the seeded mock-model. A mock response verifies the request path, not a real provider connection. To configure a real upstream, follow BYOK and Organization setup.

Redeploy an existing stand​

Run from the repository root with Docker running and SSH access to the existing stand host:

scripts/deploy-public-stand.sh --host operator@stand.example.com

The script builds yabanin-quickstart:local for linux/amd64, tags the currently installed image as yabanin-quickstart:previous, transfers the new image, and syncs only the quickstart Compose/bootstrap files and scripts. It then runs docker compose --profile mock up -d --wait remotely.

Remote deploy/quickstart/.env and .stand-key are preserved. The image comes from the current working tree, including uncommitted changes; the script records the commit label (with -dirty when applicable) in the remote .deployed-version file. It does not provision a new VPS, DNS, TLS, a dashboard build, or database backups.

OptionMeaning
--host USER@HOSTOverride SSH destination
--skip-buildTransfer the existing local image; it must already exist
--skip-smokeSkip post-deployment checks
--yesAccepted by the script; currently it has no confirmation prompt
YABANIN_STAND_DIRRemote source directory, default /opt/yabanin-src
YABANIN_STAND_URLPublic base URL, default https://yabanin.ai
YABANIN_STAND_HOSTSSH destination when --host is absent; set explicitly

Smoke checks cover local/public gateway health, authenticated model listing, a short mock chat completion, and the admin login page. The script reads .stand-key over SSH without printing it. These checks do not validate a user's BYOK provider or every dashboard workflow.

Image rollback​

On the stand host, after verifying the previous image is compatible with the current database schema:

docker tag yabanin-quickstart:previous yabanin-quickstart:local
cd /opt/yabanin-src/deploy/quickstart
docker compose --profile mock up -d --wait

This rolls back the image only. Synced Compose files, the recorded version label, and database migrations are not reverted. Keep database backups and the previous configuration when deploying changes that need more than an image rollback. A first deployment may have no :previous image.

Website deployment is separate​

scripts/deploy-site.sh builds web/site, backs up the VPS webroot, and uses rsync --delete to replace its contents in place. Files absent from the build, including manually uploaded Overview HTML or dashboard assets stored there, are deleted. Check the complete build contents before publishing. Do not swap the webroot directory: Caddy's bind mount follows its inode.

For a new deployment with separate API, admin, and dashboard domains, explicit persistent volumes, alerts, status generation, and backups, use the production Compose runbook.