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.
- package/.env.template +71 -0
- package/LICENSE +21 -0
- package/README.md +87 -0
- package/bin/cli.js +159 -0
- package/client/.dockerignore +45 -0
- package/client/Dockerfile +68 -0
- package/client/eslint.config.js +29 -0
- package/client/index.html +13 -0
- package/client/nginx.conf +66 -0
- package/client/package.json +48 -0
- package/client/src/App.tsx +27 -0
- package/client/src/Dashboard.tsx +1173 -0
- package/client/src/ParameterPanel.tsx +301 -0
- package/client/src/components/AIAgentNode.tsx +321 -0
- package/client/src/components/APIKeyValidator.tsx +118 -0
- package/client/src/components/ClaudeChatModelNode.tsx +18 -0
- package/client/src/components/ConditionalEdge.tsx +189 -0
- package/client/src/components/CredentialsModal.tsx +306 -0
- package/client/src/components/EdgeConditionEditor.tsx +443 -0
- package/client/src/components/GeminiChatModelNode.tsx +18 -0
- package/client/src/components/GenericNode.tsx +357 -0
- package/client/src/components/LocationParameterPanel.tsx +154 -0
- package/client/src/components/ModelNode.tsx +286 -0
- package/client/src/components/OpenAIChatModelNode.tsx +18 -0
- package/client/src/components/OutputPanel.tsx +471 -0
- package/client/src/components/ParameterRenderer.tsx +1874 -0
- package/client/src/components/SkillEditorModal.tsx +417 -0
- package/client/src/components/SquareNode.tsx +797 -0
- package/client/src/components/StartNode.tsx +250 -0
- package/client/src/components/ToolkitNode.tsx +365 -0
- package/client/src/components/TriggerNode.tsx +463 -0
- package/client/src/components/auth/LoginPage.tsx +247 -0
- package/client/src/components/auth/ProtectedRoute.tsx +59 -0
- package/client/src/components/base/BaseChatModelNode.tsx +271 -0
- package/client/src/components/icons/AIProviderIcons.tsx +50 -0
- package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
- package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
- package/client/src/components/maps/index.ts +26 -0
- package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
- package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
- package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
- package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
- package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
- package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
- package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
- package/client/src/components/parameterPanel/index.ts +42 -0
- package/client/src/components/shared/DataPanel.tsx +142 -0
- package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
- package/client/src/components/ui/AIResultModal.tsx +204 -0
- package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
- package/client/src/components/ui/CodeEditor.tsx +81 -0
- package/client/src/components/ui/CollapsibleSection.tsx +88 -0
- package/client/src/components/ui/ComponentItem.tsx +154 -0
- package/client/src/components/ui/ComponentPalette.tsx +321 -0
- package/client/src/components/ui/ConsolePanel.tsx +1074 -0
- package/client/src/components/ui/ErrorBoundary.tsx +196 -0
- package/client/src/components/ui/InputNodesPanel.tsx +204 -0
- package/client/src/components/ui/MapSelector.tsx +314 -0
- package/client/src/components/ui/Modal.tsx +149 -0
- package/client/src/components/ui/NodeContextMenu.tsx +192 -0
- package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
- package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
- package/client/src/components/ui/SettingsPanel.tsx +243 -0
- package/client/src/components/ui/TopToolbar.tsx +736 -0
- package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
- package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
- package/client/src/config/antdTheme.ts +186 -0
- package/client/src/config/api.ts +54 -0
- package/client/src/contexts/AuthContext.tsx +221 -0
- package/client/src/contexts/ThemeContext.tsx +42 -0
- package/client/src/contexts/WebSocketContext.tsx +1971 -0
- package/client/src/factories/baseChatModelFactory.ts +256 -0
- package/client/src/hooks/useAndroidOperations.ts +164 -0
- package/client/src/hooks/useApiKeyValidation.ts +107 -0
- package/client/src/hooks/useApiKeys.ts +238 -0
- package/client/src/hooks/useAppTheme.ts +17 -0
- package/client/src/hooks/useComponentPalette.ts +51 -0
- package/client/src/hooks/useCopyPaste.ts +155 -0
- package/client/src/hooks/useDragAndDrop.ts +124 -0
- package/client/src/hooks/useDragVariable.ts +88 -0
- package/client/src/hooks/useExecution.ts +313 -0
- package/client/src/hooks/useParameterPanel.ts +176 -0
- package/client/src/hooks/useReactFlowNodes.ts +189 -0
- package/client/src/hooks/useToolSchema.ts +209 -0
- package/client/src/hooks/useWhatsApp.ts +196 -0
- package/client/src/hooks/useWorkflowManagement.ts +46 -0
- package/client/src/index.css +315 -0
- package/client/src/main.tsx +19 -0
- package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
- package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
- package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
- package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
- package/client/src/nodeDefinitions/chatNodes.ts +135 -0
- package/client/src/nodeDefinitions/codeNodes.ts +54 -0
- package/client/src/nodeDefinitions/documentNodes.ts +379 -0
- package/client/src/nodeDefinitions/index.ts +15 -0
- package/client/src/nodeDefinitions/locationNodes.ts +463 -0
- package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
- package/client/src/nodeDefinitions/skillNodes.ts +211 -0
- package/client/src/nodeDefinitions/toolNodes.ts +198 -0
- package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
- package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
- package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
- package/client/src/nodeDefinitions.ts +104 -0
- package/client/src/schemas/workflowSchema.ts +264 -0
- package/client/src/services/dynamicParameterService.ts +96 -0
- package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
- package/client/src/services/executionService.ts +232 -0
- package/client/src/services/workflowApi.ts +91 -0
- package/client/src/store/useAppStore.ts +582 -0
- package/client/src/styles/theme.ts +508 -0
- package/client/src/styles/zIndex.ts +17 -0
- package/client/src/types/ComponentTypes.ts +39 -0
- package/client/src/types/EdgeCondition.ts +231 -0
- package/client/src/types/INodeProperties.ts +288 -0
- package/client/src/types/NodeTypes.ts +28 -0
- package/client/src/utils/formatters.ts +33 -0
- package/client/src/utils/googleMapsLoader.ts +140 -0
- package/client/src/utils/locationUtils.ts +85 -0
- package/client/src/utils/nodeUtils.ts +31 -0
- package/client/src/utils/workflow.ts +30 -0
- package/client/src/utils/workflowExport.ts +120 -0
- package/client/src/vite-env.d.ts +12 -0
- package/client/tailwind.config.js +60 -0
- package/client/tsconfig.json +25 -0
- package/client/tsconfig.node.json +11 -0
- package/client/vite.config.js +35 -0
- package/docker-compose.prod.yml +107 -0
- package/docker-compose.yml +104 -0
- package/docs-MachinaOs/README.md +85 -0
- package/docs-MachinaOs/deployment/docker.mdx +228 -0
- package/docs-MachinaOs/deployment/production.mdx +345 -0
- package/docs-MachinaOs/docs.json +75 -0
- package/docs-MachinaOs/faq.mdx +309 -0
- package/docs-MachinaOs/favicon.svg +5 -0
- package/docs-MachinaOs/installation.mdx +160 -0
- package/docs-MachinaOs/introduction.mdx +114 -0
- package/docs-MachinaOs/logo/dark.svg +6 -0
- package/docs-MachinaOs/logo/light.svg +6 -0
- package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
- package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
- package/docs-MachinaOs/nodes/android.mdx +411 -0
- package/docs-MachinaOs/nodes/overview.mdx +181 -0
- package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
- package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
- package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
- package/docs-MachinaOs/quickstart.mdx +119 -0
- package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
- package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
- package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
- package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
- package/nul +0 -0
- package/package.json +70 -0
- package/scripts/build.js +158 -0
- package/scripts/check-ports.ps1 +33 -0
- package/scripts/clean.js +40 -0
- package/scripts/docker.js +93 -0
- package/scripts/kill-port.ps1 +154 -0
- package/scripts/start.js +210 -0
- package/scripts/stop.js +325 -0
- package/server/.dockerignore +44 -0
- package/server/Dockerfile +45 -0
- package/server/constants.py +249 -0
- package/server/core/__init__.py +1 -0
- package/server/core/cache.py +461 -0
- package/server/core/config.py +128 -0
- package/server/core/container.py +99 -0
- package/server/core/database.py +1211 -0
- package/server/core/logging.py +314 -0
- package/server/main.py +289 -0
- package/server/middleware/__init__.py +5 -0
- package/server/middleware/auth.py +89 -0
- package/server/models/__init__.py +1 -0
- package/server/models/auth.py +52 -0
- package/server/models/cache.py +24 -0
- package/server/models/database.py +211 -0
- package/server/models/nodes.py +455 -0
- package/server/package.json +9 -0
- package/server/pyproject.toml +72 -0
- package/server/requirements.txt +83 -0
- package/server/routers/__init__.py +1 -0
- package/server/routers/android.py +294 -0
- package/server/routers/auth.py +203 -0
- package/server/routers/database.py +151 -0
- package/server/routers/maps.py +142 -0
- package/server/routers/nodejs_compat.py +289 -0
- package/server/routers/webhook.py +90 -0
- package/server/routers/websocket.py +2127 -0
- package/server/routers/whatsapp.py +761 -0
- package/server/routers/workflow.py +200 -0
- package/server/services/__init__.py +1 -0
- package/server/services/ai.py +2415 -0
- package/server/services/android/__init__.py +27 -0
- package/server/services/android/broadcaster.py +114 -0
- package/server/services/android/client.py +608 -0
- package/server/services/android/manager.py +78 -0
- package/server/services/android/protocol.py +165 -0
- package/server/services/android_service.py +588 -0
- package/server/services/auth.py +131 -0
- package/server/services/chat_client.py +160 -0
- package/server/services/deployment/__init__.py +12 -0
- package/server/services/deployment/manager.py +706 -0
- package/server/services/deployment/state.py +47 -0
- package/server/services/deployment/triggers.py +275 -0
- package/server/services/event_waiter.py +785 -0
- package/server/services/execution/__init__.py +77 -0
- package/server/services/execution/cache.py +769 -0
- package/server/services/execution/conditions.py +373 -0
- package/server/services/execution/dlq.py +132 -0
- package/server/services/execution/executor.py +1351 -0
- package/server/services/execution/models.py +531 -0
- package/server/services/execution/recovery.py +235 -0
- package/server/services/handlers/__init__.py +126 -0
- package/server/services/handlers/ai.py +355 -0
- package/server/services/handlers/android.py +260 -0
- package/server/services/handlers/code.py +278 -0
- package/server/services/handlers/document.py +598 -0
- package/server/services/handlers/http.py +193 -0
- package/server/services/handlers/polyglot.py +105 -0
- package/server/services/handlers/tools.py +845 -0
- package/server/services/handlers/triggers.py +107 -0
- package/server/services/handlers/utility.py +822 -0
- package/server/services/handlers/whatsapp.py +476 -0
- package/server/services/maps.py +289 -0
- package/server/services/memory_store.py +103 -0
- package/server/services/node_executor.py +375 -0
- package/server/services/parameter_resolver.py +218 -0
- package/server/services/polyglot_client.py +169 -0
- package/server/services/scheduler.py +155 -0
- package/server/services/skill_loader.py +417 -0
- package/server/services/status_broadcaster.py +826 -0
- package/server/services/temporal/__init__.py +23 -0
- package/server/services/temporal/activities.py +344 -0
- package/server/services/temporal/client.py +76 -0
- package/server/services/temporal/executor.py +147 -0
- package/server/services/temporal/worker.py +251 -0
- package/server/services/temporal/workflow.py +355 -0
- package/server/services/temporal/ws_client.py +236 -0
- package/server/services/text.py +111 -0
- package/server/services/user_auth.py +172 -0
- package/server/services/websocket_client.py +29 -0
- package/server/services/workflow.py +597 -0
- package/server/skills/android-skill/SKILL.md +82 -0
- package/server/skills/assistant-personality/SKILL.md +45 -0
- package/server/skills/code-skill/SKILL.md +140 -0
- package/server/skills/http-skill/SKILL.md +161 -0
- package/server/skills/maps-skill/SKILL.md +170 -0
- package/server/skills/memory-skill/SKILL.md +154 -0
- package/server/skills/scheduler-skill/SKILL.md +84 -0
- package/server/skills/whatsapp-skill/SKILL.md +283 -0
- package/server/uv.lock +2916 -0
- package/server/whatsapp-rpc/.dockerignore +30 -0
- package/server/whatsapp-rpc/Dockerfile +44 -0
- package/server/whatsapp-rpc/Dockerfile.web +17 -0
- package/server/whatsapp-rpc/README.md +139 -0
- package/server/whatsapp-rpc/cli.js +95 -0
- package/server/whatsapp-rpc/configs/config.yaml +7 -0
- package/server/whatsapp-rpc/docker-compose.yml +35 -0
- package/server/whatsapp-rpc/docs/API.md +410 -0
- package/server/whatsapp-rpc/go.mod +67 -0
- package/server/whatsapp-rpc/go.sum +203 -0
- package/server/whatsapp-rpc/package.json +30 -0
- package/server/whatsapp-rpc/schema.json +1294 -0
- package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
- package/server/whatsapp-rpc/scripts/cli.js +162 -0
- package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
- package/server/whatsapp-rpc/src/go/config/config.go +49 -0
- package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
- package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
- package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
- package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
- package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
- package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
- package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
- package/server/whatsapp-rpc/web/app.py +609 -0
- package/server/whatsapp-rpc/web/requirements.txt +6 -0
- package/server/whatsapp-rpc/web/rpc_client.py +427 -0
- package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
- package/server/whatsapp-rpc/web/templates/base.html +150 -0
- package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
- package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
- package/server/whatsapp-rpc/web/templates/groups.html +328 -0
- package/server/whatsapp-rpc/web/templates/messages.html +465 -0
- package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
- package/server/whatsapp-rpc/web/templates/send.html +259 -0
- 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
|
+
}
|