machinaos 0.0.1

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 (288) hide show
  1. package/.env.template +71 -0
  2. package/LICENSE +21 -0
  3. package/README.md +87 -0
  4. package/bin/cli.js +159 -0
  5. package/client/.dockerignore +45 -0
  6. package/client/Dockerfile +68 -0
  7. package/client/eslint.config.js +29 -0
  8. package/client/index.html +13 -0
  9. package/client/nginx.conf +66 -0
  10. package/client/package.json +48 -0
  11. package/client/src/App.tsx +27 -0
  12. package/client/src/Dashboard.tsx +1173 -0
  13. package/client/src/ParameterPanel.tsx +301 -0
  14. package/client/src/components/AIAgentNode.tsx +321 -0
  15. package/client/src/components/APIKeyValidator.tsx +118 -0
  16. package/client/src/components/ClaudeChatModelNode.tsx +18 -0
  17. package/client/src/components/ConditionalEdge.tsx +189 -0
  18. package/client/src/components/CredentialsModal.tsx +306 -0
  19. package/client/src/components/EdgeConditionEditor.tsx +443 -0
  20. package/client/src/components/GeminiChatModelNode.tsx +18 -0
  21. package/client/src/components/GenericNode.tsx +357 -0
  22. package/client/src/components/LocationParameterPanel.tsx +154 -0
  23. package/client/src/components/ModelNode.tsx +286 -0
  24. package/client/src/components/OpenAIChatModelNode.tsx +18 -0
  25. package/client/src/components/OutputPanel.tsx +471 -0
  26. package/client/src/components/ParameterRenderer.tsx +1874 -0
  27. package/client/src/components/SkillEditorModal.tsx +417 -0
  28. package/client/src/components/SquareNode.tsx +797 -0
  29. package/client/src/components/StartNode.tsx +250 -0
  30. package/client/src/components/ToolkitNode.tsx +365 -0
  31. package/client/src/components/TriggerNode.tsx +463 -0
  32. package/client/src/components/auth/LoginPage.tsx +247 -0
  33. package/client/src/components/auth/ProtectedRoute.tsx +59 -0
  34. package/client/src/components/base/BaseChatModelNode.tsx +271 -0
  35. package/client/src/components/icons/AIProviderIcons.tsx +50 -0
  36. package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
  37. package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
  38. package/client/src/components/maps/index.ts +26 -0
  39. package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
  40. package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
  41. package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
  42. package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
  43. package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
  44. package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
  45. package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
  46. package/client/src/components/parameterPanel/index.ts +42 -0
  47. package/client/src/components/shared/DataPanel.tsx +142 -0
  48. package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
  49. package/client/src/components/ui/AIResultModal.tsx +204 -0
  50. package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
  51. package/client/src/components/ui/CodeEditor.tsx +81 -0
  52. package/client/src/components/ui/CollapsibleSection.tsx +88 -0
  53. package/client/src/components/ui/ComponentItem.tsx +154 -0
  54. package/client/src/components/ui/ComponentPalette.tsx +321 -0
  55. package/client/src/components/ui/ConsolePanel.tsx +1074 -0
  56. package/client/src/components/ui/ErrorBoundary.tsx +196 -0
  57. package/client/src/components/ui/InputNodesPanel.tsx +204 -0
  58. package/client/src/components/ui/MapSelector.tsx +314 -0
  59. package/client/src/components/ui/Modal.tsx +149 -0
  60. package/client/src/components/ui/NodeContextMenu.tsx +192 -0
  61. package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
  62. package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
  63. package/client/src/components/ui/SettingsPanel.tsx +243 -0
  64. package/client/src/components/ui/TopToolbar.tsx +736 -0
  65. package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
  66. package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
  67. package/client/src/config/antdTheme.ts +186 -0
  68. package/client/src/config/api.ts +54 -0
  69. package/client/src/contexts/AuthContext.tsx +221 -0
  70. package/client/src/contexts/ThemeContext.tsx +42 -0
  71. package/client/src/contexts/WebSocketContext.tsx +1971 -0
  72. package/client/src/factories/baseChatModelFactory.ts +256 -0
  73. package/client/src/hooks/useAndroidOperations.ts +164 -0
  74. package/client/src/hooks/useApiKeyValidation.ts +107 -0
  75. package/client/src/hooks/useApiKeys.ts +238 -0
  76. package/client/src/hooks/useAppTheme.ts +17 -0
  77. package/client/src/hooks/useComponentPalette.ts +51 -0
  78. package/client/src/hooks/useCopyPaste.ts +155 -0
  79. package/client/src/hooks/useDragAndDrop.ts +124 -0
  80. package/client/src/hooks/useDragVariable.ts +88 -0
  81. package/client/src/hooks/useExecution.ts +313 -0
  82. package/client/src/hooks/useParameterPanel.ts +176 -0
  83. package/client/src/hooks/useReactFlowNodes.ts +189 -0
  84. package/client/src/hooks/useToolSchema.ts +209 -0
  85. package/client/src/hooks/useWhatsApp.ts +196 -0
  86. package/client/src/hooks/useWorkflowManagement.ts +46 -0
  87. package/client/src/index.css +315 -0
  88. package/client/src/main.tsx +19 -0
  89. package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
  90. package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
  91. package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
  92. package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
  93. package/client/src/nodeDefinitions/chatNodes.ts +135 -0
  94. package/client/src/nodeDefinitions/codeNodes.ts +54 -0
  95. package/client/src/nodeDefinitions/documentNodes.ts +379 -0
  96. package/client/src/nodeDefinitions/index.ts +15 -0
  97. package/client/src/nodeDefinitions/locationNodes.ts +463 -0
  98. package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
  99. package/client/src/nodeDefinitions/skillNodes.ts +211 -0
  100. package/client/src/nodeDefinitions/toolNodes.ts +198 -0
  101. package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
  102. package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
  103. package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
  104. package/client/src/nodeDefinitions.ts +104 -0
  105. package/client/src/schemas/workflowSchema.ts +264 -0
  106. package/client/src/services/dynamicParameterService.ts +96 -0
  107. package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
  108. package/client/src/services/executionService.ts +232 -0
  109. package/client/src/services/workflowApi.ts +91 -0
  110. package/client/src/store/useAppStore.ts +582 -0
  111. package/client/src/styles/theme.ts +508 -0
  112. package/client/src/styles/zIndex.ts +17 -0
  113. package/client/src/types/ComponentTypes.ts +39 -0
  114. package/client/src/types/EdgeCondition.ts +231 -0
  115. package/client/src/types/INodeProperties.ts +288 -0
  116. package/client/src/types/NodeTypes.ts +28 -0
  117. package/client/src/utils/formatters.ts +33 -0
  118. package/client/src/utils/googleMapsLoader.ts +140 -0
  119. package/client/src/utils/locationUtils.ts +85 -0
  120. package/client/src/utils/nodeUtils.ts +31 -0
  121. package/client/src/utils/workflow.ts +30 -0
  122. package/client/src/utils/workflowExport.ts +120 -0
  123. package/client/src/vite-env.d.ts +12 -0
  124. package/client/tailwind.config.js +60 -0
  125. package/client/tsconfig.json +25 -0
  126. package/client/tsconfig.node.json +11 -0
  127. package/client/vite.config.js +35 -0
  128. package/docker-compose.prod.yml +107 -0
  129. package/docker-compose.yml +104 -0
  130. package/docs-MachinaOs/README.md +85 -0
  131. package/docs-MachinaOs/deployment/docker.mdx +228 -0
  132. package/docs-MachinaOs/deployment/production.mdx +345 -0
  133. package/docs-MachinaOs/docs.json +75 -0
  134. package/docs-MachinaOs/faq.mdx +309 -0
  135. package/docs-MachinaOs/favicon.svg +5 -0
  136. package/docs-MachinaOs/installation.mdx +160 -0
  137. package/docs-MachinaOs/introduction.mdx +114 -0
  138. package/docs-MachinaOs/logo/dark.svg +6 -0
  139. package/docs-MachinaOs/logo/light.svg +6 -0
  140. package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
  141. package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
  142. package/docs-MachinaOs/nodes/android.mdx +411 -0
  143. package/docs-MachinaOs/nodes/overview.mdx +181 -0
  144. package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
  145. package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
  146. package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
  147. package/docs-MachinaOs/quickstart.mdx +119 -0
  148. package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
  149. package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
  150. package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
  151. package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
  152. package/nul +0 -0
  153. package/package.json +70 -0
  154. package/scripts/build.js +158 -0
  155. package/scripts/check-ports.ps1 +33 -0
  156. package/scripts/clean.js +40 -0
  157. package/scripts/docker.js +93 -0
  158. package/scripts/kill-port.ps1 +154 -0
  159. package/scripts/start.js +210 -0
  160. package/scripts/stop.js +325 -0
  161. package/server/.dockerignore +44 -0
  162. package/server/Dockerfile +45 -0
  163. package/server/constants.py +249 -0
  164. package/server/core/__init__.py +1 -0
  165. package/server/core/cache.py +461 -0
  166. package/server/core/config.py +128 -0
  167. package/server/core/container.py +99 -0
  168. package/server/core/database.py +1211 -0
  169. package/server/core/logging.py +314 -0
  170. package/server/main.py +289 -0
  171. package/server/middleware/__init__.py +5 -0
  172. package/server/middleware/auth.py +89 -0
  173. package/server/models/__init__.py +1 -0
  174. package/server/models/auth.py +52 -0
  175. package/server/models/cache.py +24 -0
  176. package/server/models/database.py +211 -0
  177. package/server/models/nodes.py +455 -0
  178. package/server/package.json +9 -0
  179. package/server/pyproject.toml +72 -0
  180. package/server/requirements.txt +83 -0
  181. package/server/routers/__init__.py +1 -0
  182. package/server/routers/android.py +294 -0
  183. package/server/routers/auth.py +203 -0
  184. package/server/routers/database.py +151 -0
  185. package/server/routers/maps.py +142 -0
  186. package/server/routers/nodejs_compat.py +289 -0
  187. package/server/routers/webhook.py +90 -0
  188. package/server/routers/websocket.py +2127 -0
  189. package/server/routers/whatsapp.py +761 -0
  190. package/server/routers/workflow.py +200 -0
  191. package/server/services/__init__.py +1 -0
  192. package/server/services/ai.py +2415 -0
  193. package/server/services/android/__init__.py +27 -0
  194. package/server/services/android/broadcaster.py +114 -0
  195. package/server/services/android/client.py +608 -0
  196. package/server/services/android/manager.py +78 -0
  197. package/server/services/android/protocol.py +165 -0
  198. package/server/services/android_service.py +588 -0
  199. package/server/services/auth.py +131 -0
  200. package/server/services/chat_client.py +160 -0
  201. package/server/services/deployment/__init__.py +12 -0
  202. package/server/services/deployment/manager.py +706 -0
  203. package/server/services/deployment/state.py +47 -0
  204. package/server/services/deployment/triggers.py +275 -0
  205. package/server/services/event_waiter.py +785 -0
  206. package/server/services/execution/__init__.py +77 -0
  207. package/server/services/execution/cache.py +769 -0
  208. package/server/services/execution/conditions.py +373 -0
  209. package/server/services/execution/dlq.py +132 -0
  210. package/server/services/execution/executor.py +1351 -0
  211. package/server/services/execution/models.py +531 -0
  212. package/server/services/execution/recovery.py +235 -0
  213. package/server/services/handlers/__init__.py +126 -0
  214. package/server/services/handlers/ai.py +355 -0
  215. package/server/services/handlers/android.py +260 -0
  216. package/server/services/handlers/code.py +278 -0
  217. package/server/services/handlers/document.py +598 -0
  218. package/server/services/handlers/http.py +193 -0
  219. package/server/services/handlers/polyglot.py +105 -0
  220. package/server/services/handlers/tools.py +845 -0
  221. package/server/services/handlers/triggers.py +107 -0
  222. package/server/services/handlers/utility.py +822 -0
  223. package/server/services/handlers/whatsapp.py +476 -0
  224. package/server/services/maps.py +289 -0
  225. package/server/services/memory_store.py +103 -0
  226. package/server/services/node_executor.py +375 -0
  227. package/server/services/parameter_resolver.py +218 -0
  228. package/server/services/polyglot_client.py +169 -0
  229. package/server/services/scheduler.py +155 -0
  230. package/server/services/skill_loader.py +417 -0
  231. package/server/services/status_broadcaster.py +826 -0
  232. package/server/services/temporal/__init__.py +23 -0
  233. package/server/services/temporal/activities.py +344 -0
  234. package/server/services/temporal/client.py +76 -0
  235. package/server/services/temporal/executor.py +147 -0
  236. package/server/services/temporal/worker.py +251 -0
  237. package/server/services/temporal/workflow.py +355 -0
  238. package/server/services/temporal/ws_client.py +236 -0
  239. package/server/services/text.py +111 -0
  240. package/server/services/user_auth.py +172 -0
  241. package/server/services/websocket_client.py +29 -0
  242. package/server/services/workflow.py +597 -0
  243. package/server/skills/android-skill/SKILL.md +82 -0
  244. package/server/skills/assistant-personality/SKILL.md +45 -0
  245. package/server/skills/code-skill/SKILL.md +140 -0
  246. package/server/skills/http-skill/SKILL.md +161 -0
  247. package/server/skills/maps-skill/SKILL.md +170 -0
  248. package/server/skills/memory-skill/SKILL.md +154 -0
  249. package/server/skills/scheduler-skill/SKILL.md +84 -0
  250. package/server/skills/whatsapp-skill/SKILL.md +283 -0
  251. package/server/uv.lock +2916 -0
  252. package/server/whatsapp-rpc/.dockerignore +30 -0
  253. package/server/whatsapp-rpc/Dockerfile +44 -0
  254. package/server/whatsapp-rpc/Dockerfile.web +17 -0
  255. package/server/whatsapp-rpc/README.md +139 -0
  256. package/server/whatsapp-rpc/cli.js +95 -0
  257. package/server/whatsapp-rpc/configs/config.yaml +7 -0
  258. package/server/whatsapp-rpc/docker-compose.yml +35 -0
  259. package/server/whatsapp-rpc/docs/API.md +410 -0
  260. package/server/whatsapp-rpc/go.mod +67 -0
  261. package/server/whatsapp-rpc/go.sum +203 -0
  262. package/server/whatsapp-rpc/package.json +30 -0
  263. package/server/whatsapp-rpc/schema.json +1294 -0
  264. package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
  265. package/server/whatsapp-rpc/scripts/cli.js +162 -0
  266. package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
  267. package/server/whatsapp-rpc/src/go/config/config.go +49 -0
  268. package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
  269. package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
  270. package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
  271. package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
  272. package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
  273. package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
  274. package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
  275. package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
  276. package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
  277. package/server/whatsapp-rpc/web/app.py +609 -0
  278. package/server/whatsapp-rpc/web/requirements.txt +6 -0
  279. package/server/whatsapp-rpc/web/rpc_client.py +427 -0
  280. package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
  281. package/server/whatsapp-rpc/web/templates/base.html +150 -0
  282. package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
  283. package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
  284. package/server/whatsapp-rpc/web/templates/groups.html +328 -0
  285. package/server/whatsapp-rpc/web/templates/messages.html +465 -0
  286. package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
  287. package/server/whatsapp-rpc/web/templates/send.html +259 -0
  288. package/server/whatsapp-rpc/web/templates/settings.html +459 -0
@@ -0,0 +1,104 @@
1
+ services:
2
+ # Redis Cache (only starts with --profile redis or COMPOSE_PROFILES=redis)
3
+ redis:
4
+ image: redis:7-alpine
5
+ container_name: machina-redis
6
+ profiles:
7
+ - redis
8
+ ports:
9
+ - "${REDIS_PORT:-6379}:6379"
10
+ volumes:
11
+ - redis-data:/data
12
+ networks:
13
+ - app-network
14
+ restart: unless-stopped
15
+ healthcheck:
16
+ test: ["CMD", "redis-cli", "ping"]
17
+ interval: 10s
18
+ timeout: 5s
19
+ retries: 3
20
+ command: redis-server --appendonly yes
21
+
22
+ # Python FastAPI Backend
23
+ backend:
24
+ build:
25
+ context: ./server
26
+ dockerfile: Dockerfile
27
+ container_name: machina-backend
28
+ ports:
29
+ - "${PYTHON_BACKEND_PORT:-3010}:${PYTHON_BACKEND_PORT:-3010}"
30
+ volumes:
31
+ - ./server:/app
32
+ - backend-data:/app/data
33
+ networks:
34
+ - app-network
35
+ restart: unless-stopped
36
+ healthcheck:
37
+ test: ["CMD", "curl", "-f", "http://localhost:${PYTHON_BACKEND_PORT:-3010}/health"]
38
+ interval: 30s
39
+ timeout: 10s
40
+ retries: 3
41
+ start_period: 30s
42
+ env_file:
43
+ - .env
44
+ environment:
45
+ # Override specific vars for Docker networking
46
+ - PORT=${PYTHON_BACKEND_PORT:-3010}
47
+ - REDIS_URL=redis://redis:6379
48
+ - WHATSAPP_RPC_URL=ws://whatsapp:${WHATSAPP_RPC_PORT:-9400}/ws/rpc
49
+ - TZ=UTC
50
+ depends_on:
51
+ whatsapp:
52
+ condition: service_healthy
53
+
54
+ # React Frontend (Vite) - Production build served via nginx
55
+ frontend:
56
+ build:
57
+ context: ./client
58
+ dockerfile: Dockerfile
59
+ target: production
60
+ args:
61
+ - VITE_AUTH_ENABLED=${VITE_AUTH_ENABLED:-true}
62
+ container_name: machina-frontend
63
+ ports:
64
+ - "${VITE_CLIENT_PORT:-3000}:80"
65
+ networks:
66
+ - app-network
67
+ restart: unless-stopped
68
+ depends_on:
69
+ - backend
70
+
71
+ # WhatsApp RPC Service (Go API)
72
+ whatsapp:
73
+ build:
74
+ context: ./server/whatsapp-rpc
75
+ dockerfile: Dockerfile
76
+ container_name: machina-whatsapp
77
+ ports:
78
+ - "${WHATSAPP_RPC_PORT:-9400}:${WHATSAPP_RPC_PORT:-9400}"
79
+ volumes:
80
+ - whatsapp-data:/app/data
81
+ networks:
82
+ - app-network
83
+ restart: unless-stopped
84
+ healthcheck:
85
+ test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:${WHATSAPP_RPC_PORT:-9400}/health"]
86
+ interval: 30s
87
+ timeout: 10s
88
+ retries: 3
89
+ start_period: 15s
90
+ environment:
91
+ - TZ=UTC
92
+ - PORT=${WHATSAPP_RPC_PORT:-9400}
93
+
94
+ networks:
95
+ app-network:
96
+ driver: bridge
97
+
98
+ volumes:
99
+ redis-data:
100
+ driver: local
101
+ backend-data:
102
+ driver: local
103
+ whatsapp-data:
104
+ driver: local
@@ -0,0 +1,85 @@
1
+ # MachinaOs Documentation
2
+
3
+ This folder contains the Mintlify documentation for MachinaOs.
4
+
5
+ ## Setup
6
+
7
+ 1. Create a new repository `trohitg/machinaos-docs` on GitHub
8
+ 2. Copy the contents of this folder to the new repository
9
+ 3. Connect the repository to Mintlify:
10
+ - Go to [mintlify.com](https://mintlify.com)
11
+ - Click "Get Started" and sign in with GitHub
12
+ - Select your `machinaos-docs` repository
13
+ - Mintlify will automatically deploy your docs
14
+
15
+ ## Local Development
16
+
17
+ ```bash
18
+ # Install Mintlify CLI
19
+ npm install -g mintlify
20
+
21
+ # Run local dev server
22
+ cd docs-mintlify
23
+ mintlify dev
24
+ ```
25
+
26
+ The docs will be available at http://localhost:3000
27
+
28
+ ## Structure
29
+
30
+ ```
31
+ docs-mintlify/
32
+ ├── docs.json # Mintlify configuration
33
+ ├── introduction.mdx # Home page
34
+ ├── installation.mdx # Setup guide
35
+ ├── quickstart.mdx # Quick start tutorial
36
+ ├── faq.mdx # FAQ page
37
+ ├── tutorials/ # Step-by-step guides
38
+ │ ├── first-workflow.mdx
39
+ │ ├── ai-agent-workflow.mdx
40
+ │ ├── whatsapp-automation.mdx
41
+ │ └── android-automation.mdx
42
+ ├── nodes/ # Node documentation
43
+ │ ├── overview.mdx
44
+ │ ├── ai-models.mdx
45
+ │ ├── ai-agent.mdx
46
+ │ ├── whatsapp.mdx
47
+ │ ├── android.mdx
48
+ │ ├── webhooks.mdx
49
+ │ └── schedulers.mdx
50
+ ├── deployment/ # Deployment guides
51
+ │ ├── docker.mdx
52
+ │ └── production.mdx
53
+ ├── logo/ # Logo assets
54
+ │ ├── dark.svg
55
+ │ └── light.svg
56
+ ├── images/ # Screenshots and diagrams
57
+ └── favicon.svg # Browser favicon
58
+ ```
59
+
60
+ ## Adding Content
61
+
62
+ 1. Create new `.mdx` files in the appropriate folder
63
+ 2. Add frontmatter with title and description:
64
+ ```mdx
65
+ ---
66
+ title: Page Title
67
+ description: Brief description
68
+ ---
69
+ ```
70
+ 3. Update `docs.json` navigation to include new pages
71
+ 4. Commit and push - Mintlify auto-deploys
72
+
73
+ ## Mintlify Components
74
+
75
+ Common components used in docs:
76
+
77
+ - `<Card>` - Feature cards with icons
78
+ - `<CardGroup>` - Grid layout for cards
79
+ - `<Tabs>` - Tabbed content
80
+ - `<Accordion>` - Collapsible sections
81
+ - `<Info>`, `<Warning>`, `<Tip>` - Callout boxes
82
+ - `<ParamField>` - Parameter documentation
83
+ - `<Check>` - Success checkmarks
84
+
85
+ See [Mintlify docs](https://mintlify.com/docs) for full component reference.
@@ -0,0 +1,228 @@
1
+ ---
2
+ title: Docker Setup
3
+ description: Run MachinaOs with Docker Compose
4
+ ---
5
+
6
+ # Docker Setup
7
+
8
+ The easiest way to run MachinaOs is with Docker Compose.
9
+
10
+ ## Prerequisites
11
+
12
+ - Docker 20.10+
13
+ - Docker Compose 2.0+
14
+ - 2GB RAM minimum
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Clone the repository
20
+ git clone https://github.com/trohitg/MachinaOS.git
21
+ cd MachinaOs
22
+
23
+ # Build images
24
+ npm run docker:build
25
+
26
+ # Start all services
27
+ npm run docker:up
28
+ ```
29
+
30
+ This starts 4 containers:
31
+ - **frontend** - React app on port 3000
32
+ - **backend** - FastAPI server on port 3010
33
+ - **whatsapp** - Go WhatsApp service on port 9400
34
+ - **redis** - Cache on port 6379 (optional)
35
+
36
+ ## Container Overview
37
+
38
+ | Container | Image | Port | Purpose |
39
+ |-----------|-------|------|---------|
40
+ | frontend | machinaos-frontend | 3000 | React UI |
41
+ | backend | machinaos-backend | 3010 | API server |
42
+ | whatsapp | machinaos-whatsapp | 9400 | WhatsApp bridge |
43
+ | redis | redis:7-alpine | 6379 | Cache (optional) |
44
+
45
+ ## Configuration
46
+
47
+ ### Environment Variables
48
+
49
+ Create a `.env` file in the project root:
50
+
51
+ ```bash
52
+ # Ports
53
+ VITE_CLIENT_PORT=3000
54
+ PYTHON_BACKEND_PORT=3010
55
+ WHATSAPP_RPC_PORT=9400
56
+
57
+ # Authentication
58
+ AUTH_MODE=single
59
+ JWT_SECRET_KEY=your-secret-key-min-32-chars
60
+
61
+ # Cache (optional)
62
+ REDIS_ENABLED=false
63
+
64
+ # AI API Keys (optional)
65
+ OPENAI_API_KEY=
66
+ ANTHROPIC_API_KEY=
67
+ ```
68
+
69
+ ### Redis (Optional)
70
+
71
+ Redis is disabled by default for local development. To enable:
72
+
73
+ ```bash
74
+ # In .env
75
+ REDIS_ENABLED=true
76
+ ```
77
+
78
+ Then start with Redis profile:
79
+
80
+ ```bash
81
+ docker-compose --profile redis up -d
82
+ ```
83
+
84
+ ## Common Commands
85
+
86
+ ```bash
87
+ # Start services
88
+ npm run docker:up
89
+
90
+ # View logs
91
+ npm run docker:logs
92
+
93
+ # Stop all services
94
+ npm run docker:down
95
+
96
+ # Rebuild after code changes
97
+ npm run docker:build && npm run docker:up
98
+
99
+ # Stop and remove volumes (clean slate)
100
+ docker-compose down -v
101
+
102
+ # View specific service logs
103
+ docker-compose logs -f backend
104
+
105
+ # Restart specific service
106
+ docker-compose restart backend
107
+ ```
108
+
109
+ ## Accessing Services
110
+
111
+ After starting, access:
112
+
113
+ | Service | URL |
114
+ |---------|-----|
115
+ | Frontend | http://localhost:3000 |
116
+ | Backend API | http://localhost:3010 |
117
+ | Health Check | http://localhost:3010/health |
118
+ | WebSocket | ws://localhost:3010/ws/status |
119
+
120
+ ## Health Checks
121
+
122
+ All containers include health checks:
123
+
124
+ ```bash
125
+ # Check container health
126
+ docker-compose ps
127
+
128
+ # Check backend health
129
+ curl http://localhost:3010/health
130
+ ```
131
+
132
+ Expected health response:
133
+ ```json
134
+ {
135
+ "status": "healthy",
136
+ "redis_enabled": false,
137
+ "version": "1.0.0"
138
+ }
139
+ ```
140
+
141
+ ## Troubleshooting
142
+
143
+ <Accordion title="Container won't start">
144
+ Check logs for errors:
145
+ ```bash
146
+ docker-compose logs backend
147
+ docker-compose logs frontend
148
+ ```
149
+
150
+ Common issues:
151
+ - Port already in use: Change port in `.env`
152
+ - Missing environment variables: Check `.env` file exists
153
+ </Accordion>
154
+
155
+ <Accordion title="Frontend can't connect to backend">
156
+ - Verify both containers are running: `docker-compose ps`
157
+ - Check network: containers should be on same network
158
+ - Check CORS settings in backend `.env`
159
+ </Accordion>
160
+
161
+ <Accordion title="WhatsApp service issues">
162
+ ```bash
163
+ # Check WhatsApp logs
164
+ docker-compose logs whatsapp
165
+
166
+ # Restart WhatsApp service
167
+ docker-compose restart whatsapp
168
+ ```
169
+ </Accordion>
170
+
171
+ <Accordion title="Out of disk space">
172
+ Clean up Docker resources:
173
+ ```bash
174
+ docker system prune -af
175
+ docker builder prune -af
176
+ ```
177
+ </Accordion>
178
+
179
+ ## Resource Usage
180
+
181
+ Typical resource consumption:
182
+
183
+ | Container | Memory | CPU |
184
+ |-----------|--------|-----|
185
+ | frontend | ~50 MB | Low |
186
+ | backend | ~150 MB | Medium |
187
+ | whatsapp | ~30 MB | Low |
188
+ | redis | ~10 MB | Low |
189
+
190
+ ## Data Persistence
191
+
192
+ Data is stored in Docker volumes:
193
+
194
+ | Volume | Purpose |
195
+ |--------|---------|
196
+ | backend-data | SQLite database, uploads |
197
+ | whatsapp-data | WhatsApp session |
198
+ | redis-data | Cache data |
199
+
200
+ To backup data:
201
+ ```bash
202
+ docker cp machinaos-backend-1:/app/data ./backup
203
+ ```
204
+
205
+ ## Development Mode
206
+
207
+ For development with hot reload:
208
+
209
+ ```bash
210
+ # Use development compose file
211
+ docker-compose -f docker-compose.dev.yml up
212
+ ```
213
+
214
+ Or run services separately:
215
+ ```bash
216
+ npm run dev # Starts frontend + backend with hot reload
217
+ ```
218
+
219
+ ## Next Steps
220
+
221
+ <CardGroup cols={2}>
222
+ <Card title="Production Deployment" icon="server" href="/deployment/production">
223
+ Deploy to a server with nginx and SSL
224
+ </Card>
225
+ <Card title="Configuration" icon="gear" href="/installation">
226
+ Full environment variable reference
227
+ </Card>
228
+ </CardGroup>