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:
@@ -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"]
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
27
gtm-architect/package-lock.json
generated
27
gtm-architect/package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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']);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user