PageSourceSearch

https://oobeya.io/_nuxt/BXnVsaCj.js

js oobeya.io collected 2026-10-03 20:52:32 UTC 38,492 bytes, 1 lines download raw bytes

1import{k as W,e as I,x as Q,y as Y,z as J,o as n,q as X,b as f,T as z,w as G,A,a as e,B as Z,g as r,j as N,c as d,m as R,C as ee,D as te,v as P,E as ae,i as T,F as w,r as k,R as q,N as V,t as i,d as S,bi as re,_ as oe,n as B,h as C}from"./DlpDSASA.js";import{_ as j}from"./DlAUqK2U.js";import{u as se,a as ie}from"./D4fDsocW.js";const E=()=>{const _=W("support-request-modal-open",()=>!1);return{isOpen:_,open:()=>{_.value=!0},close:()=>{_.value=!1}}},ne={class:"relative max-h-[90vh] w-full max-w-[760px] overflow-auto rounded-[28px] border border-slate-200 bg-white p-6 shadow-[0_40px_120px_-50px_rgba(15,23,42,0.45)] md:p-8"},de={class:"mt-8 rounded-[24px] border border-slate-200 bg-slate-50 p-4 md:p-5"},le={key:0,class:"rounded-2xl border border-dashed border-slate-300 bg-white px-4 py-10 text-center text-sm text-slate-500"},ce={key:1,class:"rounded-2xl border border-red-200 bg-red-50 px-4 py-6 text-sm text-red-700"},D="support-request-form",me='@import url("https://fonts.googleapis.com/css2?family=Inter:[email protected]&display=swap");html,body{font-family:"Inter",sans-serif!important;background:transparent!important;}.hbspt-form{font-family:"Inter",sans-serif!important;}.hs-form-field{margin-bottom:14px!important;}.hs-form-field > label{font-size:13px!important;font-weight:600!important;color:#0f172a!important;margin-bottom:6px!important;display:block!important;}.hs-input, textarea{font-family:"Inter",sans-serif!important;background:#fff!important;border:1px solid #cbd5e1!important;border-radius:12px!important;padding:12px 14px!important;color:#0f172a!important;}.hs-input::placeholder, textarea::placeholder{color:#94a3b8!important;}.hs-button{background:#16a34a!important;width:100%!important;padding:14px 16px!important;border-radius:10px!important;border:1px solid #16a34a!important;color:#fff!important;font-weight:600!important;}.hs-button:hover{background:#15803d!important;border-color:#15803d!important;}.submitted-message{color:#0f172a!important;font-size:15px!important;line-height:1.7!important;}',pe=I({__name:"SupportRequestModal",setup(_){const{isOpen:g,close:p}=E(),h=P(!1),x=P(!1),u=P(!1),b=async()=>{if(window.hbspt)return;const o=document.querySelector('script[data-hubspot-forms="true"]');if(o){await new Promise((s,c)=>{if(window.hbspt){s();return}o.addEventListener("load",()=>s(),{once:!0}),o.addEventListener("error",()=>c(new Error("HubSpot script failed")),{once:!0})});return}await new Promise((s,c)=>{const m=document.createElement("script");m.src="https://js-eu1.hsforms.net/forms/embed/v2.js",m.async=!0,m.dataset.hubspotForms="true",m.onload=()=>s(),m.onerror=()=>c(new Error("HubSpot script failed")),document.body.appendChild(m)})},v=async()=>{if(!h.value){x.value=!0,u.value=!1;try{await b(),await ae();const o=document.getElementById(D);if(!o)throw new Error("HubSpot target not found");if(o.childElementCount>0){h.value=!0,x.value=!1;return}window.hbspt.forms.create({portalId:"26189266",formId:"777c1af1-d2b1-44fc-aa19-1f39d61adba8",region:"eu1",target:`#${D}`,onFormReady:s=>{const c=document.createElement("style");c.type="text/css",c.appendChild(document.createTextNode(me)),s.appendChild(c),h.value=!0,x.value=!1},onFormSubmitted:()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"hubspotFormSubmitted",currentUrl:window.location.href,source:"supportRequestModal"})}})}catch(o){console.error(o),u.value=!0,x.value=!1}}},y=o=>{o.key==="Escape"&&p()};return Q(g,async o=>{document.body.style.overflow=o?"hidden":"",o&&await v()}),Y(()=>{window.addEventListener("keydown",y)}),J(()=>{document.body.style.overflow="",window.removeEventListener("keydown",y)}),(o,s)=>{const c=N;return n(),X(te,{to:"body"},[f(z,{name:"support-request-modal"},{default:G(()=>[A(e("div",{class:"fixed inset-0 z-[100] flex items-center justify-center bg-slate-950/55 px-4 py-8 backdrop-blur-[2px]",onClick:s[1]||(s[1]=Z((...m)=>r(p)&&r(p)(...m),["self"]))},[e("div",ne,[e("button",{type:"button",class:"absolute right-4 top-4 inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-500 transition hover:border-green-200 hover:text-green-700","aria-label":"Close form",onClick:s[0]||(s[0]=(...m)=>r(p)&&r(p)(...m))},[f(c,{name:"i-heroicons-x-mark-20-solid",class:"h-5 w-5"})]),s[2]||(s[2]=e("div",{class:"pr-10"},[e("p",{class:"inline-flex rounded-full bg-green-100 px-4 py-1 text-xs font-semibold uppercase tracking-[0.14em] text-green-700"}," Oobeya Support "),e("h3",{class:"mt-4 text-3xl font-bold tracking-tight text-slate-900 md:text-[2.2rem]"}," Ask about on-premise requirements "),e("p",{class:"mt-4 max-w-[620px] text-base leading-8 text-slate-500"}," Share your deployment model, expected scale, repository volume, and sizing questions. We will route your request to the right Oobeya team. ")],-1)),e("div",de,[r(x)?(n(),d("div",le," Loading form... ")):r(u)?(n(),d("div",ce," We couldn’t load the form right now. Please try again in a moment. ")):R("",!0),e("div",{id:D})])])],512),[[ee,r(g)]])]),_:1})])}}}),ue=j(pe,[["__scopeId","data-v-1a2dfa91"]]),be={class:"bg-slate-50 text-slate-900"},ge={class:"border-b border-slate-200 bg-white px-4 py-12 lg:px-0 md:py-16"},xe={class:"mx-auto max-w-[1120px]"},ye={class:"mt-8 grid gap-8 lg:grid-cols-[0.95fr_1.05fr] lg:items-center"},fe={class:"flex justify-center lg:justify-end","aria-hidden":"true"},he={class:"relative h-[300px] w-full max-w-[380px] rounded-[44px] border border-slate-200 bg-slate-50 shadow-[0_24px_70px_-52px_rgba(15,23,42,0.42)]"},ve={class:"absolute left-1/2 top-[139px] flex h-14 w-14 -translate-x-1/2 items-center justify-center rounded-2xl bg-green-600 text-white shadow-lg shadow-green-600/20"},we={class:"px-4 py-8 lg:px-0 md:py-12"},ke={class:"mx-auto max-w-[1120px] space-y-8"},Se=["id"],Ce={class:"border-b border-slate-200 bg-slate-50/90 px-5 py-6 md:px-6"},Pe={class:"mt-6 grid gap-3 md:grid-cols-2 xl:grid-cols-4"},_e=["onClick"],Me={class:"block text-base font-bold leading-6 text-slate-950"},Ge={class:"mt-2 line-clamp-3 text-xs font-medium leading-5 text-slate-500"},Be={key:0,class:"absolute right-3 top-3 h-2 w-2 rounded-full bg-green-500 transition-all duration-300"},De={class:"mt-2 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},Ae={class:"text-2xl font-bold tracking-tight text-slate-950"},Re={class:"mt-2 max-w-[780px] text-sm leading-7 text-slate-600"},Oe={class:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3"},Ue={class:"mt-2 list-disc space-y-1.5 pl-5 text-sm leading-6 text-slate-600"},Te={class:"mt-3 text-sm leading-6 text-slate-600"},qe={class:"bg-white px-5 py-5 md:px-6"},Ve={class:"overflow-hidden rounded-2xl border border-slate-300 bg-white shadow-[0_18px_48px_-38px_rgba(15,23,42,0.35)]"},Le={class:"border-b border-green-100 bg-green-50/70 px-4 py-4 md:px-5"},Ie={class:"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between"},ze={class:"grid gap-3 sm:grid-cols-2 lg:min-w-[520px]"},Ne={for:"developer-scope",class:"block rounded-xl border border-green-200 bg-white p-3 shadow-sm"},je=["value"],Ee={class:"mt-2 block text-xs leading-5 text-slate-500"},He={for:"repository-scope",class:"block rounded-xl border border-green-200 bg-white p-3 shadow-sm"},Fe=["value"],Ke={class:"mt-2 block text-xs leading-5 text-slate-500"},$e={class:"overflow-hidden bg-white"},We={class:"w-full table-fixed border-collapse text-left text-[11px] sm:text-xs md:text-sm"},Qe={class:"break-words bg-slate-50 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6"},Ye={class:"break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6"},Je={class:"break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6"},Xe={class:"break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6"},Ze={class:"border-t border-slate-200 bg-white px-4 py-4 md:px-5"},et={class:"rounded-xl border border-amber-200 bg-amber-50 px-4 py-3"},tt={class:"mt-3 flex flex-col gap-2 border-t border-amber-200 pt-3 sm:flex-row sm:items-center sm:justify-between"},at={class:"border-t border-slate-200 bg-white px-4 py-12 lg:px-0"},rt={class:"mx-auto grid max-w-[1120px] gap-8 lg:grid-cols-[0.8fr_1.2fr]"},ot={class:"rounded-2xl border border-slate-200 bg-slate-50/80 p-3"},st="Oobeya On-Premise Requirements | Oobeya",it="Technical infrastru
1cture requirements for Oobeya on-premise deployments with Docker on VM, Helm on Kubernetes, and OpenShift.",L="/on-premise/requirements",nt=I({__name:"requirements",setup(_){se({title:st,description:it,path:L,type:"website",image:"/assets/img/graph-20.png"}),ie([{name:"Home",path:"/"},{name:"On-Premise",path:"/on-premise"},{name:"Requirements",path:L}]);const{open:g}=E(),p=[{id:"dev-100",label:"0-100 developers",description:"Pilot, small team, or limited rollout",weight:1},{id:"dev-500",label:"100-500 developers",description:"Multi-team production usage",weight:2},{id:"dev-1000",label:"500-1,000 developers",description:"Large engineering organization",weight:3},{id:"dev-2000",label:"1,000-2,000 developers",description:"Enterprise production usage",weight:4},{id:"dev-4000",label:"2,000-4,000 developers",description:"Large enterprise rollout",weight:5},{id:"dev-4000-plus",label:"4,000+ developers",description:"Very large enterprise scale",weight:6}],h=[{id:"repo-250",label:"0-250 repositories",description:"Small or pilot repository scope",weight:1},{id:"repo-1000",label:"250-500 repositories",description:"Focused portfolio scope",weight:2},{id:"repo-1000-mid",label:"500-1,000 repositories",description:"Broad SDLC visibility",weight:3},{id:"repo-5000",label:"1,000-5,000 repositories",description:"Large portfolio scale",weight:4},{id:"repo-10000",label:"5,000-10,000 repositories",description:"Enterprise repository estate",weight:5},{id:"repo-10000-plus",label:"10,000+ repositories",description:"Extreme scale repository estate",weight:6}],x={1:{dockerCompute:{area:"Compute",minimum:"4 vCPU",recommended:"8 vCPU",ultra:"16+ vCPU"},dockerMemory:{area:"Memory",minimum:"16 GB RAM",recommended:"16 GB RAM",ultra:"32 GB RAM"},dockerDisk:{area:"Disk",minimum:"100 GB SSD",recommended:"250 GB SSD",ultra:"500 GB+ SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"4 vCPU / 16 GB RAM schedulable capacity",recommended:"8 vCPU / 16 GB RAM schedulable capacity",ultra:"16+ vCPU / 32 GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"100 Gi StorageClass-backed PVC capacity",recommended:"250 Gi expandable PVC capacity",ultra:"500 Gi+ SSD-backed PVC capacity with snapshot support"}},2:{dockerCompute:{area:"Compute",minimum:"8 vCPU",recommended:"8 vCPU",ultra:"16+ vCPU"},dockerMemory:{area:"Memory",minimum:"16 GB RAM",recommended:"24 GB RAM",ultra:"40 GB RAM"},dockerDisk:{area:"Disk",minimum:"150 GB SSD",recommended:"300 GB SSD",ultra:"600 GB+ SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"8 vCPU / 16 GB RAM schedulable capacity",recommended:"8 vCPU / 24 GB RAM schedulable capacity",ultra:"16+ vCPU / 40 GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"150 Gi StorageClass-backed PVC capacity",recommended:"300 Gi expandable PVC capacity",ultra:"600 Gi+ SSD-backed PVC capacity with snapshot support"}},3:{dockerCompute:{area:"Compute",minimum:"8 vCPU",recommended:"12 vCPU",ultra:"20+ vCPU"},dockerMemory:{area:"Memory",minimum:"24 GB RAM",recommended:"32 GB RAM",ultra:"48 GB RAM"},dockerDisk:{area:"Disk",minimum:"200 GB SSD",recommended:"400 GB SSD",ultra:"750 GB+ SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"8 vCPU / 24 GB RAM schedulable capacity",recommended:"12 vCPU / 32 GB RAM schedulable capacity",ultra:"20+ vCPU / 48 GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"200 Gi StorageClass-backed PVC capacity",recommended:"400 Gi expandable PVC capacity",ultra:"750 Gi+ SSD-backed PVC capacity with snapshot support"}},4:{dockerCompute:{area:"Compute",minimum:"12 vCPU",recommended:"16 vCPU",ultra:"24+ vCPU"},dockerMemory:{area:"Memory",minimum:"32 GB RAM",recommended:"48 GB RAM",ultra:"64+ GB RAM"},dockerDisk:{area:"Disk",minimum:"250 GB SSD",recommended:"500 GB SSD",ultra:"1 TB+ SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"12 vCPU / 32 GB RAM schedulable capacity",recommended:"16 vCPU / 48 GB RAM schedulable capacity",ultra:"24+ vCPU / 64+ GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"250 Gi StorageClass-backed PVC capacity",recommended:"500 Gi expandable PVC capacity",ultra:"1 Ti+ SSD-backed PVC capacity with snapshot support"}},5:{dockerCompute:{area:"Compute",minimum:"16 vCPU",recommended:"24 vCPU",ultra:"32+ vCPU"}
1,dockerMemory:{area:"Memory",minimum:"48 GB RAM",recommended:"56 GB RAM",ultra:"80+ GB RAM"},dockerDisk:{area:"Disk",minimum:"500 GB SSD",recommended:"750 GB SSD",ultra:"1.5 TB+ SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"16 vCPU / 48 GB RAM schedulable capacity",recommended:"24 vCPU / 56 GB RAM schedulable capacity",ultra:"32+ vCPU / 80+ GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"500 Gi StorageClass-backed PVC capacity",recommended:"750 Gi expandable PVC capacity",ultra:"1.5 Ti+ SSD-backed PVC capacity with snapshot support"}},6:{dockerCompute:{area:"Compute",minimum:"24 vCPU",recommended:"32+ vCPU",ultra:"48+ vCPU"},dockerMemory:{area:"Memory",minimum:"64 GB RAM",recommended:"64+ GB RAM",ultra:"96+ GB RAM"},dockerDisk:{area:"Disk",minimum:"750 GB SSD",recommended:"1+ TB SSD",ultra:"2+ TB SSD or expandable volume"},clusterCapacity:{area:"Cluster capacity for Oobeya",minimum:"24 vCPU / 64 GB RAM schedulable capacity",recommended:"32+ vCPU / 64+ GB RAM schedulable capacity",ultra:"48+ vCPU / 96+ GB RAM schedulable capacity"},persistentStorage:{area:"Persistent storage",minimum:"750 Gi StorageClass-backed PVC capacity",recommended:"1+ Ti expandable PVC capacity",ultra:"2+ Ti SSD-backed PVC capacity with snapshot support"}}},u=[{id:"docker-vm",title:"Docker on VM",docUrl:"https://docs.oobeya.io/installations/installation-video",description:"For single-host on-premise deployments where Oobeya runs on a dedicated VM or container host managed by your infrastructure team.",notes:["Docker and docker-compose are required.","Outbound image access is required for Oobeya Azure Container Registry. You can also use a registry mirror or download images and transfer them for offline installation."],rows:[{area:"Target use",minimum:"Test environment, demo, small pilot",recommended:"Standard production environment",ultra:"Large production environment or heavy analytics usage"},{area:"Compute",minimum:"8 vCPU / 4 physical cores",recommended:"8 vCPU",ultra:"16+ vCPU"},{area:"Memory",minimum:"16 GB RAM",recommended:"32 GB RAM",ultra:"64 GB RAM"},{area:"Disk",minimum:"100 GB SSD",recommended:"250 GB SSD",ultra:"500 GB+ SSD or expandable volume"},{area:"Operating system",minimum:"Modern Linux server distribution",recommended:"Enterprise Linux or Ubuntu LTS with patching policy",ultra:"Enterprise Linux with monitored filesystem, backup, and hardening baseline"},{area:"Container runtime",minimum:"Docker Engine + docker-compose",recommended:"Docker Engine + compose plugin, managed as system services",ultra:"Hardened container host with monitoring, log rotation, and backup automation"},{area:"Network",minimum:"HTTPS, DNS name, outbound access to required integrations and registries (oobeya.azurecr.io, oobeya.germanywestcentral.data.azurecr.io)",recommended:"HTTPS, DNS name, outbound access to required integrations and registries (oobeya.azurecr.io, oobeya.germanywestcentral.data.azurecr.io)",ultra:"HTTPS, DNS name, outbound access to required integrations and registries (oobeya.azurecr.io, oobeya.germanywestcentral.data.azurecr.io)"},{area:"Backup",minimum:"Manual VM or volume snapshot",recommended:"Scheduled volume/database backups",ultra:"Tested restore procedure, retention policy, off-host backup storage"}]},{id:"helm-kubernetes",title:"Kubernetes with Helm",docUrl:"https://docs.oobeya.io/installations/oobeya-installation-tutorial-helm",description:"For Kubernetes environments where platform teams use Helm for packaging, configuration, upgrades, and release management.",notes:["A valid Kubernetes StorageClass is required because Oobeya uses persistent volumes.","A namespace such as oobeya should be created for the deployment.","Registry credentials from the Oobeya team are required to create the image pull secret for oobeya.azurecr.io.","The Helm guide uses an IngressRoute object by default and provides route configuration for ingress providers.","Supported external NoSQL database options include MongoDB Atlas, Azure Cosmos DB, AWS DocumentDB, GCP Firestore, and custom MongoDB Server deployments."],rows:[{area:"Target use",minimum:"Test namespace or non-production cluster",recommended:"Production namespace in a managed Kubernetes cluster",ultra:"Production cluster with dedicated capacity and HA-oriented operations"},{area:"Cluster capacity for Oobeya",minimum:"8 vCPU / 16 GB RAM schedulable capacity",recommended:"8 vCPU / 32 GB RAM schedulable capacity",ultra:"16+ vCPU / 64 GB RAM schedulable capacity"},{area:"Persistent storage",minimum:"100 Gi StorageClass-backed PVC capacity",recommended:"250 Gi expandable StorageClass-backed PVC capacity",ultra:"500 Gi+ expandable SSD-backed storage with snapshot support"},{area:"Kubernetes tools",minimum:"kubectl and Helm 3 access",recommended:"kubectl, Helm 3, namespace-scoped deployment permissions",ultra:"GitOps or release management workflow with Helm values review"},{area:"Ingress",minimum:"IngressRoute or compatible ingress provider",recommended:"Ingress controller with TLS and DNS configured",ultra:"TLS policy, WAF or gateway integration, monitored ingress path"},{area:"Registry access",minimum:"Image pull secret for oobeya.azurecr.io",recommended:"Namespace-scoped image pull secret and registry allowlisting",ultra:"Private registry proxy or controlled egress policy where required"},{area:"Operations",minimum:"Manual helm install / upgrade",recommended:"Documented upgrade, backup, and rollback process",ultra:"Automated release workflow, observability, alerting, and restore drills"}]},{id:"kubernetes-manifests",title:"Kubernetes Manifests",docUrl:"https://docs.oobeya.io/installations/oobeya-installation-tutorial-kubernetes",description:"For Kubernetes environments where teams prefer direct manifest-based deployment and manage release changes through versioned YAML.",notes:["A valid StorageClass is required because Oobeya uses PVCs for persistent services.","The Kubernetes guide defines PVCs in oobeya-mongo.yml and oobeya-rabbitmq.yml.","Oobeya uses an Ingress object by default; Traefik users can use the provided Traefik route file.","Supported external NoSQL database options include MongoDB Atlas, Azure Cosmos DB, AWS DocumentDB, GCP Firestore, and custom MongoDB Server deployments."],rows:[{area:"Target use",minimum:"Test cluster or sandbox namespace",recommended:"Production namespace in shared Kubernetes cluster",ultra:"Production cluster with dedicated capacity and stricter change control"},{area:"Cluster capacity for Oobeya",minimum:"8 vCPU / 16 GB RAM schedulable capacity",recommended:"8 vCPU / 32 GB RAM schedulable capacity",ultra:"16+ vCPU / 64 GB RAM schedulable capacity"},{area:"Persistent storage",minimum:"100 Gi StorageClass-backed PVC capacity",recommended:"250 Gi expandable PVC capacity",ultra:"500 Gi+ SSD-backed PVC capacity with snapshot support"},{area:"Kubernetes access",minimum:"kubectl access to create namespace, secret, PVCs, services, and ingress",recommended:"Namespace-scoped deployment permissions with review workflow",ultra:"GitOps, policy checks, and audited deployment workflow"},{area:"Ingress",minimum:"Ingress or Traefik route configuration",recommended:"DNS name, TLS, ingress controller, and firewall rules",ultra:"Gateway/WAF integration, TLS policy, and monitored ingress path"},{area:"Registry access",minimum:"Kubernetes docker-registry secret for oobeya.azurecr.io",recommended:"Namespace-scoped image pull secret and egress allowlisting",ultra:"Controlled registry mirroring or private egress controls"},{area:"Operations",minimum:"Manual kubectl apply",recommended:"Versioned manifests, backup, rollback, and upgrade checklist",ultra:"Automated deploy pipeline with observability and tested disaster recovery"}]},{id:"openshift",title:"Red Hat OpenShift",docUrl:"https://docs.oobeya.io/installations/oobeya-installation-tutorial-openshift",description:"For OpenShift-based enterprise Kubernetes environments that require project-level controls, routes, service accounts, and security policies.",notes:["A StorageClass is required.","The OpenShift guide uses oc commands, an oobeya namespace/project, and an image pull secret for oobeya.azurecr.io.","The oobeya-ui service and its init containers require a dedicated Service Account with the necessary OpenShift security permissions.","OpenShift route/DNS configuration is required to expose the application interface.","Supported external NoSQL database options include MongoDB Atlas, Azure Cosmos DB, AWS DocumentDB, GCP Firestore, and custom MongoDB Server deployments."],rows:[{area:"Target use",minimum:"OpenShift test project",recommended:"Production OpenShift project with platform team ownership",ultra:"Production OpenShift with dedicated capacity, str
1icter policies, and HA operations"},{area:"Cluster capacity for Oobeya",minimum:"8 vCPU / 16 GB RAM schedulable capacity",recommended:"8 vCPU / 32 GB RAM schedulable capacity",ultra:"16+ vCPU / 64 GB RAM schedulable capacity"},{area:"Persistent storage",minimum:"100 Gi StorageClass-backed PVC capacity",recommended:"250 Gi expandable PVC capacity",ultra:"500 Gi+ SSD-backed storage with snapshot and backup integration"},{area:"OpenShift access",minimum:"oc access to create project, secrets, PVCs, services, routes, and required service account",recommended:"Project-scoped admin workflow with approved Service Account permissions",ultra:"Policy-managed deployment, audited permissions, and security review workflow"},{area:"Route and DNS",minimum:"OpenShift route and DNS/IP access",recommended:"Route with TLS and enterprise DNS",ultra:"TLS policy, gateway/WAF integration, monitored route health"},{area:"Registry access",minimum:"oc docker-registry secret for oobeya.azurecr.io",recommended:"Project-scoped pull secret and registry allowlisting",ultra:"Registry mirror or controlled egress where required"},{area:"Operations",minimum:"Manual oc apply or Helm install",recommended:"Documented upgrade, backup, restore, and rollback process",ultra:"Automated release workflow with monitoring, backup validation, and DR drills"}]}],b=P(u[0]?.id??""),v=P("dev-100"),y=P("repo-250"),o=C(()=>u.find(l=>l.id===b.value)??u[0]),s=C(()=>p.find(l=>l.id===v.value)??p[0]),c=C(()=>h.find(l=>l.id===y.value)??h[0]),m=C(()=>Math.max(s.value.weight,c.value.weight)),M=C(()=>x[m.value]??x[1]),H=C(()=>o.value?o.value.rows.map(l=>{if(o.value.id==="docker-vm"){if(l.area==="Compute")return M.value.dockerCompute;if(l.area==="Memory")return M.value.dockerMemory;if(l.area==="Disk")return M.value.dockerDisk}return l.area==="Cluster capacity for Oobeya"?M.value.clusterCapacity:l.area==="Persistent storage"?M.value.persistentStorage:l}):[]),F=["DNS name or stable IP for Oobeya browser access","TLS certificate and HTTPS termination plan for production","Outbound network access to required SCM, issue tracking, CI/CD, code quality, identity, and observability systems","Outbound registry access to Docker Hub and/or oobeya.azurecr.io, or approved internal registry mirroring","Backup and restore procedure for persistent data","Monitoring for host, pod, storage, ingress, and application availability","SSO, identity provider, and access-control plan where enterprise authentication is required","Retention and storage-growth policy aligned with repository volume and integration frequency"];return(l,t)=>{const O=oe,K=N,$=ue;return n(),d(w,null,[e("main",be,[e("section",ge,[e("div",xe,[f(O,{to:"/on-premise",class:"inline-flex items-center gap-2 text-sm font-semibold text-green-700 hover:text-green-800"},{default:G(()=>[...t[4]||(t[4]=[e("span",{"aria-hidden":"true"},"←",-1),e("span",null,"On-Premise",-1)])]),_:1}),e("div",ye,[t[6]||(t[6]=e("div",null,[e("p",{class:"text-xs font-semibold uppercase tracking-[0.16em] text-green-700"}," Technical requirements "),e("h1",{class:"mt-4 text-4xl font-bold leading-[1.16] tracking-tight text-slate-950 md:text-5xl md:leading-[1.12]"}," Oobeya on-premise infrastructure requirements "),e("p",{class:"mt-5 text-base leading-8 text-slate-600 md:text-lg"}," Use these tables as a technical sizing baseline for Oobeya on-premise deployments. Choose the installation model first, then select the capacity tier that matches the environment, usage volume, and operational expectations. ")],-1)),e("div",fe,[e("div",he,[t[5]||(t[5]=T('<div class="absolute left-1/2 top-9 h-16 w-32 -translate-x-1/2 rounded-2xl border border-slate-200 bg-white shadow-sm" data-v-316b421f><div class="mx-5 mt-4 h-2 rounded-full bg-slate-200" data-v-316b421f></div><div class="mx-5 mt-2.5 h-2 rounded-full bg-green-200" data-v-316b421f></div></div><div class="absolute bottom-9 left-10 h-20 w-20 rounded-3xl border border-slate-200 bg-white shadow-sm" data-v-316b421f><div class="mx-auto mt-5 h-10 w-10 rounded-xl bg-slate-900" data-v-316b421f></div></div><div class="absolute bottom-9 right-10 h-20 w-20 rounded-3xl border border-slate-200 bg-white shadow-sm" data-v-316b421f><div class="mx-auto mt-5 h-10 w-10 rounded-xl bg-green-500" data-v-316b421f></div></div>
1<div class="absolute left-1/2 top-[116px] h-[92px] w-px -translate-x-1/2 bg-slate-300" data-v-316b421f></div><div class="absolute bottom-[84px] left-[80px] right-[80px] h-px bg-slate-300" data-v-316b421f></div>',5)),e("div",ve,[f(K,{name:"i-heroicons-cloud-arrow-up-20-solid",class:"h-8 w-8"})])])])])])]),e("section",we,[e("div",ke,[r(o)?(n(),d("article",{key:0,id:r(o).id,class:"overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_18px_42px_-36px_rgba(15,23,42,0.22)]"},[e("div",Ce,[t[7]||(t[7]=e("div",{class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},[e("div",null,[e("p",{class:"text-sm font-semibold uppercase tracking-[0.14em] text-green-700"}," Installation model "),e("h2",{class:"mt-2 text-xl font-bold tracking-tight text-slate-950"}," Choose your deployment path "),e("p",{class:"mt-2 max-w-[620px] text-sm leading-6 text-slate-500"}," Select the installation model that matches your operating environment. The sizing table below updates for the selected model and analysis scope. ")])],-1)),e("div",Pe,[(n(),d(w,null,k(u,a=>e("button",{key:a.id,type:"button",class:B(["relative flex min-h-[132px] cursor-pointer flex-col rounded-2xl border bg-white p-4 text-left transition-all duration-300 ease-out",r(b)===a.id?"scale-[1.015] border-green-300 shadow-[0_16px_36px_-28px_rgba(22,163,74,0.7)] ring-2 ring-green-100":"border-slate-200 hover:-translate-y-0.5 hover:border-green-200 hover:shadow-[0_16px_36px_-32px_rgba(15,23,42,0.28)]"]),onClick:U=>b.value=a.id},[e("span",{class:B(["mb-3 inline-flex h-7 w-7 items-center justify-center rounded-full text-xs font-bold",r(b)===a.id?"bg-green-600 text-white":"bg-slate-100 text-slate-500"])},i(u.findIndex(U=>U.id===a.id)+1),3),e("span",Me,i(a.title),1),e("span",Ge,i(a.description),1),e("span",{class:B(["mt-auto pt-4 text-xs font-semibold",r(b)===a.id?"text-green-700":"text-slate-400"])},i(r(b)===a.id?"Selected model":"View requirements"),3),r(b)===a.id?(n(),d("span",Be)):R("",!0)],10,_e)),64))])]),f(z,{name:"selection-fade",mode:"out-in"},{default:G(()=>[(n(),d("div",{key:r(o).id,class:"px-5 py-5 md:px-6"},[t[12]||(t[12]=e("p",{class:"text-xs font-semibold uppercase tracking-[0.14em] text-slate-500"}," Selected model ",-1)),e("div",De,[e("h2",Ae,i(r(o).title),1)]),e("p",Re,i(r(o).description),1),e("div",Oe,[t[11]||(t[11]=e("p",{class:"text-xs font-semibold uppercase tracking-[0.12em] text-slate-500"}," Notes ",-1)),e("ul",Ue,[(n(!0),d(w,null,k(r(o).notes,a=>(n(),d("li",{key:a,class:"pl-1"},i(a),1))),128))]),e("p",Te,[t[9]||(t[9]=S(" For setup steps, view the ",-1)),f(O,{to:r(o).docUrl,target:"_blank",rel:"noopener noreferrer",external:"",class:"font-semibold text-green-700 underline underline-offset-4 hover:text-green-800"},{default:G(()=>[...t[8]||(t[8]=[S(" installation guide ",-1)])]),_:1},8,["to"]),t[10]||(t[10]=S(". ",-1))])])]))]),_:1}),e("div",qe,[e("div",Ve,[e("div",Le,[e("div",Ie,[t[15]||(t[15]=e("div",null,[e("p",{class:"inline-flex rounded-full bg-white px-3 py-1 text-[11px] font-bold uppercase tracking-[0.14em] text-green-700 ring-1 ring-green-100"}," Choose your scale "),e("h2",{class:"mt-3 text-lg font-bold text-slate-950"}," Select developers and repositories first "),e("p",{class:"mt-1 max-w-[620px] text-sm leading-6 text-slate-600"}," The requirements table updates based on the selected engineering scale. It starts from the minimum footprint by default. ")],-1)),e("div",ze,[e("label",Ne,[t[13]||(t[13]=e("span",{class:"text-[11px] font-bold uppercase tracking-[0.12em] text-green-700"}," Developers ",-1)),A(e("select",{id:"developer-scope","onUpdate:modelValue":t[0]||(t[0]=a=>V(v)?v.value=a:null),"aria-label":"Developer scope",class:"mt-2 w-full cursor-pointer rounded-lg border border-slate-300 bg-white px-3 py-2.5 text-sm font-bold text-slate-950 outline-none transition-all duration-200 hover:border-green-300 focus:border-green-400 focus:ring-4 focus:ring-green-100"},[(n(),d(w,null,k(p,a=>e("option",{key:a.id,value:a.id},i(a.label),9,je)),64))],512),[[q,r(v)]]),e("span",Ee,i(r(s).description),1)]),e("label",He,[t[14]||(t[14]=e("span",{class:"text-[11px] font-bold uppercase tracking-[0.12em] text-green-700"}," Repositories ",-1)),A(e("select",{id:"repository-scope","onUpdate:modelValue":t[1]||(t[1]=a=>V(y)?y.value=a:null),"aria-label":"Repository scope",class:"mt-2 w-full cursor-pointer rounded-lg border border-slate-300 bg-white px-3 py-2.5 text-sm font-bold text-slate-950 outline-none transition-all duration-200 hover:border-green-300 focus:border-green-400 focus:ring-4 focus:ring-green-100"},[(n(),d(w,null,k(h,a=>e("option",{key:a.id,value:a.id},i(a.label),9,Fe)),64))],512),[[q,r(y)]]),e("span",Ke,i(r(c).description),1)])])])]),e("div",$e,[e("table",We,[t[16]||(t[16]=e("thead",null,[e("tr",{class:"border-b border-slate-300 bg-slate-100 text-slate-700"},[e("th",{class:"w-[18%] border-r border-slate-200 px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]"}," Area "),e("th",{class:"w-[27.3%] border-r border-slate-200 px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]"},[S(" Test / Minimum "),e("span",{class:"block pt-1 text-[10px] font-medium normal-case leading-4 tracking-normal text-slate-500 md:text-[11px]"},"Proof-of-concept, validation, and low-volume non-production environments.")]),e("th",{class:"w-[27.3%] border-r border-slate-200 px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]"},[S(" Standard Production "),e("span",{class:"block pt-1 text-[10px] font-medium normal-case leading-4 tracking-normal text-slate-500 md:text-[11px]"},"Default starting point for the best cost and performance balance.")]),e("th",{class:"w-[27.3%] px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]"},[S(" Scale / Performance "),e("span",{class:"block pt-1 text-[10px] font-medium normal-case leading-4 tracking-normal text-slate-500 md:text-[11px]"},"Larger production environments, more integrations, higher analytics volume, or stricter availability expectations.")])])],-1)),f(re,{tag:"tbody",name:"table-row-fade"},{default:G(()=>[(n(!0),d(w,null,k(r(H),a=>(n(),d("tr",{key:`${r(o).id}-${r(v)}-${r(y)}-${a.area}`,class:"border-b border-slate-200 last:border-0"},[e("th",Qe,i(a.area),1),e("td",Ye,i(a.minimum),1),e("td",Je,i(a.recommended),1),e("td",Xe,i(a.ultra),1)]))),128))]),_:1})])]),e("div",Ze,[e("div",et,[t[18]||(t[18]=e("p",{class:"text-sm leading-6 text-amber-950"}," These sizing calculations are intended as directional guidance. Repository size, integration volume, analytics load, and retention expectations can increase resource requirements. We recommend starting with the suggested configuration and scaling resources as needed. For detailed sizing, contact the Oobeya team. ",-1)),e("div",tt,[t[17]||(t[17]=e("p",{class:"text-sm font-semibold text-amber-950"}," Need help validating your environment? ",-1)),e("button",{type:"button",class:"inline-flex w-fit cursor-pointer items-center justify-center rounded-full border border-amber-300 bg-white px-4 py-2 text-sm font-semibold text-amber-950 transition-colors hover:border-green-300 hover:bg-green-50 hover:text-green-800",onClick:t[2]||(t[2]=(...a)=>r(g)&&r(g)(...a))}," Ask Oobeya Support ")])])])])])],8,Se)):R("",!0)])]),e("section",at,[e("div",rt,[e
1("div",null,[t[19]||(t[19]=e("p",{class:"text-xs font-semibold uppercase tracking-[0.14em] text-green-700"}," Platform checklist ",-1)),t[20]||(t[20]=e("h2",{class:"mt-3 text-2xl font-bold leading-[1.28] tracking-tight text-slate-950 md:text-3xl md:leading-[1.24]"}," Requirements to confirm before installation ",-1)),t[21]||(t[21]=e("p",{class:"mt-4 text-sm leading-7 text-slate-600"}," These items apply across Docker, Kubernetes, Helm, and OpenShift-oriented deployments. ",-1)),e("button",{type:"button",class:"mt-5 inline-flex w-fit cursor-pointer items-center justify-center rounded-full border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800 transition-colors hover:border-green-300 hover:bg-green-50 hover:text-green-800",onClick:t[3]||(t[3]=(...a)=>r(g)&&r(g)(...a))}," Ask Oobeya Support ")]),e("ul",ot,[(n(),d(w,null,k(F,a=>e("li",{key:a,class:"flex gap-3 rounded-xl px-3 py-3 text-sm leading-6 text-slate-700"},[t[22]||(t[22]=e("span",{class:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-xs font-bold text-green-700"}," ✓ ",-1)),e("span",null,i(a),1)])),64))])])]),t[23]||(t[23]=T('<section class="border-t border-slate-200 bg-slate-50 px-4 py-12 lg:px-0" data-v-316b421f><div class="mx-auto max-w-[1120px]" data-v-316b421f><div class="overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-[0_18px_42px_-36px_rgba(15,23,42,0.22)]" data-v-316b421f><div class="border-b border-slate-200 bg-slate-50/90 px-5 py-5 md:px-6" data-v-316b421f><p class="text-xs font-semibold uppercase tracking-[0.14em] text-green-700" data-v-316b421f> Optional component </p><div class="mt-2 flex flex-col gap-2 md:flex-row md:items-start md:justify-between" data-v-316b421f><h2 class="text-2xl font-bold tracking-tight text-slate-950" data-v-316b421f> Oobeya AI LLM Server </h2><p class="max-w-[560px] text-sm leading-6 text-slate-600" data-v-316b421f> Optional on-premise server capacity for Oobeya AI / LLM workloads. Requirements can vary by model choice, usage volume, concurrency, and deployment approach. </p></div></div><div class="overflow-hidden" data-v-316b421f><table class="w-full table-fixed border-collapse text-left text-[11px] sm:text-xs md:text-sm" data-v-316b421f><thead data-v-316b421f><tr class="border-b border-slate-300 bg-slate-100 text-slate-700" data-v-316b421f><th class="w-[38%] border-r border-slate-200 px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]" data-v-316b421f> Area </th><th class="w-[62%] px-2 py-3 text-sm font-bold uppercase tracking-[0.06em] sm:px-3 md:px-5 md:py-4 md:text-base md:tracking-[0.08em]" data-v-316b421f> Optional requirement <span class="block pt-1 text-[10px] font-medium normal-case leading-4 tracking-normal text-slate-500 md:text-[11px]" data-v-316b421f>Dedicated capacity for optional Oobeya AI / LLM workloads.</span></th></tr></thead><tbody data-v-316b421f><tr class="border-b border-slate-100" data-v-316b421f><th class="break-words bg-slate-50/70 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> vCPU </th><td class="break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> 4 </td></tr><tr class="border-b border-slate-100" data-v-316b421f><th class="break-words bg-slate-50/70 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> Cores </th><td class="break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> 2 </td></tr><tr class="border-b border-slate-100" data-v-316b421f><th class="break-words bg-slate-50/70 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> Memory </th><td class="break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> 16 GB </td></tr><tr class="border-b border-slate-100" data-v-316b421f><th class="break-words bg-slate-50/70 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> GPU memory </th><td class="break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> 22.4 GB </td></tr><tr data-v-316b421f><th class="break-words bg-slate-50/70 px-2 py-3 align-top font-semibold leading-5 text-slate-900 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> GPUs </th><td class="break-words px-2 py-3 align-top leading-5 text-slate-700 sm:px-3 md:px-5 md:py-4 md:leading-6" data-v-316b421f> 1 </td></tr></tbody></table></div><div class="border-t border-slate-200 px-5 py-4 md:px-6" data-v-316b421f><p class="text-sm leading-6 text-slate-600" data-v-316b421f> Treat this as directional guidance. LLM Server sizing should be validated with the Oobeya team before production use. </p></div></div></div></section>',1))]),f($)],64)}}}),mt=j(nt,[["__scopeId","data-v-316b421f"]]);export{mt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.