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,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>
|