Services Deployed
Unoverse has three listeners.:4105is the public port (JWT-gated:/api/*, MCP defs, workbench,/pluginsmanagement,/health).:4106is the internal node runtime (/execute,/nodes,/skills,/health) β it lives on the Docker network only and is deliberately never published or proxied; network isolation is the trust boundary.:4101is the workflow engine surface (internal; other containers reach it ashttp://unoverse:4101).
VM Requirements
Sized bysize in terraform.tfvars (small | medium | large). All sizes are single-VM: the size scales the box and the stores, never the topology.
Prerequisites
- Terraform ground applied (VM, load balancer + TLS, firewall, Postgres, Redis β see the overview)
- DOCR token in your terraform.tfvars (from your Unoverse admin)
Steps
1. Provision
Your applied ground IS the configuration β there is nothing to write:Do not setansible_become_passwordoransible_become_flagsfor cloud VMs. Their default users already have passwordless sudo configured by the cloud provider.
2. Run Core Platform Installation
unoverse deploy harden, 04-harden) when a universe graduates from POC. The CLI reads the deploy target from your groundβs rendered configuration and generates a temporary Ansible inventory on every run, so there is no inventory file to maintain.
Every deploy after the first is just:
3. Verify (re-run any time)
Expected Output
Memory dashboard is internal-only. Access via SSH tunnel:ssh -L 4104:localhost:4104 root@<VM_IP>then openhttp://localhost:4104/dashboard. It is never exposed through the load balancer.
Troubleshooting
Next Steps
- 02-database.md - Configure database connection
- Your own nodes, design, and prompts arrive via
unoverse update, the Marketplace, or Studio publish (never via deploy)

