Docker + Compose
Install Docker Engine with Compose, or Docker Desktop. The product Dockerfile provides Node.js for the build.
GET YOUR TEAM READY
Build Yaoyao AI v0.4.4 from source with Docker. Connect your existing Hermes service and share one AI workspace across Web, macOS, iOS, and Android.
v0.4.4 release and downloads01 / Prerequisites
Install Docker Engine with Compose, or Docker Desktop. The product Dockerfile provides Node.js for the build.
Prepare a Hermes Dashboard / Gateway that the container can reach, usually on port 9119.
Run the following commands in the product source directory containing compose.yaml and docker.env.example.
02 / Connection settings
Copy the environment template, then edit docker.env for your network. These are the defaults for local access.
cp docker.env.example docker.envHERMES_YAOYAO_UPSTREAM=http://host.docker.internal:9119
HERMES_YAOYAO_BIND_ADDRESS=127.0.0.1
HERMES_YAOYAO_PUBLISHED_PORT=15300
HERMES_YAOYAO_ALLOWED_HOSTS=HERMES_YAOYAO_UPSTREAMA Hermes address reachable from the container.
HERMES_YAOYAO_BIND_ADDRESSDefaults to 127.0.0.1; use 0.0.0.0 for trusted LAN access.
HERMES_YAOYAO_PUBLISHED_PORTPublished host port; defaults to 15300.
HERMES_YAOYAO_ALLOWED_HOSTSAllowed domain names, separated by commas.
Docker Desktop can reach the host via host.docker.internal. On Linux, Compose maps the host gateway, and Hermes must listen on an address reachable from the container. For remote Hermes, enter its reachable service address.
03 / Build and launch
Validate the Compose configuration, build the image, and start the service. The first build downloads dependencies and may take a few minutes.
docker compose --env-file docker.env config --quiet
docker compose --env-file docker.env up -d --build
docker compose --env-file docker.env psOpen http://127.0.0.1:15300 by default. Create your administrator account, then save your Hermes credentials in system settings.
Connect iOS and Android to the same Yaoyao server; iOS supports a password or mobile sign-in QR code. Use a server IP or HTTPS domain reachable from your phone, not port 9119 or the phone’s own 127.0.0.1. See the release page for Android installation requirements.
04 / Verify the service
These commands use the default port. Update the URLs if you changed the published port.
curl --noproxy '*' --fail http://127.0.0.1:15300/healthz
curl --noproxy '*' --fail http://127.0.0.1:15300/readyz
docker compose --env-file docker.env logs --tail=100 web/healthzChecks the Yaoyao Web service itself.
/readyzChecks whether the Hermes upstream is ready.
Sign in, create a role, send a message, and upload and download an attachment. Check your history on Web, iOS, or Android with the same account to complete the test.
05 / Data and updates
Accounts, chats, files, and keys are stored in the yaoyao-data named volume at /home/node/.yaoyao inside the container. Replacement containers reuse this volume.
Before upgrading, stop Web and back up the entire data directory to a new, separate location. Preserve permissions and encryption keys, then restart the service. A single database file is not a complete backup.
Get the updated source from GitHub Releases, then rebuild the image and recreate the container. Check the release notes for companion client requirements.
docker compose --env-file docker.env up -d --build
docker compose --env-file docker.env psdocker compose down preserves volumes. Adding --volumes deletes the data; use it only when intentionally clearing the deployment.
06 / Common questions
Yaoyao connects to a separately managed Hermes service on port 9119. It does not need the Hermes filesystem or Docker socket mounted into the application.
For a trusted LAN, publish on 0.0.0.0 and use the server IP. For public access, configure HTTPS on your reverse proxy and add the domain to the allowed hosts.
Check the upstream URL, Hermes listening address, and container network. If Hermes requires authentication, save the correct credentials in Yaoyao system settings.
Your server persists the application data. Models, tools, or voice providers may use remote services; data flow depends on the configuration you choose.
Yaoyao uses the Apache-2.0 license. Refer to LICENSE in the product source for the applicable use and distribution terms.