Unified package deep-dive — Tam lane (2026-10-13)
Unified package deep-dive — Tam lane (2026-10-13)
Young: "Package 3 products into single package as sell services." The three lanes verified today chain into one deployable unit per client. This note is the packaging layer Mira/Sol/Min asked for — inputs + build spec, open questions flagged for the 4 Oct-14 lanes.
The single package: "SolOS Commerce-in-a-Box"
One per-tenant Docker compose project = the whole product. Nothing is sold à la carte; POS and AI staff are the same stack, switched on by config:
| Layer | Component | Licence | Where it sits |
|---|---|---|---|
| Store | Medusa v2 (server+worker+PG+Redis) | MIT | per-tenant compose |
| Webshop | Next.js storefront (useEveAgent chat UI) | own code | per-tenant compose |
| POS | Agilo POS (Expo/RN) → tenant's own backend | MIT | client tablets |
| AI staff | EVE agent (tools/skills/connections + HIL) | Apache-2.0 | per-tenant compose, ~0.3 GB |
| Ops | template repo + onboarding script + health gates | ours | shared |
- What the customer buys: managed webshop + in-store POS + AI support/sales agent + admin dashboard, per-tenant domain + TLS, own data (own PG volume), staging env available (second compose project).
- What SolOS sells differently from Medusa Cloud: Cloud sells the runtime; we bundle POS + AI staff + our ops automation — verified neither Medusa Cloud nor the Medusa ecosystem ships an out-of-box POS-with-payments or an agent layer. This is the defensible wedge.
- Why one package is right technically: POS and EVE agent both consume the same per-tenant Admin API keys; splitting them would multiply key-management surfaces. One stack = one secrets register per tenant (already the fleet hygiene pattern).
Packaging mechanics (input to Sol's architecture + Ace's build)
- Feature toggles, not forks: POS on/off = Agilo app connects or not (no server change, needs HTTPS); AI staff on/off = EVE service + proxy route present or absent. One image set, per-tenant env flags.
- The single deployment unit:
docker compose -p <tenant> upwith .env generated by onboarding script (secrets 0600). Health contract::9000/health(Medusa) +/eve/v1/health(agent) both green = tenant live. - Tier ladder (RAM accounting from measured study, Oracle ARM ~20G usable):
- Starter — Medusa + storefront + POS, no agent: 3 G
- Pro — Starter + EVE agent (chat + order-status + HIL refunds): 4.8 G
- Multi/Market — Pro + staging env + custom skills modules: 7.8 G
- Node capacity: ~5 Starter / ~3–4 Pro / ~2 Market per 23Gi ARM node.
- Update + rollback: template git tag →
predeployauto-migrate → restart → health re-gate; rollback = previous tag. Staging copy for client acceptance before prod cutover. - Data/backup: per-tenant
pg_dumpcron → offsite (gdrive lane already proven); retention mirrors vault-archive dated-dir semantics.
Commercial inputs for Mira (verified facts only)
- Hosting cost base: existing Oracle ARM free tier = node 1 (4–6 light tenants); second node needed at ~5 paid tenants → first hard infra cost step.
- Licence cleanliness: MIT + MIT + Apache-2.0 + FSL-free (no Paper dependency) — we may compose/modify/redistribute all parts; only sold-as-a-service terms of our own apply. No GPL contamination found in the chosen repos.
- Competitive anchors: Medusa Cloud (managed runtime only), Shopify (closed, monthly), Square POS ecosystem (POS only). Our wedge = open stack + AI staff + POS bundle with per-tenant data ownership (a pitch Shopify cannot make).
- RAM/tenant numbers above are the unit-economics denominator: gross margin per tenant ≈ price − (infra share + backup storage + ops time). Numbers needed from Mira: price point per tier.
Open questions (flagged for lanes)
- Min + Tam deep dive (in progress): Which 3 packages exactly get bundled? Proposal A = classic/starter×3 per table above. Alternative reads: (i) three client segments (retail shop / services business / hybrid), (ii) three products bundled 1:1. Need Young's read; my default = tier ladder above.
- Mira: pricing per tier + target client count for break-even on node 2 (~5 tenants).
- Sol: tenant-side EVE agent key scoping; whether POS payments wait for Agilo terminal roadmap or ship manual-payment-only at launch.
- Services-selling module: custom Medusa module for bookable services — needs one spike (feasible, unscoped).
Sources
- All component facts: medusa-hosting-docker-study (sizing measured), medusa-eve-integration-study (integration verified), hermes-eve-cohosting-study (RAM budget), medusa-nextjs-commerce-study (POS MVP gaps, licences). No new claims introduced in this note beyond packaging arithmetic on those measured numbers.
Skills registration — 33 skills, measured
Young, 2026-10-20: "pls study these features of Hermes we would need to use it some day. Register these skills for our agents to use." — 33 URLs across bundled + optional.
X API credentials — decision of record
Card: t_1d2979cc — X API credentials decision → then install xurl (the one missing declared binary). Status: BOTH acceptance branches executed. xurl is installed and functional; the credential-provisioning call is escalated to Young (his decision, his X account, his money).

