Stabilize Lead Engine calendar logic (v1.4) and integrate GTM Architect, B2B Assistant, and Transcription Tool into Docker stack [30388f42]

This commit is contained in:
2026-03-08 08:46:25 +00:00
parent 57081bf102
commit 44502e5b2b
16 changed files with 451 additions and 136 deletions

View File

@@ -40,10 +40,10 @@ COPY gtm-architect/gtm_db_manager.py .
# Install Python and Node.js dependencies
RUN pip install --no-cache-dir -r requirements.txt
RUN npm install --omit=dev
RUN npm install --force
# Expose the port the server will run on
EXPOSE 3005
# Command to run the server, ensuring dependencies are fresh on start
CMD ["/bin/bash", "-c", "pip install --no-cache-dir -r requirements.txt && node server.cjs"]
# Command to run the server
CMD ["node", "server.cjs"]

View File

@@ -18,3 +18,20 @@ View your app in AI Studio: https://ai.studio/apps/drive/1bvzSOz-NYMzDph6718RuAy
2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key
3. Run the app:
`npm run dev`
## Docker Deployment (Plug & Play)
The **GTM Architect** is fully integrated into the project's `docker-compose.yml`.
### Start Service
```bash
# Build and start
docker-compose up -d --build gtm-architect
```
### Technical Specs
* **External Port:** `8094`
* **Subpath:** `/gtm/`
* **Persistence:** Data is stored in the `gtm_architect_data` Docker volume.
* **Self-Contained:** The image includes the built frontend and all Node.js/Python dependencies.

View File

@@ -8,8 +8,9 @@
"name": "roboplanet-gtm-architect",
"version": "0.0.0",
"dependencies": {
"cors": "^2.8.5",
"express": "^4.19.2",
"cors": "^2.8.6",
"dotenv": "^17.3.1",
"express": "^4.22.1",
"lucide-react": "^0.562.0",
"react": "^19.2.3",
"react-dom": "^19.2.3",
@@ -1575,9 +1576,9 @@
"license": "MIT"
},
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"version": "2.8.6",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
"integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
"license": "MIT",
"dependencies": {
"object-assign": "^4",
@@ -1585,6 +1586,10 @@
},
"engines": {
"node": ">= 0.10"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/express"
}
},
"node_modules/csstype": {
@@ -1665,6 +1670,18 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/dotenv": {
"version": "17.3.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
"integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",

View File

@@ -9,13 +9,14 @@
"preview": "vite preview"
},
"dependencies": {
"react": "^19.2.3",
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.0",
"react-dom": "^19.2.3",
"cors": "^2.8.6",
"dotenv": "^17.3.1",
"express": "^4.22.1",
"lucide-react": "^0.562.0",
"express": "^4.19.2",
"cors": "^2.8.5"
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.0"
},
"devDependencies": {
"@types/node": "^22.14.0",

View File

@@ -11,7 +11,7 @@ const port = 3005;
// --- DATABASE INITIALIZATION ---
// Initialize the SQLite database on startup to ensure the 'gtm_projects' table exists.
const dbScript = path.join(__dirname, '../gtm_db_manager.py'); // CORRECTED PATH
const dbScript = path.join(__dirname, 'gtm_db_manager.py'); // CORRECTED PATH
console.log(`[Init] Initializing database via ${dbScript}...`);
const initProcess = spawn('python3', [dbScript, 'init']);