openship 0.1.1 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +5786 -0
  3. package/dist/server/index.js +324319 -0
  4. package/dist/server/migrations/0000_init.sql +666 -0
  5. package/dist/server/migrations/0001_brief_tomorrow_man.sql +47 -0
  6. package/dist/server/migrations/0002_funny_dazzler.sql +2 -0
  7. package/dist/server/migrations/0003_third_killer_shrike.sql +1 -0
  8. package/dist/server/migrations/0004_session_active_org_not_null.sql +10 -0
  9. package/dist/server/migrations/0005_warm_amazoness.sql +3 -0
  10. package/dist/server/migrations/0006_lumpy_joystick.sql +1 -0
  11. package/dist/server/migrations/0007_outgoing_maginty.sql +2 -0
  12. package/dist/server/migrations/0008_frozen_cutover.sql +3 -0
  13. package/dist/server/migrations/0009_credits_billing.sql +142 -0
  14. package/dist/server/migrations/0010_credit_grant_dedupe.sql +14 -0
  15. package/dist/server/migrations/0011_remove_credit_ledger.sql +23 -0
  16. package/dist/server/migrations/0012_smart_deploys_and_git_rollback.sql +81 -0
  17. package/dist/server/migrations/0013_fix_check_run_rollup_unique.sql +38 -0
  18. package/dist/server/migrations/0014_default_rollback_git.sql +9 -0
  19. package/dist/server/migrations/0015_billing_idempotency_grants.sql +41 -0
  20. package/dist/server/migrations/0016_github_auth_high_findings.sql +30 -0
  21. package/dist/server/migrations/0017_spooky_rumiko_fujikawa.sql +6 -0
  22. package/dist/server/migrations/0018_calm_shatterstar.sql +1 -0
  23. package/dist/server/migrations/0019_rename_workspace_install_to_prepare.sql +1 -0
  24. package/dist/server/migrations/0020_uneven_the_renegades.sql +13 -0
  25. package/dist/server/migrations/0021_shiny_firestar.sql +2 -0
  26. package/dist/server/migrations/0022_version_on_success_backfill.sql +6 -0
  27. package/dist/server/migrations/0023_productive_gorilla_man.sql +17 -0
  28. package/dist/server/migrations/0024_sleepy_peter_quill.sql +2 -0
  29. package/dist/server/migrations/0025_smooth_blue_shield.sql +1 -0
  30. package/dist/server/migrations/0026_mail_backup_source.sql +11 -0
  31. package/dist/server/migrations/0027_opposite_anthem.sql +6 -0
  32. package/dist/server/migrations/0028_stale_rogue.sql +18 -0
  33. package/dist/server/migrations/0029_bouncy_loners.sql +16 -0
  34. package/dist/server/migrations/0030_bright_darkstar.sql +6 -0
  35. package/dist/server/migrations/0031_conscious_catseye.sql +13 -0
  36. package/dist/server/migrations/0032_wet_mimic.sql +51 -0
  37. package/dist/server/migrations/0033_eminent_molly_hayes.sql +2 -0
  38. package/dist/server/migrations/meta/0000_snapshot.json +5110 -0
  39. package/dist/server/migrations/meta/0001_snapshot.json +5257 -0
  40. package/dist/server/migrations/meta/0002_snapshot.json +5279 -0
  41. package/dist/server/migrations/meta/0003_snapshot.json +5286 -0
  42. package/dist/server/migrations/meta/0004_snapshot.json +5286 -0
  43. package/dist/server/migrations/meta/0005_snapshot.json +5305 -0
  44. package/dist/server/migrations/meta/0006_snapshot.json +5311 -0
  45. package/dist/server/migrations/meta/0007_snapshot.json +5323 -0
  46. package/dist/server/migrations/meta/0016_snapshot.json +6345 -0
  47. package/dist/server/migrations/meta/0017_snapshot.json +6383 -0
  48. package/dist/server/migrations/meta/0018_snapshot.json +6390 -0
  49. package/dist/server/migrations/meta/0019_snapshot.json +6390 -0
  50. package/dist/server/migrations/meta/0020_snapshot.json +6497 -0
  51. package/dist/server/migrations/meta/0021_snapshot.json +6509 -0
  52. package/dist/server/migrations/meta/0022_snapshot.json +6509 -0
  53. package/dist/server/migrations/meta/0023_snapshot.json +6629 -0
  54. package/dist/server/migrations/meta/0024_snapshot.json +6641 -0
  55. package/dist/server/migrations/meta/0025_snapshot.json +6648 -0
  56. package/dist/server/migrations/meta/0026_snapshot.json +6750 -0
  57. package/dist/server/migrations/meta/0027_snapshot.json +6757 -0
  58. package/dist/server/migrations/meta/0028_snapshot.json +6895 -0
  59. package/dist/server/migrations/meta/0029_snapshot.json +7028 -0
  60. package/dist/server/migrations/meta/0030_snapshot.json +7066 -0
  61. package/dist/server/migrations/meta/0031_snapshot.json +7181 -0
  62. package/dist/server/migrations/meta/0032_snapshot.json +7570 -0
  63. package/dist/server/migrations/meta/0033_snapshot.json +7597 -0
  64. package/dist/server/migrations/meta/_journal.json +244 -0
  65. package/dist/server/pglite/pglite.data +0 -0
  66. package/dist/server/pglite/pglite.wasm +0 -0
  67. package/package.json +31 -33
  68. package/.env.example +0 -38
  69. package/.nvmrc +0 -1
  70. package/.prettierrc +0 -7
  71. package/CONTRIBUTING.md +0 -90
  72. package/LICENSE +0 -661
  73. package/README.md +0 -360
  74. package/apps/api/.env.example +0 -30
  75. package/apps/api/Dockerfile +0 -22
  76. package/apps/api/package.json +0 -41
  77. package/apps/api/src/app.ts +0 -69
  78. package/apps/api/src/config/env.ts +0 -113
  79. package/apps/api/src/config/index.ts +0 -1
  80. package/apps/api/src/index.ts +0 -8
  81. package/apps/api/src/lib/auth-mode.ts +0 -42
  82. package/apps/api/src/lib/auth.ts +0 -105
  83. package/apps/api/src/lib/cache.ts +0 -128
  84. package/apps/api/src/lib/cloud-auth-proxy.ts +0 -310
  85. package/apps/api/src/lib/cloud-client.ts +0 -103
  86. package/apps/api/src/lib/compose-parser.ts +0 -138
  87. package/apps/api/src/lib/controller-helpers.ts +0 -90
  88. package/apps/api/src/lib/email-templates.ts +0 -94
  89. package/apps/api/src/lib/encryption.ts +0 -102
  90. package/apps/api/src/lib/local-user.ts +0 -65
  91. package/apps/api/src/lib/mail.ts +0 -48
  92. package/apps/api/src/lib/notifications.ts +0 -195
  93. package/apps/api/src/lib/openship-cloud.ts +0 -101
  94. package/apps/api/src/lib/resources.ts +0 -96
  95. package/apps/api/src/lib/screenshots.ts +0 -189
  96. package/apps/api/src/lib/ssh-manager.ts +0 -369
  97. package/apps/api/src/lib/ssl-scheduler.ts +0 -109
  98. package/apps/api/src/lib/stack-detector.ts +0 -708
  99. package/apps/api/src/lib/system-debug.ts +0 -10
  100. package/apps/api/src/middleware/auth.ts +0 -60
  101. package/apps/api/src/middleware/error-handler.ts +0 -41
  102. package/apps/api/src/middleware/index.ts +0 -5
  103. package/apps/api/src/middleware/internal-auth.ts +0 -40
  104. package/apps/api/src/middleware/local-only.ts +0 -20
  105. package/apps/api/src/middleware/rate-limiter.ts +0 -35
  106. package/apps/api/src/modules/analytics/analytics.controller.ts +0 -111
  107. package/apps/api/src/modules/analytics/analytics.routes.ts +0 -29
  108. package/apps/api/src/modules/analytics/analytics.schema.ts +0 -37
  109. package/apps/api/src/modules/analytics/analytics.service.ts +0 -264
  110. package/apps/api/src/modules/auth/auth.routes.ts +0 -237
  111. package/apps/api/src/modules/billing/billing.controller.ts +0 -60
  112. package/apps/api/src/modules/billing/billing.routes.ts +0 -34
  113. package/apps/api/src/modules/billing/billing.schema.ts +0 -9
  114. package/apps/api/src/modules/billing/billing.service.ts +0 -33
  115. package/apps/api/src/modules/cloud/cloud.controller.ts +0 -225
  116. package/apps/api/src/modules/cloud/cloud.routes.ts +0 -40
  117. package/apps/api/src/modules/deployments/build.service.ts +0 -791
  118. package/apps/api/src/modules/deployments/deployment-lifecycle.ts +0 -138
  119. package/apps/api/src/modules/deployments/deployment.controller.ts +0 -343
  120. package/apps/api/src/modules/deployments/deployment.routes.ts +0 -37
  121. package/apps/api/src/modules/deployments/deployment.schema.ts +0 -39
  122. package/apps/api/src/modules/deployments/deployment.service.ts +0 -190
  123. package/apps/api/src/modules/deployments/preflight.ts +0 -280
  124. package/apps/api/src/modules/deployments/prepare.service.ts +0 -252
  125. package/apps/api/src/modules/deployments/session-manager.ts +0 -283
  126. package/apps/api/src/modules/deployments/ssl.service.ts +0 -73
  127. package/apps/api/src/modules/domains/domain.controller.ts +0 -73
  128. package/apps/api/src/modules/domains/domain.routes.ts +0 -24
  129. package/apps/api/src/modules/domains/domain.schema.ts +0 -35
  130. package/apps/api/src/modules/domains/domain.service.ts +0 -385
  131. package/apps/api/src/modules/github/github.auth.ts +0 -397
  132. package/apps/api/src/modules/github/github.controller.ts +0 -387
  133. package/apps/api/src/modules/github/github.local-auth.ts +0 -251
  134. package/apps/api/src/modules/github/github.routes.ts +0 -50
  135. package/apps/api/src/modules/github/github.schema.ts +0 -52
  136. package/apps/api/src/modules/github/github.service.ts +0 -592
  137. package/apps/api/src/modules/github/github.types.ts +0 -158
  138. package/apps/api/src/modules/github/github.webhook.ts +0 -186
  139. package/apps/api/src/modules/github/index.ts +0 -16
  140. package/apps/api/src/modules/health/health.routes.ts +0 -45
  141. package/apps/api/src/modules/projects/project.controller.ts +0 -498
  142. package/apps/api/src/modules/projects/project.routes.ts +0 -67
  143. package/apps/api/src/modules/projects/project.schema.ts +0 -107
  144. package/apps/api/src/modules/projects/project.service.ts +0 -514
  145. package/apps/api/src/modules/settings/settings.controller.ts +0 -55
  146. package/apps/api/src/modules/settings/settings.routes.ts +0 -25
  147. package/apps/api/src/modules/settings/settings.service.ts +0 -49
  148. package/apps/api/src/modules/system/filesystem.controller.ts +0 -66
  149. package/apps/api/src/modules/system/index.ts +0 -1
  150. package/apps/api/src/modules/system/server-check.controller.ts +0 -475
  151. package/apps/api/src/modules/system/setup-session.ts +0 -255
  152. package/apps/api/src/modules/system/setup.controller.ts +0 -128
  153. package/apps/api/src/modules/system/system.routes.ts +0 -42
  154. package/apps/api/src/modules/webhooks/webhook.controller.ts +0 -64
  155. package/apps/api/src/modules/webhooks/webhook.routes.ts +0 -15
  156. package/apps/api/src/modules/webhooks/webhook.service.ts +0 -52
  157. package/apps/api/src/modules/webhooks/webhook.types.ts +0 -35
  158. package/apps/api/tsconfig.json +0 -14
  159. package/apps/cli/package.json +0 -26
  160. package/apps/cli/src/commands/deploy.ts +0 -11
  161. package/apps/cli/src/commands/init.ts +0 -8
  162. package/apps/cli/src/commands/login.ts +0 -8
  163. package/apps/cli/src/commands/logs.ts +0 -9
  164. package/apps/cli/src/index.ts +0 -21
  165. package/apps/cli/src/lib/api-client.ts +0 -35
  166. package/apps/cli/tsconfig.json +0 -13
  167. package/apps/dashboard/Dockerfile +0 -22
  168. package/apps/dashboard/components.json +0 -20
  169. package/apps/dashboard/next-env.d.ts +0 -6
  170. package/apps/dashboard/next.config.mjs +0 -16
  171. package/apps/dashboard/package.json +0 -40
  172. package/apps/dashboard/postcss.config.mjs +0 -5
  173. package/apps/dashboard/public/android-chrome-192x192.png +0 -0
  174. package/apps/dashboard/public/android-chrome-512x512.png +0 -0
  175. package/apps/dashboard/public/apple-touch-icon.png +0 -0
  176. package/apps/dashboard/public/favicon-16x16.png +0 -0
  177. package/apps/dashboard/public/favicon-32x32.png +0 -0
  178. package/apps/dashboard/public/favicon.ico +0 -0
  179. package/apps/dashboard/public/site.webmanifest +0 -19
  180. package/apps/dashboard/src/app/(auth)/forgot-password/page.tsx +0 -114
  181. package/apps/dashboard/src/app/(auth)/layout.tsx +0 -21
  182. package/apps/dashboard/src/app/(auth)/login/page.tsx +0 -220
  183. package/apps/dashboard/src/app/(auth)/providers.tsx +0 -34
  184. package/apps/dashboard/src/app/(auth)/register/page.tsx +0 -176
  185. package/apps/dashboard/src/app/(auth)/reset-password/page.tsx +0 -172
  186. package/apps/dashboard/src/app/(auth)/verify-email/page.tsx +0 -190
  187. package/apps/dashboard/src/app/(dashboard)/(deployment)/build/[id]/page.tsx +0 -162
  188. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/BuildSummary.tsx +0 -166
  189. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DnsConfiguration.tsx +0 -119
  190. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/DomainSettings.tsx +0 -291
  191. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Header.tsx +0 -71
  192. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/Sidebar.tsx +0 -270
  193. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/components/SkeletonLoader.tsx +0 -87
  194. package/apps/dashboard/src/app/(dashboard)/(deployment)/deploy/[slug]/page.tsx +0 -169
  195. package/apps/dashboard/src/app/(dashboard)/(deployment)/layout.tsx +0 -7
  196. package/apps/dashboard/src/app/(dashboard)/billing/page.tsx +0 -3
  197. package/apps/dashboard/src/app/(dashboard)/deployments/components/CommitDetailsModal.tsx +0 -240
  198. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentCard.tsx +0 -121
  199. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentHeader.tsx +0 -89
  200. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentMenu.tsx +0 -182
  201. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentsContent.tsx +0 -324
  202. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentsFilters.tsx +0 -99
  203. package/apps/dashboard/src/app/(dashboard)/deployments/components/DeploymentsList.tsx +0 -31
  204. package/apps/dashboard/src/app/(dashboard)/deployments/components/EmptyState.tsx +0 -101
  205. package/apps/dashboard/src/app/(dashboard)/deployments/components/LoadingSkeleton.tsx +0 -57
  206. package/apps/dashboard/src/app/(dashboard)/deployments/components/ProjectFilter.tsx +0 -109
  207. package/apps/dashboard/src/app/(dashboard)/deployments/components/index.ts +0 -9
  208. package/apps/dashboard/src/app/(dashboard)/deployments/page.tsx +0 -14
  209. package/apps/dashboard/src/app/(dashboard)/deployments/types.ts +0 -44
  210. package/apps/dashboard/src/app/(dashboard)/deployments/utils.ts +0 -176
  211. package/apps/dashboard/src/app/(dashboard)/domains/page.tsx +0 -3
  212. package/apps/dashboard/src/app/(dashboard)/integrations/page.tsx +0 -321
  213. package/apps/dashboard/src/app/(dashboard)/layout.tsx +0 -27
  214. package/apps/dashboard/src/app/(dashboard)/library/components/ConnectPrompt.tsx +0 -187
  215. package/apps/dashboard/src/app/(dashboard)/library/components/LibrarySidebar.tsx +0 -147
  216. package/apps/dashboard/src/app/(dashboard)/library/components/LoadingSkeleton.tsx +0 -39
  217. package/apps/dashboard/src/app/(dashboard)/library/components/LocalProjects.tsx +0 -548
  218. package/apps/dashboard/src/app/(dashboard)/library/components/RepositoryList.tsx +0 -292
  219. package/apps/dashboard/src/app/(dashboard)/library/components/TemplateGrid.tsx +0 -36
  220. package/apps/dashboard/src/app/(dashboard)/library/components/UrlImport.tsx +0 -74
  221. package/apps/dashboard/src/app/(dashboard)/library/page.tsx +0 -121
  222. package/apps/dashboard/src/app/(dashboard)/library/types.ts +0 -26
  223. package/apps/dashboard/src/app/(dashboard)/monitoring/page.tsx +0 -3
  224. package/apps/dashboard/src/app/(dashboard)/page.tsx +0 -485
  225. package/apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/layout.tsx +0 -22
  226. package/apps/dashboard/src/app/(dashboard)/projects/[id]/[[...slug]]/page.tsx +0 -286
  227. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/AdvancedSettings.tsx +0 -235
  228. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/BuildSettings.tsx +0 -174
  229. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/DeleteConfirmationDialog.tsx +0 -45
  230. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/DeletionModal.tsx +0 -95
  231. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/Deployments.tsx +0 -11
  232. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/DomainSettings.tsx +0 -523
  233. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/EnvironmentSettings.tsx +0 -246
  234. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/GeneralSettings.tsx +0 -93
  235. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitInfo.tsx +0 -261
  236. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/GitSettings.tsx +0 -391
  237. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/LogsSettings.tsx +0 -133
  238. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/ProjectNotFound.tsx +0 -95
  239. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/ProjectsBottomNavigation.tsx +0 -62
  240. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/ResourceSettings.tsx +0 -333
  241. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/SettingSection.tsx +0 -66
  242. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/SettingsNavigation.tsx +0 -27
  243. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/SleepModeSettings.tsx +0 -134
  244. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/ProductionUrl.tsx +0 -25
  245. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/ProjectIdentity.tsx +0 -159
  246. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/ProjectInfo.tsx +0 -58
  247. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/SkeletonLoader.tsx +0 -170
  248. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/StatsCards.tsx +0 -33
  249. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TopPaths.tsx +0 -56
  250. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/TrafficChart.tsx +0 -157
  251. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/general/index.ts +0 -14
  252. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/LogsActions.tsx +0 -52
  253. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/ServerLogs.tsx +0 -249
  254. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/TerminalLogs.tsx +0 -682
  255. package/apps/dashboard/src/app/(dashboard)/projects/[id]/components/logs/logs.css +0 -127
  256. package/apps/dashboard/src/app/(dashboard)/projects/components/DeploymentCard.tsx +0 -73
  257. package/apps/dashboard/src/app/(dashboard)/projects/components/ProjectCard.tsx +0 -330
  258. package/apps/dashboard/src/app/(dashboard)/projects/page.tsx +0 -330
  259. package/apps/dashboard/src/app/(dashboard)/providers.tsx +0 -23
  260. package/apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/components-tab.tsx +0 -329
  261. package/apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/overview-tab.tsx +0 -229
  262. package/apps/dashboard/src/app/(dashboard)/servers/[serverId]/_components/terminal-tab.tsx +0 -38
  263. package/apps/dashboard/src/app/(dashboard)/servers/[serverId]/page.tsx +0 -437
  264. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/checking-state.tsx +0 -15
  265. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/choose-mode.tsx +0 -54
  266. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/component-row.tsx +0 -65
  267. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/error-banner.tsx +0 -13
  268. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/installing-panel.tsx +0 -227
  269. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/results-panel.tsx +0 -90
  270. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/setup-header.tsx +0 -56
  271. package/apps/dashboard/src/app/(dashboard)/servers/new/_components/types.ts +0 -13
  272. package/apps/dashboard/src/app/(dashboard)/servers/new/page.tsx +0 -666
  273. package/apps/dashboard/src/app/(dashboard)/servers/page.tsx +0 -283
  274. package/apps/dashboard/src/app/(dashboard)/settings/_components/BuildPreferences.tsx +0 -110
  275. package/apps/dashboard/src/app/(dashboard)/settings/_components/CloudConnection.tsx +0 -147
  276. package/apps/dashboard/src/app/(dashboard)/settings/_components/InstanceInfo.tsx +0 -54
  277. package/apps/dashboard/src/app/(dashboard)/settings/_components/ServerConnection.tsx +0 -407
  278. package/apps/dashboard/src/app/(dashboard)/settings/_components/SettingsSection.tsx +0 -32
  279. package/apps/dashboard/src/app/(dashboard)/settings/page.tsx +0 -67
  280. package/apps/dashboard/src/app/auth/callback/close/page.tsx +0 -23
  281. package/apps/dashboard/src/app/auth/callback/install/page.tsx +0 -40
  282. package/apps/dashboard/src/app/authorize/page.tsx +0 -137
  283. package/apps/dashboard/src/app/globals.css +0 -57
  284. package/apps/dashboard/src/app/layout.tsx +0 -55
  285. package/apps/dashboard/src/components/auth-shell.tsx +0 -66
  286. package/apps/dashboard/src/components/deployments/types.ts +0 -44
  287. package/apps/dashboard/src/components/global-deployments/index.ts +0 -17
  288. package/apps/dashboard/src/components/i18n-provider.tsx +0 -100
  289. package/apps/dashboard/src/components/import-project/BuildSettings.tsx +0 -376
  290. package/apps/dashboard/src/components/import-project/BuildSkeleton.tsx +0 -161
  291. package/apps/dashboard/src/components/import-project/BuildTerminal.tsx +0 -358
  292. package/apps/dashboard/src/components/import-project/ComposeServices.tsx +0 -455
  293. package/apps/dashboard/src/components/import-project/DeploymentProcessing.tsx +0 -510
  294. package/apps/dashboard/src/components/import-project/DockerSettings.tsx +0 -64
  295. package/apps/dashboard/src/components/import-project/EnvironmentVariables.tsx +0 -481
  296. package/apps/dashboard/src/components/import-project/Frameworks.tsx +0 -90
  297. package/apps/dashboard/src/components/import-project/ProjectSettings.tsx +0 -160
  298. package/apps/dashboard/src/components/import-project/types.ts +0 -82
  299. package/apps/dashboard/src/components/integrations/GithubPermissionModal.tsx +0 -173
  300. package/apps/dashboard/src/components/language-switcher.tsx +0 -36
  301. package/apps/dashboard/src/components/logo.tsx +0 -13
  302. package/apps/dashboard/src/components/network-error-handler.tsx +0 -27
  303. package/apps/dashboard/src/components/oauth-buttons.tsx +0 -81
  304. package/apps/dashboard/src/components/overview/ActivityChart.tsx +0 -247
  305. package/apps/dashboard/src/components/overview/ApiRequestsCard.tsx +0 -111
  306. package/apps/dashboard/src/components/overview/CreditsCard.tsx +0 -137
  307. package/apps/dashboard/src/components/overview/DeploymentsChart.tsx +0 -195
  308. package/apps/dashboard/src/components/overview/EmptyState.tsx +0 -126
  309. package/apps/dashboard/src/components/overview/LoadingSkeleton.tsx +0 -92
  310. package/apps/dashboard/src/components/overview/OverviewHeader.tsx +0 -74
  311. package/apps/dashboard/src/components/overview/OverviewHeroChart.tsx +0 -344
  312. package/apps/dashboard/src/components/overview/ProjectsCard.tsx +0 -134
  313. package/apps/dashboard/src/components/overview/QuickLinks.tsx +0 -119
  314. package/apps/dashboard/src/components/overview/SandboxesCard.tsx +0 -150
  315. package/apps/dashboard/src/components/overview/StatsGrid.tsx +0 -166
  316. package/apps/dashboard/src/components/overview/TokenUsageChart.tsx +0 -206
  317. package/apps/dashboard/src/components/overview/UsageStats.tsx +0 -79
  318. package/apps/dashboard/src/components/overview/index.ts +0 -30
  319. package/apps/dashboard/src/components/overview/types.ts +0 -116
  320. package/apps/dashboard/src/components/page-header.tsx +0 -25
  321. package/apps/dashboard/src/components/project-settings/ServerSideSwitch.jsx +0 -60
  322. package/apps/dashboard/src/components/shared/AlertBox.tsx +0 -39
  323. package/apps/dashboard/src/components/shared/CTASection.tsx +0 -45
  324. package/apps/dashboard/src/components/shared/ErrorState.tsx +0 -176
  325. package/apps/dashboard/src/components/shared/FeatureCard.tsx +0 -20
  326. package/apps/dashboard/src/components/shared/MDXComponents.tsx +0 -24
  327. package/apps/dashboard/src/components/shared/MachineSettingsModal.tsx +0 -286
  328. package/apps/dashboard/src/components/shared/Modal.tsx +0 -39
  329. package/apps/dashboard/src/components/shared/OTPInput.tsx +0 -122
  330. package/apps/dashboard/src/components/shared/PageHero.tsx +0 -21
  331. package/apps/dashboard/src/components/shared/PlatformFeatureCard.tsx +0 -27
  332. package/apps/dashboard/src/components/shared/StatCard.tsx +0 -14
  333. package/apps/dashboard/src/components/shared/ValueCard.tsx +0 -20
  334. package/apps/dashboard/src/components/shared/index.ts +0 -8
  335. package/apps/dashboard/src/components/sidebar.tsx +0 -282
  336. package/apps/dashboard/src/components/theme-provider.tsx +0 -96
  337. package/apps/dashboard/src/components/toast.tsx +0 -106
  338. package/apps/dashboard/src/components/ui/CustomCursor.tsx +0 -107
  339. package/apps/dashboard/src/components/ui/CustomSelect.tsx +0 -126
  340. package/apps/dashboard/src/components/ui/DropdownMenu.tsx +0 -174
  341. package/apps/dashboard/src/components/ui/FileIcon.jsx +0 -59
  342. package/apps/dashboard/src/components/ui/IconPickerModal.tsx +0 -273
  343. package/apps/dashboard/src/components/ui/InfoBanner.jsx +0 -39
  344. package/apps/dashboard/src/components/ui/Logo.tsx +0 -14
  345. package/apps/dashboard/src/components/ui/Modal.tsx +0 -117
  346. package/apps/dashboard/src/components/ui/PageContainer.tsx +0 -12
  347. package/apps/dashboard/src/components/ui/SectionContainer.jsx +0 -7
  348. package/apps/dashboard/src/components/ui/SlidingToggle.tsx +0 -128
  349. package/apps/dashboard/src/components/ui/Toast.tsx +0 -29
  350. package/apps/dashboard/src/components/ui/button.tsx +0 -58
  351. package/apps/dashboard/src/components/ui/card.tsx +0 -60
  352. package/apps/dashboard/src/components/ui/input.tsx +0 -20
  353. package/apps/dashboard/src/components/ui/label.tsx +0 -19
  354. package/apps/dashboard/src/components/ui/select.tsx +0 -10
  355. package/apps/dashboard/src/components/ui/textarea.tsx +0 -9
  356. package/apps/dashboard/src/constants/lang-colors.ts +0 -25
  357. package/apps/dashboard/src/constants/mock.ts +0 -38
  358. package/apps/dashboard/src/context/AuthContext.tsx +0 -91
  359. package/apps/dashboard/src/context/CloudContext.tsx +0 -275
  360. package/apps/dashboard/src/context/DeploymentContext.tsx +0 -71
  361. package/apps/dashboard/src/context/GitHubContext.tsx +0 -288
  362. package/apps/dashboard/src/context/ModalContext.tsx +0 -300
  363. package/apps/dashboard/src/context/NetworkContext.tsx +0 -32
  364. package/apps/dashboard/src/context/ProjectSettingsContext.tsx +0 -727
  365. package/apps/dashboard/src/context/ToastContext.tsx +0 -129
  366. package/apps/dashboard/src/context/deployment/index.ts +0 -3
  367. package/apps/dashboard/src/context/deployment/types.ts +0 -183
  368. package/apps/dashboard/src/context/deployment/useDeploymentBuild.ts +0 -547
  369. package/apps/dashboard/src/context/deployment/useDeploymentConfig.ts +0 -176
  370. package/apps/dashboard/src/hooks/useBuildConnection.ts +0 -334
  371. package/apps/dashboard/src/hooks/useMonitorStream.ts +0 -146
  372. package/apps/dashboard/src/hooks/useProjectData.ts +0 -110
  373. package/apps/dashboard/src/hooks/useSSEConnection.ts +0 -465
  374. package/apps/dashboard/src/hooks/useSSEStream.ts +0 -309
  375. package/apps/dashboard/src/hooks/useSessions.ts +0 -104
  376. package/apps/dashboard/src/hooks/useSetupStream.ts +0 -223
  377. package/apps/dashboard/src/i18n/dictionaries/ar.json +0 -218
  378. package/apps/dashboard/src/i18n/dictionaries/en.json +0 -218
  379. package/apps/dashboard/src/i18n/index.ts +0 -16
  380. package/apps/dashboard/src/lib/api/ai.ts +0 -22
  381. package/apps/dashboard/src/lib/api/auth.ts +0 -13
  382. package/apps/dashboard/src/lib/api/client.ts +0 -199
  383. package/apps/dashboard/src/lib/api/cloud.ts +0 -15
  384. package/apps/dashboard/src/lib/api/deploy.ts +0 -58
  385. package/apps/dashboard/src/lib/api/domains.ts +0 -13
  386. package/apps/dashboard/src/lib/api/endpoints.ts +0 -129
  387. package/apps/dashboard/src/lib/api/github.ts +0 -31
  388. package/apps/dashboard/src/lib/api/icons.ts +0 -12
  389. package/apps/dashboard/src/lib/api/index.ts +0 -41
  390. package/apps/dashboard/src/lib/api/projects.ts +0 -153
  391. package/apps/dashboard/src/lib/api/sandbox.ts +0 -14
  392. package/apps/dashboard/src/lib/api/settings.ts +0 -21
  393. package/apps/dashboard/src/lib/api/system.ts +0 -159
  394. package/apps/dashboard/src/lib/auth-client.ts +0 -54
  395. package/apps/dashboard/src/lib/country.ts +0 -25
  396. package/apps/dashboard/src/lib/server/api.ts +0 -140
  397. package/apps/dashboard/src/lib/server/session.ts +0 -103
  398. package/apps/dashboard/src/lib/sseClient.ts +0 -241
  399. package/apps/dashboard/src/lib/sseMessageProcessors.ts +0 -323
  400. package/apps/dashboard/src/lib/utils.ts +0 -6
  401. package/apps/dashboard/src/proxy.ts +0 -46
  402. package/apps/dashboard/src/styles/Toast.module.css +0 -92
  403. package/apps/dashboard/src/styles/fonts.css +0 -93
  404. package/apps/dashboard/src/styles/theme.css +0 -336
  405. package/apps/dashboard/src/types/research.ts +0 -42
  406. package/apps/dashboard/src/utils/SSEParser.js +0 -150
  407. package/apps/dashboard/src/utils/authWindow.ts +0 -143
  408. package/apps/dashboard/src/utils/codeTheme.ts +0 -127
  409. package/apps/dashboard/src/utils/colors.json +0 -2810
  410. package/apps/dashboard/src/utils/date.ts +0 -121
  411. package/apps/dashboard/src/utils/deployment.ts +0 -128
  412. package/apps/dashboard/src/utils/deploymentPhaseDetector.ts +0 -232
  413. package/apps/dashboard/src/utils/extToLang.js +0 -103
  414. package/apps/dashboard/src/utils/github.ts +0 -62
  415. package/apps/dashboard/src/utils/icons.js +0 -46
  416. package/apps/dashboard/src/utils/repoSlug.ts +0 -110
  417. package/apps/dashboard/src/utils/research-api.ts +0 -163
  418. package/apps/dashboard/src/utils/suggestions.ts +0 -84
  419. package/apps/dashboard/src/utils/theme.js +0 -1
  420. package/apps/dashboard/src/utils/ui-helpers.tsx +0 -30
  421. package/apps/dashboard/src/utils/upload.js +0 -12
  422. package/apps/dashboard/tsconfig.json +0 -33
  423. package/apps/desktop/forge.config.json +0 -36
  424. package/apps/desktop/package.json +0 -26
  425. package/apps/desktop/scripts/dev.mjs +0 -58
  426. package/apps/desktop/src/main/index.ts +0 -675
  427. package/apps/desktop/src/main/types/desktop.d.ts +0 -33
  428. package/apps/desktop/src/preload/index.ts +0 -88
  429. package/apps/desktop/src/renderer/index.html +0 -462
  430. package/apps/desktop/src/renderer/onboarding.js +0 -511
  431. package/apps/desktop/src/renderer/styles.css +0 -1139
  432. package/apps/desktop/tsconfig.json +0 -17
  433. package/apps/web/.source/browser.ts +0 -13
  434. package/apps/web/.source/dynamic.ts +0 -8
  435. package/apps/web/.source/server.ts +0 -22
  436. package/apps/web/.source/source.config.mjs +0 -20
  437. package/apps/web/Dockerfile +0 -22
  438. package/apps/web/content/blog/how-ai-builds-work.mdx +0 -55
  439. package/apps/web/content/blog/introducing-openship.mdx +0 -46
  440. package/apps/web/content/blog/self-hosting-cost-breakdown.mdx +0 -59
  441. package/apps/web/content/docs/_meta.json +0 -14
  442. package/apps/web/content/docs/api.mdx +0 -98
  443. package/apps/web/content/docs/cli.mdx +0 -80
  444. package/apps/web/content/docs/first-deployment.mdx +0 -56
  445. package/apps/web/content/docs/index.mdx +0 -27
  446. package/apps/web/content/docs/installation.mdx +0 -65
  447. package/apps/web/content/docs/quickstart.mdx +0 -45
  448. package/apps/web/next-env.d.ts +0 -6
  449. package/apps/web/next.config.mjs +0 -20
  450. package/apps/web/package.json +0 -33
  451. package/apps/web/postcss.config.mjs +0 -5
  452. package/apps/web/public/android-chrome-192x192.png +0 -0
  453. package/apps/web/public/android-chrome-512x512.png +0 -0
  454. package/apps/web/public/apple-touch-icon.png +0 -0
  455. package/apps/web/public/favicon-16x16.png +0 -0
  456. package/apps/web/public/favicon-32x32.png +0 -0
  457. package/apps/web/public/favicon.ico +0 -0
  458. package/apps/web/public/site.webmanifest +0 -1
  459. package/apps/web/source.config.ts +0 -17
  460. package/apps/web/src/app/(marketing)/layout.tsx +0 -9
  461. package/apps/web/src/app/(marketing)/page.tsx +0 -2
  462. package/apps/web/src/app/(marketing)/pricing/page.tsx +0 -10
  463. package/apps/web/src/app/blog/[...slug]/page.tsx +0 -247
  464. package/apps/web/src/app/blog/blog.css +0 -575
  465. package/apps/web/src/app/blog/layout.tsx +0 -50
  466. package/apps/web/src/app/blog/page.tsx +0 -235
  467. package/apps/web/src/app/docs/[[...slug]]/page.tsx +0 -67
  468. package/apps/web/src/app/docs/layout.tsx +0 -62
  469. package/apps/web/src/app/docs/toc-theme.css +0 -71
  470. package/apps/web/src/app/download/page.tsx +0 -396
  471. package/apps/web/src/app/globals.css +0 -20
  472. package/apps/web/src/app/layout.tsx +0 -70
  473. package/apps/web/src/app/page.tsx +0 -51
  474. package/apps/web/src/app/robots.ts +0 -15
  475. package/apps/web/src/app/sitemap.ts +0 -35
  476. package/apps/web/src/components/blog/share-sidebar.tsx +0 -81
  477. package/apps/web/src/components/blog/writer-sidebar.tsx +0 -81
  478. package/apps/web/src/components/landing/ai-native.tsx +0 -169
  479. package/apps/web/src/components/landing/backups.tsx +0 -139
  480. package/apps/web/src/components/landing/cdn.tsx +0 -109
  481. package/apps/web/src/components/landing/coming-soon.tsx +0 -180
  482. package/apps/web/src/components/landing/dark-section.tsx +0 -166
  483. package/apps/web/src/components/landing/dashboard.tsx +0 -407
  484. package/apps/web/src/components/landing/developer-experience.tsx +0 -224
  485. package/apps/web/src/components/landing/dns-domains.tsx +0 -146
  486. package/apps/web/src/components/landing/download-button.tsx +0 -151
  487. package/apps/web/src/components/landing/features/ai-visual.tsx +0 -48
  488. package/apps/web/src/components/landing/features/cloud-visual.tsx +0 -44
  489. package/apps/web/src/components/landing/features/git-visual.tsx +0 -61
  490. package/apps/web/src/components/landing/features/index.tsx +0 -642
  491. package/apps/web/src/components/landing/features/infra-visual.tsx +0 -69
  492. package/apps/web/src/components/landing/features/rollback-visual.tsx +0 -42
  493. package/apps/web/src/components/landing/features/ssl-visual.tsx +0 -41
  494. package/apps/web/src/components/landing/features/stacks-visual.tsx +0 -54
  495. package/apps/web/src/components/landing/final-cta.tsx +0 -116
  496. package/apps/web/src/components/landing/footer.tsx +0 -145
  497. package/apps/web/src/components/landing/hero.tsx +0 -110
  498. package/apps/web/src/components/landing/how-it-works.tsx +0 -210
  499. package/apps/web/src/components/landing/index.ts +0 -21
  500. package/apps/web/src/components/landing/mail-server.tsx +0 -122
  501. package/apps/web/src/components/landing/navbar.tsx +0 -199
  502. package/apps/web/src/components/landing/no-lockin.tsx +0 -185
  503. package/apps/web/src/components/landing/open-source-cta.tsx +0 -151
  504. package/apps/web/src/components/landing/portability.tsx +0 -190
  505. package/apps/web/src/components/landing/pricing.tsx +0 -263
  506. package/apps/web/src/components/landing/scaling.tsx +0 -209
  507. package/apps/web/src/components/landing/why-openship.tsx +0 -291
  508. package/apps/web/src/hooks/use-gsap-scroll.ts +0 -158
  509. package/apps/web/src/hooks/use-platform.ts +0 -86
  510. package/apps/web/src/lib/source.ts +0 -12
  511. package/apps/web/src/styles/fonts.css +0 -84
  512. package/apps/web/src/styles/landing.css +0 -951
  513. package/apps/web/src/styles/theme.css +0 -227
  514. package/apps/web/tsconfig.json +0 -16
  515. package/bun.lock +0 -3260
  516. package/docker-compose.yml +0 -90
  517. package/docs/screenshots/.gitkeep +0 -0
  518. package/docs/screenshots/screen.png +0 -0
  519. package/openship.code-workspace +0 -7
  520. package/packages/adapters/docs/ARCHITECTURE.md +0 -160
  521. package/packages/adapters/docs/BUILD-PIPELINE.md +0 -171
  522. package/packages/adapters/docs/CLOUD.md +0 -239
  523. package/packages/adapters/docs/EXECUTOR.md +0 -174
  524. package/packages/adapters/docs/LOG-STREAMING.md +0 -175
  525. package/packages/adapters/docs/SYSTEM.md +0 -191
  526. package/packages/adapters/package.json +0 -32
  527. package/packages/adapters/src/index.ts +0 -144
  528. package/packages/adapters/src/infra/cloud.ts +0 -42
  529. package/packages/adapters/src/infra/index.ts +0 -9
  530. package/packages/adapters/src/infra/noop.ts +0 -27
  531. package/packages/adapters/src/infra/traefik.ts +0 -297
  532. package/packages/adapters/src/infra/types.ts +0 -36
  533. package/packages/adapters/src/platform.ts +0 -255
  534. package/packages/adapters/src/runtime/bare.ts +0 -567
  535. package/packages/adapters/src/runtime/build-pipeline.ts +0 -237
  536. package/packages/adapters/src/runtime/cloud.ts +0 -791
  537. package/packages/adapters/src/runtime/deploy-pipeline.ts +0 -146
  538. package/packages/adapters/src/runtime/docker.ts +0 -443
  539. package/packages/adapters/src/runtime/index.ts +0 -69
  540. package/packages/adapters/src/runtime/local-build.ts +0 -112
  541. package/packages/adapters/src/runtime/transfer.ts +0 -82
  542. package/packages/adapters/src/runtime/types.ts +0 -138
  543. package/packages/adapters/src/system/catalog.ts +0 -188
  544. package/packages/adapters/src/system/checks.ts +0 -228
  545. package/packages/adapters/src/system/components.ts +0 -45
  546. package/packages/adapters/src/system/debug.ts +0 -18
  547. package/packages/adapters/src/system/environment.ts +0 -168
  548. package/packages/adapters/src/system/errors.ts +0 -34
  549. package/packages/adapters/src/system/executor.ts +0 -600
  550. package/packages/adapters/src/system/index.ts +0 -58
  551. package/packages/adapters/src/system/installer.ts +0 -310
  552. package/packages/adapters/src/system/setup.ts +0 -442
  553. package/packages/adapters/src/system/state.ts +0 -96
  554. package/packages/adapters/src/system/types.ts +0 -116
  555. package/packages/adapters/src/toolchain/catalog.ts +0 -439
  556. package/packages/adapters/src/toolchain/checks.ts +0 -181
  557. package/packages/adapters/src/toolchain/index.ts +0 -38
  558. package/packages/adapters/src/toolchain/installer.ts +0 -189
  559. package/packages/adapters/src/toolchain/types.ts +0 -84
  560. package/packages/adapters/src/types.ts +0 -277
  561. package/packages/adapters/tsconfig.json +0 -11
  562. package/packages/core/package.json +0 -27
  563. package/packages/core/src/constants.ts +0 -71
  564. package/packages/core/src/errors.ts +0 -49
  565. package/packages/core/src/index.ts +0 -6
  566. package/packages/core/src/stacks.ts +0 -778
  567. package/packages/core/src/system.ts +0 -111
  568. package/packages/core/src/types.ts +0 -68
  569. package/packages/core/src/utils.ts +0 -43
  570. package/packages/core/tsconfig.json +0 -11
  571. package/packages/db/drizzle/0000_init.sql +0 -231
  572. package/packages/db/drizzle/0001_add_server_name.sql +0 -1
  573. package/packages/db/drizzle/meta/_journal.json +0 -20
  574. package/packages/db/drizzle.config.ts +0 -10
  575. package/packages/db/package.json +0 -44
  576. package/packages/db/src/client.ts +0 -119
  577. package/packages/db/src/index.ts +0 -60
  578. package/packages/db/src/repos/account.repo.ts +0 -92
  579. package/packages/db/src/repos/deployment.repo.ts +0 -168
  580. package/packages/db/src/repos/domain.repo.ts +0 -102
  581. package/packages/db/src/repos/git-installation.repo.ts +0 -95
  582. package/packages/db/src/repos/index.ts +0 -43
  583. package/packages/db/src/repos/instance-settings.repo.ts +0 -43
  584. package/packages/db/src/repos/project.repo.ts +0 -159
  585. package/packages/db/src/repos/session.repo.ts +0 -82
  586. package/packages/db/src/repos/settings.repo.ts +0 -51
  587. package/packages/db/src/repos/user.repo.ts +0 -94
  588. package/packages/db/src/schema/auth.ts +0 -56
  589. package/packages/db/src/schema/deployment.ts +0 -87
  590. package/packages/db/src/schema/domain.ts +0 -46
  591. package/packages/db/src/schema/github.ts +0 -24
  592. package/packages/db/src/schema/index.ts +0 -6
  593. package/packages/db/src/schema/project.ts +0 -117
  594. package/packages/db/src/schema/settings.ts +0 -103
  595. package/packages/db/tsconfig.json +0 -11
  596. package/packages/ui/package.json +0 -38
  597. package/packages/ui/src/components/badge.tsx +0 -29
  598. package/packages/ui/src/components/button.tsx +0 -44
  599. package/packages/ui/src/components/card.tsx +0 -26
  600. package/packages/ui/src/components/status-dot.tsx +0 -25
  601. package/packages/ui/src/globals.css +0 -18
  602. package/packages/ui/src/index.tsx +0 -8
  603. package/packages/ui/src/lib/cn.ts +0 -7
  604. package/packages/ui/tsconfig.json +0 -14
  605. package/pnpm-workspace.yaml +0 -3
  606. package/tsconfig.base.json +0 -18
  607. package/turbo.json +0 -36
package/README.md DELETED
@@ -1,360 +0,0 @@
1
- <h1 align="center">Openship</h1>
2
-
3
- <p align="center">
4
- Deploy anything. Own everything.<br>
5
- Push your code — build, configure, and deploy from one place.<br>
6
- Use our cloud or connect your own servers.
7
- </p>
8
-
9
- <p align="center">
10
- Desktop-first. Open-source. Zero lock-in.
11
- </p>
12
-
13
- <p align="center">
14
- <img src="docs/screenshots/screen.png" alt="Openship" width="800" />
15
- </p>
16
-
17
- ---
18
-
19
- ## What Openship Is
20
-
21
- Openship is a **desktop-first deployment platform with built-in CI/CD and full infrastructure control**.
22
-
23
- It removes the gap between writing code and running it in production.
24
-
25
- No pipelines to maintain.
26
- No YAML to manage.
27
- No platform lock-in.
28
-
29
- ---
30
-
31
- ## The Core Idea
32
-
33
- Most platforms run everything on your server:
34
-
35
- - CI/CD pipelines
36
- - Build systems
37
- - Dashboards
38
- - Databases
39
- - Your apps
40
-
41
- → Your production resources are shared with tooling.
42
-
43
- ---
44
-
45
- ### Openship
46
-
47
- **Your machine**
48
- - Desktop app (UI)
49
- - Build system (local by default)
50
- - Deployment control
51
-
52
- **Your server**
53
- - Production containers only
54
-
55
- → No resource contention
56
- → Predictable performance
57
- → Clean architecture
58
-
59
- ---
60
-
61
- ## Desktop-First Architecture
62
-
63
- Openship is not a hosted dashboard.
64
-
65
- It’s a **local control plane for your infrastructure**.
66
-
67
- - Builds run locally by default
68
- - Deployments are triggered instantly
69
- - Works with any VPS or private network
70
- - No dependency on a remote control layer
71
-
72
- Your server stays minimal:
73
- - No CI runners
74
- - No dashboards
75
- - No management services
76
-
77
- Only your apps.
78
-
79
- ---
80
-
81
- ## Built-in CI/CD (Without the Overhead)
82
-
83
- CI/CD is fully integrated — without pipelines to configure.
84
-
85
- - Deploy on every push
86
- - Preview environments per branch
87
- - Staging and production flows
88
- - Rollbacks built-in
89
-
90
- You can still use:
91
- - CLI workflows
92
- - External CI if needed
93
- - Server-side builds (optional)
94
-
95
- Default: simple, fast, local.
96
-
97
- ---
98
-
99
- ## Deploy Anywhere
100
-
101
- - Openship Cloud (managed)
102
- - Any VPS or bare metal
103
- - Any provider, any region
104
- - Multi-server deployments
105
-
106
- Same app, same flow — everywhere.
107
-
108
- ---
109
-
110
- ## Full Backend Support
111
-
112
- Run complete applications out of the box:
113
-
114
- - Databases (Postgres, MySQL, MongoDB)
115
- - Redis / caching
116
- - Background workers
117
- - WebSockets
118
- - APIs
119
- - Storage
120
-
121
- Provision and manage everything from the app.
122
-
123
- ---
124
-
125
- ## Any Stack
126
-
127
- If it builds, it ships.
128
-
129
- - Node.js, Bun, Deno
130
- - Python, Go, Rust
131
- - PHP, Ruby, Java, .NET
132
- - Docker (full control)
133
- - Monorepos supported
134
-
135
- No lock-in to a runtime.
136
-
137
- ---
138
-
139
- ## Domains & SSL
140
-
141
- - Automatic SSL (Let's Encrypt)
142
- - Wildcard domains
143
- - Unlimited domains
144
- - Auto-renewal
145
-
146
- No manual setup.
147
-
148
- ---
149
-
150
- ## The Desktop App
151
-
152
- Everything in one place:
153
-
154
- - One-click deploys
155
- - Live build logs
156
- - Real-time metrics
157
- - Domain & DNS management
158
- - Database control
159
- - Backups & restore
160
- - Scaling controls
161
-
162
- Replaces:
163
- - CI dashboards
164
- - SSH workflows
165
- - Manual Docker setup
166
-
167
- ---
168
-
169
- ## Developer Interfaces
170
-
171
- ### CLI
172
-
173
- ```bash
174
- openship deploy
175
- openship logs --follow
176
- openship rollback
177
- openship domains
178
- ```
179
-
180
- ---
181
-
182
- ### REST API
183
-
184
- Automate everything:
185
-
186
- - Deployments
187
- - Projects
188
- - Domains
189
- - Logs
190
-
191
- ---
192
-
193
- ### MCP (AI / Agent Control)
194
-
195
- Expose deployment actions to external agents when needed.
196
-
197
- ---
198
-
199
- ## Backups
200
-
201
- - Scheduled backups
202
- - Databases + volumes
203
- - One-click restore
204
- - Export anytime
205
-
206
- ---
207
-
208
- ## Portability
209
-
210
- Move anywhere:
211
-
212
- - Cloud ↔ self-host
213
- - VPS → VPS
214
- - Full export/import
215
-
216
- No proprietary formats:
217
- - Standard Docker containers
218
- - Encrypted transfer via SSH
219
-
220
- ---
221
-
222
- ## Built-in Mail Server
223
-
224
- - Unlimited domains
225
- - Standard email auth (DKIM, SPF, DMARC)
226
- - No external providers required
227
-
228
- ---
229
-
230
- ## Global CDN
231
-
232
- - Edge caching
233
- - Compression (HTTP/3, Brotli)
234
- - Instant cache purge
235
-
236
- Works with any deployment.
237
-
238
- ---
239
-
240
- ## Scaling
241
-
242
- ### Cloud
243
- - Auto-scaling
244
- - Load balancing
245
- - Zero config
246
-
247
- ### Self-hosted
248
- - Upgrade servers anytime
249
- - Move workloads without redeploy
250
- - Multi-node ready
251
-
252
- ---
253
-
254
- ## Architecture Comparison
255
-
256
- ### Traditional Tools
257
-
258
- Server runs:
259
- - CI/CD
260
- - Build system
261
- - Dashboard
262
- - Reverse proxy
263
- - Apps
264
-
265
- → Resource contention
266
- → Complex setup
267
-
268
- ---
269
-
270
- ### Openship
271
-
272
- **Local machine**
273
- - Builds
274
- - Control plane
275
-
276
- **Server**
277
- - Production containers only
278
-
279
- → Maximum efficiency
280
- → Minimal overhead
281
-
282
- ---
283
-
284
- ## Why Openship
285
-
286
- - Desktop-first deployment loop
287
- - Built-in CI/CD without pipeline overhead
288
- - No YAML or infra complexity
289
- - No server-side tooling overhead
290
- - Works on any Linux server
291
- - Fully open-source (AGPL-3)
292
- - No vendor lock-in
293
-
294
- ---
295
-
296
- ## Example Flow
297
-
298
- 1. Connect your repo
299
- 2. Connect a server (or use cloud)
300
- 3. Click deploy
301
-
302
- Under the hood:
303
- - Build runs locally
304
- - Production container is shipped
305
- - App goes live
306
-
307
- ---
308
-
309
- ## Philosophy
310
-
311
- Infrastructure should be:
312
-
313
- - Local-first
314
- - Transparent
315
- - Portable
316
- - Fully owned
317
-
318
- Not hidden behind platforms.
319
- Not tied to pricing models.
320
- Not dependent on proprietary runtimes.
321
-
322
- ---
323
-
324
- ## Open Source
325
-
326
- - AGPL-3 licensed
327
- - Fully self-hostable
328
- - No usage limits
329
- - Community-driven
330
-
331
- ---
332
-
333
- ## Status
334
-
335
- Production-ready core.
336
-
337
- Planned:
338
- - Multi-node clusters
339
- - Load balancing UI
340
- - Private networking
341
- - Advanced monitoring
342
- - Visual CI/CD pipelines
343
-
344
- ---
345
-
346
- ## Get Started
347
-
348
- - Download the app
349
- - Connect your repo
350
- - Deploy in minutes
351
-
352
- No lock-in.
353
- No complexity.
354
- Full control.
355
-
356
- ---
357
-
358
- ## License
359
-
360
- AGPL-3
@@ -1,30 +0,0 @@
1
- # Openship API — Environment Variables
2
- # Copy this file to .env and fill in the values.
3
-
4
- NODE_ENV=development
5
- PORT=4000
6
-
7
- # ---------- Mode ----------
8
- # Set to "true" to enable cloud billing, metering, multi-tenant features.
9
- # Default: false (self-hosted single-tenant mode).
10
- CLOUD_MODE=false
11
-
12
- # ---------- Database ----------
13
- DATABASE_URL=file:./dev.db
14
-
15
- # ---------- Auth ----------
16
- JWT_SECRET=change-me-in-production
17
- JWT_EXPIRES_IN=15m
18
- JWT_REFRESH_EXPIRES_IN=7d
19
-
20
- # ---------- Redis ----------
21
- REDIS_URL=redis://localhost:6379
22
-
23
- # ---------- Stripe (Cloud mode only) ----------
24
- # STRIPE_SECRET_KEY=sk_test_...
25
- # STRIPE_WEBHOOK_SECRET=whsec_...
26
-
27
- # ---------- GitHub App (for Git push webhooks) ----------
28
- # GITHUB_APP_ID=
29
- # GITHUB_PRIVATE_KEY=
30
- # GITHUB_WEBHOOK_SECRET=
@@ -1,22 +0,0 @@
1
- # ─── Build stage ────────────────────────────────────────
2
- FROM oven/bun:1 AS builder
3
- WORKDIR /app
4
-
5
- COPY package.json bun.lock pnpm-workspace.yaml ./
6
- COPY packages/ ./packages/
7
- COPY apps/api/ ./apps/api/
8
-
9
- RUN bun install --frozen-lockfile
10
- RUN cd apps/api && bun run build
11
-
12
- # ─── Production stage ──────────────────────────────────
13
- FROM oven/bun:1-slim AS runner
14
- WORKDIR /app
15
-
16
- COPY --from=builder /app/apps/api/dist ./dist
17
- COPY --from=builder /app/apps/api/package.json ./
18
- COPY --from=builder /app/node_modules ./node_modules
19
-
20
- ENV NODE_ENV=production
21
- EXPOSE 4000
22
- CMD ["bun", "run", "dist/index.js"]
@@ -1,41 +0,0 @@
1
- {
2
- "name": "@repo/api",
3
- "version": "0.1.0",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "dev": "node --env-file=.env --import tsx --watch src/index.ts",
8
- "dev:saas": "PGLITE_DATA_DIR=$HOME/.openship/data-saas node --env-file=.env.saas --import tsx --watch src/index.ts",
9
- "build": "tsup src/index.ts --format esm --dts",
10
- "start": "node dist/index.js",
11
- "lint": "tsc --noEmit",
12
- "test": "vitest run",
13
- "clean": "rm -rf dist .turbo node_modules"
14
- },
15
- "dependencies": {
16
- "@better-auth/drizzle-adapter": "^1.5.4",
17
- "@hono/node-server": "^1.19.11",
18
- "@hono/typebox-validator": "^0.3.0",
19
- "@repo/adapters": "workspace:*",
20
- "@repo/core": "workspace:*",
21
- "@repo/db": "workspace:*",
22
- "@sinclair/typebox": "^0.34.48",
23
- "better-auth": "^1.5.4",
24
- "bullmq": "^5.70.4",
25
- "hono": "^4.12.5",
26
- "ioredis": "^5.10.0",
27
- "nodemailer": "^8.0.1",
28
- "pino": "^10.3.1",
29
- "stripe": "^20.4.0",
30
- "yaml": "^2.8.2",
31
- "zod": "^4.3.6"
32
- },
33
- "devDependencies": {
34
- "@types/node": "^22.13.0",
35
- "@types/nodemailer": "^7.0.11",
36
- "tsup": "^8.5.1",
37
- "tsx": "^4.21.0",
38
- "typescript": "^5.9.3",
39
- "vitest": "^4.0.18"
40
- }
41
- }
@@ -1,69 +0,0 @@
1
- import { Hono } from "hono";
2
- import { cors } from "hono/cors";
3
- import { logger } from "hono/logger";
4
- import { env, trustedOrigins } from "./config/env";
5
- import { errorHandler } from "./middleware/error-handler";
6
- import { rateLimiter } from "./middleware/rate-limiter";
7
- import { bootstrapPlatform } from "./lib/controller-helpers";
8
-
9
- import { authRoutes } from "./modules/auth/auth.routes";
10
- import { projectRoutes } from "./modules/projects/project.routes";
11
- import { deploymentRoutes } from "./modules/deployments/deployment.routes";
12
- import { domainRoutes } from "./modules/domains/domain.routes";
13
- import { analyticsRoutes } from "./modules/analytics/analytics.routes";
14
- import { billingRoutes } from "./modules/billing/billing.routes";
15
- import { webhookRoutes } from "./modules/webhooks/webhook.routes";
16
- import { healthRoutes } from "./modules/health/health.routes";
17
- import { githubRoutes } from "./modules/github";
18
- import { settingsRoutes } from "./modules/settings/settings.routes";
19
-
20
- /* ---------- Initialize platform (runtime + infra + system) ---------- */
21
- await bootstrapPlatform();
22
-
23
- export const app = new Hono();
24
-
25
- /* ---------- Global middleware ---------- */
26
- app.use(
27
- "*",
28
- cors({
29
- origin: trustedOrigins,
30
- credentials: true,
31
- }),
32
- );
33
- app.use("*", errorHandler);
34
- app.use("*", logger());
35
-
36
- app.use("/api/auth/*", rateLimiter);
37
-
38
- /* ---------- Shared routes (self-hosted + cloud + desktop) ---------- */
39
- app.route("/api/health", healthRoutes);
40
- app.route("/api/auth", authRoutes);
41
- app.route("/api/projects", projectRoutes);
42
- app.route("/api/deployments", deploymentRoutes);
43
- app.route("/api/domains", domainRoutes);
44
- app.route("/api/webhooks", webhookRoutes);
45
- app.route("/api/github", githubRoutes);
46
- app.route("/api/analytics", analyticsRoutes);
47
- app.route("/api/settings", settingsRoutes);
48
-
49
- /* ---------- Cloud-only routes (gated by CLOUD_MODE) ---------- */
50
- if (env.CLOUD_MODE) {
51
- const { cloudSaasRoutes } = await import("./modules/cloud/cloud.routes");
52
- app.route("/api/cloud", cloudSaasRoutes);
53
- app.route("/api/billing", billingRoutes);
54
- } else {
55
- /**
56
- * System routes — filesystem browse, instance setup, user provisioning.
57
- *
58
- * Dynamic import: in cloud mode these modules are NEVER loaded into the
59
- * process. The filesystem controller (node:fs), setup controller
60
- * (admin user creation), and all their dependencies don't exist in
61
- * the cloud runtime — not just "protected", but fully absent.
62
- */
63
- const { systemRoutes } = await import("./modules/system");
64
- app.route("/api/system", systemRoutes);
65
-
66
- /** Cloud account management — connect/disconnect to Openship Cloud */
67
- const { cloudLocalRoutes } = await import("./modules/cloud/cloud.routes");
68
- app.route("/api/cloud", cloudLocalRoutes);
69
- }
@@ -1,113 +0,0 @@
1
- import { z } from "zod";
2
-
3
- /**
4
- * API configuration — loaded from environment variables.
5
- *
6
- * CLOUD_MODE=true enables billing, metering, and multi-tenant features.
7
- * CLOUD_MODE=false (default) runs as a self-hosted single-tenant instance.
8
- */
9
- const envSchema = z.object({
10
- NODE_ENV: z.enum(["development", "production", "test"]).default("development"),
11
- PORT: z.coerce.number().default(4000),
12
-
13
- /* ---------- Mode ---------- */
14
- CLOUD_MODE: z
15
- .enum(["true", "false", "1", "0", ""])
16
- .default("false")
17
- .transform((v) => v === "true" || v === "1"),
18
- /**
19
- * Deployment mode — determines the runtime + infrastructure combination:
20
- * - "docker" (default) → Docker runtime + Traefik routing/SSL (self-hosted)
21
- * - "bare" → Process runtime + Traefik routing/SSL (self-hosted)
22
- * - "cloud" → Oblien cloud API for everything (auto-set when CLOUD_MODE=true)
23
- * - "desktop" → Bare runtime, no routing/SSL (desktop app)
24
- */
25
- DEPLOY_MODE: z.enum(["docker", "bare", "cloud", "desktop"]).default("docker"),
26
-
27
- /* ---------- Database ---------- */
28
- DATABASE_URL: z.string().default(""),
29
-
30
- /* ---------- Auth (Better Auth) ---------- */
31
- BETTER_AUTH_SECRET: z.string().default("change-me-in-production"),
32
- BETTER_AUTH_URL: z.string().default("http://localhost:4000"),
33
- TRUSTED_ORIGINS: z.string().optional(),
34
-
35
- /* ---------- OAuth Providers ---------- */
36
- GITHUB_CLIENT_ID: z.string().optional(),
37
- GITHUB_CLIENT_SECRET: z.string().optional(),
38
- GOOGLE_CLIENT_ID: z.string().optional(),
39
- GOOGLE_CLIENT_SECRET: z.string().optional(),
40
-
41
- /* ---------- GitHub Auth Strategy ---------- */
42
- /**
43
- * Controls how the API authenticates with GitHub:
44
- * - "auto" (default) → inferred from DEPLOY_MODE / CLOUD_MODE
45
- * - "app" → GitHub App installation tokens (cloud)
46
- * - "oauth" → Better Auth OAuth flow only (self-hosted with OAuth)
47
- * - "cli" → `gh auth login` token from the machine (local/desktop)
48
- * - "token" → static GITHUB_TOKEN env var (CI, scripts)
49
- */
50
- GITHUB_AUTH_MODE: z.enum(["auto", "app", "oauth", "cli", "token"]).default("auto"),
51
- /** Static GitHub personal access token — used when GITHUB_AUTH_MODE="token" */
52
- GITHUB_TOKEN: z.string().optional(),
53
-
54
- /* ---------- Redis ---------- */
55
- REDIS_URL: z.string().default("redis://localhost:6379"),
56
-
57
- /* ---------- Stripe (Cloud only) ---------- */
58
- STRIPE_SECRET_KEY: z.string().optional(),
59
- STRIPE_WEBHOOK_SECRET: z.string().optional(),
60
-
61
- /* ---------- Git Webhooks ---------- */
62
- GITHUB_APP_ID: z.string().optional(),
63
- GITHUB_APP_SLUG: z.string().optional(),
64
- GITHUB_PRIVATE_KEY: z.string().optional(),
65
- GITHUB_WEBHOOK_SECRET: z.string().optional(),
66
-
67
- /* ---------- Email (SMTP) ---------- */
68
- SMTP_HOST: z.string().optional(),
69
- SMTP_PORT: z.coerce.number().optional(),
70
- SMTP_USER: z.string().optional(),
71
- SMTP_PASS: z.string().optional(),
72
- SMTP_FROM: z.string().default("Openship <noreply@openship.dev>"),
73
-
74
- /* ---------- Dashboard ---------- */
75
- DASHBOARD_URL: z.string().default("http://localhost:3001"),
76
-
77
- /* ---------- Network (self-hosted) ---------- */
78
- /** Public IP of the server — used for A record instructions in self-hosted mode. */
79
- SERVER_IP: z.string().optional(),
80
-
81
- /* ---------- Oblien Cloud ---------- */
82
- OBLIEN_CLIENT_ID: z.string().optional(),
83
- OBLIEN_CLIENT_SECRET: z.string().optional(),
84
-
85
- /** Openship Cloud API URL — used by local instances to fetch namespace tokens */
86
- OPENSHIP_CLOUD_URL: z.string().default("https://api.openship.io"),
87
-
88
- /** Openship Cloud dashboard URL — used for external auth redirect (desktop + cloud connect) */
89
- OPENSHIP_CLOUD_DASHBOARD_URL: z.string().default("https://app.openship.io"),
90
-
91
- /* ---------- Screenshots (optional) ---------- */
92
- SCREENSHOT_SERVICE_URL: z.string().optional(),
93
- CDN_UPLOAD_URL: z.string().optional(),
94
-
95
- /* ---------- Internal (Electron ↔ API) ---------- */
96
- /** Shared secret for Electron → API calls (set by desktop app on startup) */
97
- INTERNAL_TOKEN: z.string().optional(),
98
-
99
- /** Enables verbose timing logs for SSH/system checks and environment detection */
100
- SYSTEM_DEBUG_LOGS: z
101
- .enum(["true", "false", "1", "0", ""])
102
- .default("")
103
- .transform((v) => v === "true" || v === "1"),
104
- });
105
-
106
- export type Env = z.infer<typeof envSchema>;
107
-
108
- export const env = envSchema.parse(process.env);
109
-
110
- /** Parsed trusted origins — single source of truth for CORS + Better Auth */
111
- export const trustedOrigins = env.TRUSTED_ORIGINS
112
- ? env.TRUSTED_ORIGINS.split(",")
113
- : ["http://localhost:3000", "http://localhost:3001"];
@@ -1 +0,0 @@
1
- export { env } from "./env";
@@ -1,8 +0,0 @@
1
- import { serve } from "@hono/node-server";
2
- import { app } from "./app";
3
-
4
- const port = Number(process.env.PORT) || 4000;
5
-
6
- serve({ fetch: app.fetch, port }, (info) => {
7
- console.log(`🚀 Openship API running on http://localhost:${info.port}`);
8
- });
@@ -1,42 +0,0 @@
1
- /**
2
- * Cached auth-mode reader for desktop mode.
3
- *
4
- * Auth mode is written once during onboarding and rarely changes.
5
- * Caching avoids a DB hit on every request through authMiddleware.
6
- *
7
- * The cache is cleared by setup.controller after any write so that
8
- * re-onboarding (dev reset) picks up the new value immediately.
9
- */
10
-
11
- import { env } from "../config/env";
12
-
13
- let cached: string | null = null;
14
-
15
- /**
16
- * Returns the current auth mode for this instance.
17
- *
18
- * "none" → zero-auth desktop (auto-provisioned local user)
19
- * "cloud" → cloud-authenticated desktop (Openship Cloud session)
20
- * "local" → standard Better Auth (self-hosted VPS / SaaS)
21
- */
22
- export async function getAuthMode(): Promise<"none" | "cloud" | "local"> {
23
- // Non-desktop always uses local Better Auth
24
- if (env.DEPLOY_MODE !== "desktop") return "local";
25
-
26
- if (cached !== null) return cached as "none" | "cloud" | "local";
27
-
28
- try {
29
- const { repos } = await import("@repo/db");
30
- const settings = await repos.instanceSettings.get();
31
- cached = settings?.authMode ?? "none";
32
- } catch {
33
- cached = "none";
34
- }
35
-
36
- return cached as "none" | "cloud" | "local";
37
- }
38
-
39
- /** Clear the cached value — called after setup.controller writes. */
40
- export function clearAuthModeCache() {
41
- cached = null;
42
- }