@@ -67,6 +67,55 @@ export interface HomepageTranslations {
6767 } ;
6868 } ;
6969
70+ // Deploy Modes Section
71+ deployModes : {
72+ heading : string ;
73+ subheading : string ;
74+ docker : {
75+ title : string ;
76+ tagline : string ;
77+ description : string ;
78+ href : string ;
79+ cta : string ;
80+ } ;
81+ kubernetes : {
82+ title : string ;
83+ tagline : string ;
84+ description : string ;
85+ href : string ;
86+ cta : string ;
87+ } ;
88+ airGapped : {
89+ title : string ;
90+ tagline : string ;
91+ description : string ;
92+ href : string ;
93+ cta : string ;
94+ } ;
95+ } ;
96+
97+ // Comparison Section
98+ comparison : {
99+ heading : string ;
100+ subheading : string ;
101+ columns : {
102+ criterion : string ;
103+ saas : string ;
104+ objectos : string ;
105+ } ;
106+ rows : Array < { criterion : string ; saas : string ; objectos : string } > ;
107+ } ;
108+
109+ // Bottom CTA
110+ bottomCta : {
111+ heading : string ;
112+ subheading : string ;
113+ primary : string ;
114+ primaryHref : string ;
115+ secondary : string ;
116+ secondaryHref : string ;
117+ } ;
118+
70119 // Personas Section
71120 personas : {
72121 heading : string ;
@@ -163,6 +212,56 @@ export const en: HomepageTranslations = {
163212 action : 'Architecture Overview' ,
164213 } ,
165214 } ,
215+ deployModes : {
216+ heading : 'Three Ways to Run It' ,
217+ subheading : 'Same artifact, same behavior. Pick the shape that matches your infrastructure.' ,
218+ docker : {
219+ title : 'Docker' ,
220+ tagline : 'Single host, single command' ,
221+ description : 'One container against your own database. Ideal for evaluation, internal tools, and small-team deployments.' ,
222+ href : '/docs/deploy/docker' ,
223+ cta : 'Docker guide' ,
224+ } ,
225+ kubernetes : {
226+ title : 'Kubernetes' ,
227+ tagline : 'Production HA' ,
228+ description : 'Deployment + Service + PersistentVolumeClaim, with secrets and config from the mechanisms you already use. Helm chart included.' ,
229+ href : '/docs/deploy/kubernetes' ,
230+ cta : 'Kubernetes guide' ,
231+ } ,
232+ airGapped : {
233+ title : 'Air-Gapped' ,
234+ tagline : 'No internet egress' ,
235+ description : 'Ship a release bundle into a network with no public connectivity. ObjectOS reads its artifact from disk and never calls home.' ,
236+ href : '/docs/deploy/air-gapped' ,
237+ cta : 'Air-gapped guide' ,
238+ } ,
239+ } ,
240+ comparison : {
241+ heading : 'ObjectOS vs. Hosted SaaS' ,
242+ subheading : 'For teams that cannot — or will not — put customer data into someone else’s cloud.' ,
243+ columns : {
244+ criterion : '' ,
245+ saas : 'Hosted SaaS' ,
246+ objectos : 'ObjectOS' ,
247+ } ,
248+ rows : [
249+ { criterion : 'Where data lives' , saas : 'Vendor cloud' , objectos : 'Your infrastructure' } ,
250+ { criterion : 'Network egress required' , saas : 'Always' , objectos : 'Optional / none' } ,
251+ { criterion : 'Identity provider' , saas : 'Vendor-controlled' , objectos : 'Your SSO / OIDC / SAML' } ,
252+ { criterion : 'Audit & backup target' , saas : 'Vendor storage' , objectos : 'Your storage' } ,
253+ { criterion : 'Failure radius' , saas : 'Vendor outage' , objectos : 'Your operations' } ,
254+ { criterion : 'Upgrade cadence' , saas : 'Forced' , objectos : 'You decide' } ,
255+ ] ,
256+ } ,
257+ bottomCta : {
258+ heading : 'Run it where your data already lives.' ,
259+ subheading : 'A single artifact, the same behavior everywhere — from a laptop to an air-gapped data center.' ,
260+ primary : 'Quickstart' ,
261+ primaryHref : '/docs/quickstart' ,
262+ secondary : 'Architecture' ,
263+ secondaryHref : '/docs/architecture' ,
264+ } ,
166265} ;
167266
168267/**
@@ -240,6 +339,56 @@ export const cn: HomepageTranslations = {
240339 action : '架构总览' ,
241340 } ,
242341 } ,
342+ deployModes : {
343+ heading : '三种部署形态' ,
344+ subheading : '同一个发布包,同一种行为。挑一种贴合你基础设施的方式即可。' ,
345+ docker : {
346+ title : 'Docker' ,
347+ tagline : '单机单条命令' ,
348+ description : '一个容器对接你自己的数据库。适合评估、内部工具与小团队部署。' ,
349+ href : '/docs/deploy/docker' ,
350+ cta : 'Docker 指南' ,
351+ } ,
352+ kubernetes : {
353+ title : 'Kubernetes' ,
354+ tagline : '生产级高可用' ,
355+ description : 'Deployment + Service + PersistentVolumeClaim,密钥和配置来自你已经在用的机制。提供 Helm Chart。' ,
356+ href : '/docs/deploy/kubernetes' ,
357+ cta : 'Kubernetes 指南' ,
358+ } ,
359+ airGapped : {
360+ title : '完全离线' ,
361+ tagline : '无公网出口' ,
362+ description : '把发布包送进完全离线的网络。ObjectOS 从本地文件读取工件,不向任何外部服务发起调用。' ,
363+ href : '/docs/deploy/air-gapped' ,
364+ cta : '离线部署指南' ,
365+ } ,
366+ } ,
367+ comparison : {
368+ heading : 'ObjectOS 与托管 SaaS 的对比' ,
369+ subheading : '面向那些不能 —— 或不愿 —— 把客户数据放到别人云上的团队。' ,
370+ columns : {
371+ criterion : '' ,
372+ saas : '托管 SaaS' ,
373+ objectos : 'ObjectOS' ,
374+ } ,
375+ rows : [
376+ { criterion : '数据存放位置' , saas : '厂商云' , objectos : '你的基础设施' } ,
377+ { criterion : '是否需要公网出口' , saas : '始终需要' , objectos : '可选 / 完全不需要' } ,
378+ { criterion : '身份提供方' , saas : '由厂商控制' , objectos : '你的 SSO / OIDC / SAML' } ,
379+ { criterion : '审计与备份目标' , saas : '厂商存储' , objectos : '你自己的存储' } ,
380+ { criterion : '故障影响范围' , saas : '厂商宕机' , objectos : '你自己的运维' } ,
381+ { criterion : '升级节奏' , saas : '强制升级' , objectos : '由你决定' } ,
382+ ] ,
383+ } ,
384+ bottomCta : {
385+ heading : '让应用跑在你数据已经在的地方。' ,
386+ subheading : '一份发布包,在笔记本和完全离线的数据中心里表现一致。' ,
387+ primary : '快速开始' ,
388+ primaryHref : '/docs/quickstart' ,
389+ secondary : '架构总览' ,
390+ secondaryHref : '/docs/architecture' ,
391+ } ,
243392} ;
244393
245394/**
0 commit comments