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,345 @@
1
+ ---
2
+ title: Production Deployment
3
+ description: Deploy MachinaOs to production with nginx and SSL
4
+ ---
5
+
6
+ # Production Deployment
7
+
8
+ Deploy MachinaOs to a production server with Docker, nginx reverse proxy, and SSL.
9
+
10
+ ## Server Requirements
11
+
12
+ - Ubuntu 20.04+ or similar Linux
13
+ - 2+ CPU cores
14
+ - 2GB+ RAM
15
+ - Docker and Docker Compose
16
+ - Domain name (for SSL)
17
+
18
+ ## Deployment Overview
19
+
20
+ ```
21
+ Internet --> nginx (SSL) --> Docker Containers
22
+ |
23
+ +--> frontend (3000)
24
+ +--> backend (3010)
25
+ +--> whatsapp (9400)
26
+ +--> redis (6379)
27
+ ```
28
+
29
+ ## Step 1: Server Setup
30
+
31
+ ```bash
32
+ # Update system
33
+ sudo apt update && sudo apt upgrade -y
34
+
35
+ # Install Docker
36
+ curl -fsSL https://get.docker.com | sh
37
+ sudo usermod -aG docker $USER
38
+
39
+ # Install Docker Compose
40
+ sudo apt install docker-compose-plugin
41
+
42
+ # Install nginx
43
+ sudo apt install nginx certbot python3-certbot-nginx
44
+ ```
45
+
46
+ ## Step 2: Clone and Configure
47
+
48
+ ```bash
49
+ # Clone repository
50
+ cd /opt
51
+ sudo git clone https://github.com/trohitg/MachinaOs.git
52
+ cd MachinaOs
53
+
54
+ # Create production environment file
55
+ sudo cp .env.example .env.prod
56
+ sudo nano .env.prod
57
+ ```
58
+
59
+ ### Production Environment
60
+
61
+ ```bash
62
+ # .env.prod
63
+ VITE_CLIENT_PORT=3000
64
+ PYTHON_BACKEND_PORT=3010
65
+ WHATSAPP_RPC_PORT=9400
66
+
67
+ # Security - CHANGE THESE
68
+ SECRET_KEY=your-random-64-char-string
69
+ JWT_SECRET_KEY=your-random-32-char-string
70
+ API_KEY_ENCRYPTION_KEY=your-random-64-char-string
71
+
72
+ # Authentication
73
+ AUTH_MODE=single
74
+ JWT_COOKIE_SECURE=true
75
+ JWT_COOKIE_SAMESITE=strict
76
+
77
+ # Cache
78
+ REDIS_ENABLED=true
79
+ REDIS_URL=redis://redis:6379
80
+
81
+ # CORS - your domain
82
+ CORS_ORIGINS=["https://your-domain.com"]
83
+
84
+ # Logging
85
+ LOG_LEVEL=INFO
86
+ DEBUG=false
87
+ ```
88
+
89
+ <Warning>
90
+ Generate secure random strings for SECRET_KEY, JWT_SECRET_KEY, and API_KEY_ENCRYPTION_KEY. Never use default values in production.
91
+ </Warning>
92
+
93
+ ## Step 3: Build and Start
94
+
95
+ ```bash
96
+ # Build production images
97
+ docker-compose -f docker-compose.prod.yml build
98
+
99
+ # Start services
100
+ docker-compose -f docker-compose.prod.yml up -d
101
+
102
+ # Verify containers
103
+ docker-compose -f docker-compose.prod.yml ps
104
+ ```
105
+
106
+ ## Step 4: Configure nginx
107
+
108
+ Create nginx configuration:
109
+
110
+ ```bash
111
+ sudo nano /etc/nginx/sites-available/machinaos
112
+ ```
113
+
114
+ ```nginx
115
+ server {
116
+ listen 80;
117
+ server_name your-domain.com;
118
+
119
+ location / {
120
+ return 301 https://$server_name$request_uri;
121
+ }
122
+ }
123
+
124
+ server {
125
+ listen 443 ssl http2;
126
+ server_name your-domain.com;
127
+
128
+ # SSL configuration (will be added by certbot)
129
+
130
+ # Frontend
131
+ location / {
132
+ proxy_pass http://127.0.0.1:3000;
133
+ proxy_http_version 1.1;
134
+ proxy_set_header Host $host;
135
+ proxy_set_header X-Real-IP $remote_addr;
136
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
137
+ proxy_set_header X-Forwarded-Proto $scheme;
138
+ }
139
+
140
+ # Backend API
141
+ location /api/ {
142
+ proxy_pass http://127.0.0.1:3010/api/;
143
+ proxy_http_version 1.1;
144
+ proxy_set_header Host $host;
145
+ proxy_set_header X-Real-IP $remote_addr;
146
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
147
+ proxy_set_header X-Forwarded-Proto $scheme;
148
+ }
149
+
150
+ # WebSocket
151
+ location /ws/ {
152
+ proxy_pass http://127.0.0.1:3010/ws/;
153
+ proxy_http_version 1.1;
154
+ proxy_set_header Upgrade $http_upgrade;
155
+ proxy_set_header Connection "upgrade";
156
+ proxy_set_header Host $host;
157
+ proxy_set_header X-Real-IP $remote_addr;
158
+ proxy_read_timeout 86400;
159
+ }
160
+
161
+ # Webhooks
162
+ location /webhook/ {
163
+ proxy_pass http://127.0.0.1:3010/webhook/;
164
+ proxy_http_version 1.1;
165
+ proxy_set_header Host $host;
166
+ proxy_set_header X-Real-IP $remote_addr;
167
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
168
+ }
169
+
170
+ # Health check
171
+ location /health {
172
+ proxy_pass http://127.0.0.1:3010/health;
173
+ }
174
+ }
175
+ ```
176
+
177
+ Enable the site:
178
+
179
+ ```bash
180
+ sudo ln -s /etc/nginx/sites-available/machinaos /etc/nginx/sites-enabled/
181
+ sudo nginx -t
182
+ sudo systemctl reload nginx
183
+ ```
184
+
185
+ ## Step 5: SSL Certificate
186
+
187
+ ```bash
188
+ # Get SSL certificate from Let's Encrypt
189
+ sudo certbot --nginx -d your-domain.com
190
+
191
+ # Auto-renewal is configured automatically
192
+ # Test renewal
193
+ sudo certbot renew --dry-run
194
+ ```
195
+
196
+ ## Step 6: Firewall
197
+
198
+ ```bash
199
+ # Allow required ports
200
+ sudo ufw allow 22/tcp # SSH
201
+ sudo ufw allow 80/tcp # HTTP (redirect)
202
+ sudo ufw allow 443/tcp # HTTPS
203
+ sudo ufw enable
204
+ ```
205
+
206
+ ## Verify Deployment
207
+
208
+ ```bash
209
+ # Check health endpoint
210
+ curl https://your-domain.com/health
211
+
212
+ # Check containers
213
+ docker-compose -f docker-compose.prod.yml ps
214
+
215
+ # View logs
216
+ docker-compose -f docker-compose.prod.yml logs -f
217
+ ```
218
+
219
+ ## Maintenance
220
+
221
+ ### Updates
222
+
223
+ ```bash
224
+ cd /opt/MachinaOs
225
+
226
+ # Pull latest code
227
+ git pull
228
+
229
+ # Rebuild and restart
230
+ docker-compose -f docker-compose.prod.yml down
231
+ docker-compose -f docker-compose.prod.yml up --build -d
232
+ ```
233
+
234
+ ### Backups
235
+
236
+ ```bash
237
+ # Backup database
238
+ docker cp machinaos-backend-1:/app/data/workflow.db ./backup/
239
+
240
+ # Backup WhatsApp session
241
+ docker cp machinaos-whatsapp-1:/app/data ./backup/whatsapp/
242
+ ```
243
+
244
+ ### Monitoring
245
+
246
+ ```bash
247
+ # Check resource usage
248
+ docker stats --no-stream
249
+
250
+ # Check logs for errors
251
+ docker-compose -f docker-compose.prod.yml logs --tail=100 backend
252
+ ```
253
+
254
+ ### Log Rotation
255
+
256
+ Add to `/etc/logrotate.d/docker`:
257
+
258
+ ```
259
+ /var/lib/docker/containers/*/*.log {
260
+ rotate 7
261
+ daily
262
+ compress
263
+ missingok
264
+ delaycompress
265
+ copytruncate
266
+ }
267
+ ```
268
+
269
+ ## Security Checklist
270
+
271
+ <Check>
272
+ All secret keys are randomly generated and unique
273
+ </Check>
274
+
275
+ <Check>
276
+ SSL/TLS is enabled with valid certificate
277
+ </Check>
278
+
279
+ <Check>
280
+ JWT_COOKIE_SECURE is set to true
281
+ </Check>
282
+
283
+ <Check>
284
+ CORS_ORIGINS only includes your domain
285
+ </Check>
286
+
287
+ <Check>
288
+ DEBUG is set to false
289
+ </Check>
290
+
291
+ <Check>
292
+ Firewall is configured
293
+ </Check>
294
+
295
+ <Check>
296
+ SSH key authentication (disable password auth)
297
+ </Check>
298
+
299
+ ## Troubleshooting
300
+
301
+ <Accordion title="502 Bad Gateway">
302
+ - Check if containers are running: `docker-compose ps`
303
+ - Verify ports match nginx config
304
+ - Check backend logs: `docker-compose logs backend`
305
+ </Accordion>
306
+
307
+ <Accordion title="WebSocket connection fails">
308
+ - Verify nginx WebSocket config has Upgrade headers
309
+ - Check proxy_read_timeout is set
310
+ - Ensure firewall allows connections
311
+ </Accordion>
312
+
313
+ <Accordion title="SSL certificate issues">
314
+ ```bash
315
+ # Renew certificate manually
316
+ sudo certbot renew --force-renewal
317
+ sudo systemctl reload nginx
318
+ ```
319
+ </Accordion>
320
+
321
+ <Accordion title="High memory usage">
322
+ - Check for memory leaks: `docker stats`
323
+ - Restart containers: `docker-compose restart`
324
+ - Increase server RAM if needed
325
+ </Accordion>
326
+
327
+ ## Scaling
328
+
329
+ For higher load:
330
+
331
+ 1. **Horizontal scaling**: Use Docker Swarm or Kubernetes
332
+ 2. **Database**: Migrate from SQLite to PostgreSQL
333
+ 3. **Cache**: Use Redis cluster
334
+ 4. **Load balancer**: Add HAProxy or cloud load balancer
335
+
336
+ ## Related
337
+
338
+ <CardGroup cols={2}>
339
+ <Card title="Docker Setup" icon="docker" href="/deployment/docker">
340
+ Local Docker development
341
+ </Card>
342
+ <Card title="Configuration" icon="gear" href="/installation">
343
+ Environment variables reference
344
+ </Card>
345
+ </CardGroup>
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://mintlify.com/docs.json",
3
+ "theme": "mint",
4
+ "name": "MachinaOs",
5
+ "colors": {
6
+ "primary": "#16A34A",
7
+ "light": "#07C983",
8
+ "dark": "#15803D"
9
+ },
10
+ "logo": {
11
+ "dark": "/logo/dark.svg",
12
+ "light": "/logo/light.svg"
13
+ },
14
+ "favicon": "/favicon.svg",
15
+ "navigation": {
16
+ "dropdowns": [
17
+ {
18
+ "dropdown": "Documentation",
19
+ "icon": "book",
20
+ "groups": [
21
+ {
22
+ "group": "Getting Started",
23
+ "pages": ["introduction", "installation", "quickstart"]
24
+ },
25
+ {
26
+ "group": "Tutorials",
27
+ "pages": [
28
+ "tutorials/first-workflow",
29
+ "tutorials/ai-agent-workflow",
30
+ "tutorials/whatsapp-automation",
31
+ "tutorials/android-automation"
32
+ ]
33
+ },
34
+ {
35
+ "group": "Node Catalog",
36
+ "pages": [
37
+ "nodes/overview",
38
+ "nodes/ai-models",
39
+ "nodes/ai-agent",
40
+ "nodes/whatsapp",
41
+ "nodes/android",
42
+ "nodes/webhooks",
43
+ "nodes/schedulers"
44
+ ]
45
+ },
46
+ {
47
+ "group": "Deployment",
48
+ "pages": ["deployment/docker", "deployment/production"]
49
+ },
50
+ {
51
+ "group": "FAQ",
52
+ "pages": ["faq"]
53
+ }
54
+ ]
55
+ }
56
+ ]
57
+ },
58
+ "navbar": {
59
+ "links": [
60
+ {
61
+ "label": "GitHub",
62
+ "href": "https://github.com/trohitg/MachinaOs"
63
+ }
64
+ ]
65
+ },
66
+ "footerSocials": {
67
+ "github": "https://github.com/trohitg/MachinaOs"
68
+ },
69
+ "feedback": {
70
+ "thumbsRating": true
71
+ },
72
+ "search": {
73
+ "prompt": "Search MachinaOs docs..."
74
+ }
75
+ }