@programinglive/dev-workflow-mcp-server 1.8.1 → 1.9.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.example +21 -1
- package/AGENTS.md +25 -0
- package/README.md +257 -672
- package/index.js +5 -4
- package/package.json +11 -6
- package/scripts/bootstrap-unix.sh +55 -0
- package/scripts/bootstrap-windows.ps1 +75 -0
- package/scripts/install-husky.js +43 -0
- package/scripts/setup-stack.js +436 -0
- package/tools/definitions.js +19 -0
- package/tools/handler-modules/commit-handlers.js +2 -1
- package/tools/handler-modules/index.js +13 -7
- package/tools/handler-modules/shared.js +7 -41
- package/tools/handler-modules/status-handlers.js +3 -1
- package/tools/handler-modules/workflow-handlers.js +26 -8
- package/workflow-state.js +10 -0
- package/.agent/workflows/dev-workflow-bugfix.md +0 -250
- package/.agent/workflows/dev-workflow-feature.md +0 -201
- package/.agent/workflows/dev-workflow-full-cycle.md +0 -400
- package/.agent/workflows/dev-workflow-refactor.md +0 -238
- package/.env.production +0 -16
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -25
- package/.github/pull_request_template.md +0 -22
- package/.github/workflows/github-release.yml +0 -131
- package/.husky/commit-msg +0 -3
- package/.husky/pre-commit +0 -2
- package/CHANGELOG.md +0 -1145
- package/docs/GCP_DEPLOYMENT.md +0 -298
- package/docs/NETLIFY_DEPLOYMENT.md +0 -125
- package/docs/PLESK_DEPLOYMENT.md +0 -170
- package/docs/PRD.md +0 -86
- package/docs/WORKFLOW-BEST-PRACTICES.md +0 -58
- package/docs/antigravity/EXAMPLES.md +0 -535
- package/docs/antigravity/GETTING-STARTED.md +0 -292
- package/docs/antigravity/TROUBLESHOOTING.md +0 -742
- package/docs/antigravity/WALKTHROUGH.md +0 -25
- package/docs/antigravity/WORKFLOW-TEMPLATES.md +0 -670
- package/docs/release-notes/RELEASE_NOTES.md +0 -524
- package/docs/web-dashboard.md +0 -175
- package/tailwind.config.js +0 -8
- package/tests/build.test.js +0 -74
- package/tests/db-adapters.test.js +0 -108
- package/tests/env-support.test.js +0 -46
- package/tests/exec.test.js +0 -35
- package/tests/handlers-commit.test.js +0 -174
- package/tests/handlers-release.test.js +0 -212
- package/tests/handlers-workflow.test.js +0 -68
- package/tests/handlers.test.js +0 -1142
- package/tests/hello-world.test.js +0 -13
- package/tests/mcpRegistry.test.js +0 -65
- package/tests/patch-release.test.js +0 -7
- package/tests/release-wrapper.test.js +0 -107
- package/tests/startup-resilience.test.js +0 -73
- package/tests/test-helpers.js +0 -50
- package/tests/workflowState.test.js +0 -520
- package/web/Dockerfile.api +0 -25
- package/web/README.md +0 -133
- package/web/__tests__/api/workflow-history.test.js +0 -63
- package/web/api-server.js +0 -211
- package/web/app/docs/page.tsx +0 -202
- package/web/app/favicon.ico +0 -0
- package/web/app/globals.css +0 -91
- package/web/app/history/page.tsx +0 -220
- package/web/app/layout.tsx +0 -39
- package/web/app/login/page.tsx +0 -142
- package/web/app/page.tsx +0 -13
- package/web/components/ApiReference.tsx +0 -20
- package/web/components/Features.tsx +0 -61
- package/web/components/Footer.tsx +0 -9
- package/web/components/Hero.tsx +0 -96
- package/web/components/History.tsx +0 -175
- package/web/components/Navbar.tsx +0 -208
- package/web/components/Terminal.tsx +0 -114
- package/web/components/ThemeProvider.tsx +0 -58
- package/web/eslint.config.mjs +0 -18
- package/web/lib/api-client.ts +0 -123
- package/web/lib/auth.js +0 -75
- package/web/lib/db.js +0 -131
- package/web/lib/docs.js +0 -73
- package/web/middleware/auth.js +0 -26
- package/web/netlify.toml +0 -8
- package/web/next.config.ts +0 -19
- package/web/package-lock.json +0 -10911
- package/web/package.json +0 -42
- package/web/postcss.config.mjs +0 -9
- package/web/public/assets/android-chrome-192x192.png +0 -0
- package/web/public/assets/android-chrome-512x512.png +0 -0
- package/web/public/assets/apple-touch-icon.png +0 -0
- package/web/public/assets/favicon-16x16.png +0 -0
- package/web/public/assets/favicon-32x32.png +0 -0
- package/web/public/assets/favicon.ico +0 -0
- package/web/public/assets/favicon.png +0 -0
- package/web/public/assets/logo.png +0 -0
- package/web/public/assets/og-preview.png +0 -0
- package/web/public/assets/site.webmanifest +0 -1
- package/web/public/file.svg +0 -1
- package/web/public/globe.svg +0 -1
- package/web/public/next.svg +0 -1
- package/web/public/vercel.svg +0 -1
- package/web/public/window.svg +0 -1
- package/web/scripts/db-query-history.js +0 -120
- package/web/scripts/smoke-test.js +0 -30
- package/web/server.js +0 -184
- package/web/tailwind.config.ts +0 -20
- package/web/tsconfig.json +0 -42
package/docs/GCP_DEPLOYMENT.md
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
# Deploying to Google Cloud Platform with Docker
|
|
2
|
-
|
|
3
|
-
This guide walks you through deploying the dev-workflow MCP server to Google Cloud Compute Engine using Docker and PostgreSQL.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
- Google Cloud Platform account with a Compute Engine instance running
|
|
8
|
-
- SSH access to your GCP instance
|
|
9
|
-
- Git installed locally and on GCP instance
|
|
10
|
-
- Basic familiarity with Docker and SSH
|
|
11
|
-
|
|
12
|
-
## Architecture Overview
|
|
13
|
-
|
|
14
|
-
The deployment consists of two Docker containers:
|
|
15
|
-
- **MCP Server**: Node.js application running the dev-workflow MCP server
|
|
16
|
-
- **PostgreSQL**: Database for persistent workflow state storage
|
|
17
|
-
|
|
18
|
-
Communication between your local MCP client and the cloud server happens via SSH tunneling.
|
|
19
|
-
|
|
20
|
-
## Step 1: Prepare Your GCP Instance
|
|
21
|
-
|
|
22
|
-
### 1.1 SSH into Your Instance
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
ssh your-username@YOUR_GCP_IP
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 1.2 Run the Setup Script
|
|
29
|
-
|
|
30
|
-
From your local machine, copy the setup script to your GCP instance:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
scp scripts/setup-gcp-instance.sh your-username@YOUR_GCP_IP:~/
|
|
34
|
-
ssh your-username@YOUR_GCP_IP 'bash ~/setup-gcp-instance.sh'
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
This script will:
|
|
38
|
-
- Install Docker and Docker Compose
|
|
39
|
-
- Install Git
|
|
40
|
-
- Create the application directory
|
|
41
|
-
|
|
42
|
-
**Note**: You may need to log out and back in for Docker group permissions to take effect.
|
|
43
|
-
|
|
44
|
-
## Step 2: Deploy the Application
|
|
45
|
-
|
|
46
|
-
### 2.1 Clone the Repository
|
|
47
|
-
|
|
48
|
-
On your GCP instance:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
cd ~/dev-workflow-mcp-server
|
|
52
|
-
git clone https://github.com/programinglive/dev-workflow-mcp-server.git .
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 2.2 Configure Environment Variables
|
|
56
|
-
|
|
57
|
-
Create a `.env` file from the production template:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
cp .env.production .env
|
|
61
|
-
nano .env
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Update the following values:
|
|
65
|
-
- `POSTGRES_PASSWORD`: Set a strong, unique password
|
|
66
|
-
- `DEV_WORKFLOW_DB_URL`: Update with the same password
|
|
67
|
-
- `DEV_WORKFLOW_USER_ID`: (Optional) Set your username
|
|
68
|
-
|
|
69
|
-
Example `.env`:
|
|
70
|
-
```bash
|
|
71
|
-
DEV_WORKFLOW_DB_TYPE=postgres
|
|
72
|
-
DEV_WORKFLOW_DB_URL=postgres://devworkflow:MySecureP@ssw0rd@postgres:5432/devworkflow
|
|
73
|
-
POSTGRES_PASSWORD=MySecureP@ssw0rd
|
|
74
|
-
DEV_WORKFLOW_USER_ID=dhika
|
|
75
|
-
NODE_ENV=production
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 2.3 Start the Containers
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
docker-compose up -d
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### 2.4 Verify Deployment
|
|
85
|
-
|
|
86
|
-
Check that both containers are running:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
docker-compose ps
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
You should see:
|
|
93
|
-
```
|
|
94
|
-
NAME STATUS
|
|
95
|
-
dev-workflow-mcp Up
|
|
96
|
-
dev-workflow-postgres Up (healthy)
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
View logs:
|
|
100
|
-
```bash
|
|
101
|
-
docker-compose logs -f mcp-server
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Step 3: Configure Local MCP Client
|
|
105
|
-
|
|
106
|
-
Update your local MCP client configuration to connect via SSH.
|
|
107
|
-
|
|
108
|
-
### Windows (Claude Desktop)
|
|
109
|
-
|
|
110
|
-
Edit `C:\Users\DHIKA\.gemini\antigravity\mcp_config.json`:
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"mcpServers": {
|
|
115
|
-
"dev-workflow": {
|
|
116
|
-
"command": "ssh",
|
|
117
|
-
"args": [
|
|
118
|
-
"-i", "C:\\Users\\DHIKA\\.ssh\\id_rsa",
|
|
119
|
-
"your-username@34.50.121.142",
|
|
120
|
-
"docker", "exec", "-i", "dev-workflow-mcp", "node", "/app/index.js"
|
|
121
|
-
]
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Linux/Mac
|
|
128
|
-
|
|
129
|
-
Edit your MCP config file:
|
|
130
|
-
|
|
131
|
-
```json
|
|
132
|
-
{
|
|
133
|
-
"mcpServers": {
|
|
134
|
-
"dev-workflow": {
|
|
135
|
-
"command": "ssh",
|
|
136
|
-
"args": [
|
|
137
|
-
"-i", "/home/user/.ssh/id_rsa",
|
|
138
|
-
"your-username@34.50.121.142",
|
|
139
|
-
"docker", "exec", "-i", "dev-workflow-mcp", "node", "/app/index.js"
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Important**: Replace:
|
|
147
|
-
- `your-username` with your actual GCP username
|
|
148
|
-
- `34.50.121.142` with your actual GCP external IP
|
|
149
|
-
- SSH key path with your actual key location
|
|
150
|
-
|
|
151
|
-
## Step 4: Test the Connection
|
|
152
|
-
|
|
153
|
-
### 4.1 Test SSH Connection
|
|
154
|
-
|
|
155
|
-
From your local machine:
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
ssh your-username@34.50.121.142 'docker exec -i dev-workflow-mcp node /app/index.js call get_workflow_status'
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
You should see the workflow status output.
|
|
162
|
-
|
|
163
|
-
### 4.2 Test via MCP Client
|
|
164
|
-
|
|
165
|
-
Restart your MCP client (e.g., Claude Desktop) and try using a dev-workflow command like `start_task`.
|
|
166
|
-
|
|
167
|
-
## Updating the Deployment
|
|
168
|
-
|
|
169
|
-
### Automated Deployment
|
|
170
|
-
|
|
171
|
-
Use the deployment script from your local machine:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
# Set environment variables
|
|
175
|
-
export GCP_USER=your-username
|
|
176
|
-
export GCP_HOST=34.50.121.142
|
|
177
|
-
export GCP_SSH_KEY=~/.ssh/id_rsa
|
|
178
|
-
|
|
179
|
-
# Run deployment
|
|
180
|
-
bash scripts/deploy-gcp.sh
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Manual Update
|
|
184
|
-
|
|
185
|
-
On your GCP instance:
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
cd ~/dev-workflow-mcp-server
|
|
189
|
-
git pull origin main
|
|
190
|
-
docker-compose down
|
|
191
|
-
docker-compose build --no-cache
|
|
192
|
-
docker-compose up -d
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
## Database Management
|
|
196
|
-
|
|
197
|
-
### Backup Database
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
docker exec dev-workflow-postgres pg_dump -U devworkflow devworkflow > backup.sql
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Restore Database
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
cat backup.sql | docker exec -i dev-workflow-postgres psql -U devworkflow devworkflow
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Access PostgreSQL Console
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
docker exec -it dev-workflow-postgres psql -U devworkflow devworkflow
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Common commands:
|
|
216
|
-
- `\dt` - List tables
|
|
217
|
-
- `\d table_name` - Describe table
|
|
218
|
-
- `SELECT * FROM workflow_state;` - View workflow data
|
|
219
|
-
|
|
220
|
-
## Troubleshooting
|
|
221
|
-
|
|
222
|
-
### Container Won't Start
|
|
223
|
-
|
|
224
|
-
Check logs:
|
|
225
|
-
```bash
|
|
226
|
-
docker-compose logs mcp-server
|
|
227
|
-
docker-compose logs postgres
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Database Connection Issues
|
|
231
|
-
|
|
232
|
-
Verify PostgreSQL is healthy:
|
|
233
|
-
```bash
|
|
234
|
-
docker-compose ps
|
|
235
|
-
docker exec dev-workflow-postgres pg_isready -U devworkflow
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### SSH Connection Fails
|
|
239
|
-
|
|
240
|
-
Test basic SSH:
|
|
241
|
-
```bash
|
|
242
|
-
ssh -v your-username@YOUR_GCP_IP
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Check SSH key permissions:
|
|
246
|
-
```bash
|
|
247
|
-
chmod 600 ~/.ssh/id_rsa
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### MCP Client Can't Connect
|
|
251
|
-
|
|
252
|
-
1. Verify SSH works: `ssh your-username@YOUR_GCP_IP 'echo test'`
|
|
253
|
-
2. Test Docker exec: `ssh your-username@YOUR_GCP_IP 'docker ps'`
|
|
254
|
-
3. Check MCP server: `ssh your-username@YOUR_GCP_IP 'docker logs dev-workflow-mcp'`
|
|
255
|
-
|
|
256
|
-
## Security Best Practices
|
|
257
|
-
|
|
258
|
-
1. **Change Default Passwords**: Always use strong, unique passwords in `.env`
|
|
259
|
-
2. **Firewall Configuration**: Only expose necessary ports (SSH port 22)
|
|
260
|
-
3. **SSH Key Authentication**: Disable password authentication, use SSH keys only
|
|
261
|
-
4. **Regular Updates**: Keep Docker images and system packages updated
|
|
262
|
-
5. **Backup Regularly**: Schedule automated database backups
|
|
263
|
-
|
|
264
|
-
## Performance Optimization
|
|
265
|
-
|
|
266
|
-
### Monitor Resource Usage
|
|
267
|
-
|
|
268
|
-
```bash
|
|
269
|
-
docker stats
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
### Increase PostgreSQL Performance
|
|
273
|
-
|
|
274
|
-
Edit `docker-compose.yml` to add PostgreSQL tuning:
|
|
275
|
-
|
|
276
|
-
```yaml
|
|
277
|
-
postgres:
|
|
278
|
-
environment:
|
|
279
|
-
POSTGRES_SHARED_BUFFERS: 256MB
|
|
280
|
-
POSTGRES_EFFECTIVE_CACHE_SIZE: 1GB
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
## Uninstalling
|
|
284
|
-
|
|
285
|
-
To completely remove the deployment:
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
cd ~/dev-workflow-mcp-server
|
|
289
|
-
docker-compose down -v # -v removes volumes (deletes data!)
|
|
290
|
-
cd ~
|
|
291
|
-
rm -rf dev-workflow-mcp-server
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
## Support
|
|
295
|
-
|
|
296
|
-
For issues or questions:
|
|
297
|
-
- GitHub Issues: https://github.com/programinglive/dev-workflow-mcp-server/issues
|
|
298
|
-
- Documentation: https://devworkflow.programinglive.com/
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
# Netlify Deployment Guide
|
|
2
|
-
|
|
3
|
-
Deploy the Dev Workflow web dashboard to Netlify for a public-facing documentation and demo site.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The web dashboard can be deployed to Netlify as a static Next.js application. This deployment mode provides:
|
|
8
|
-
|
|
9
|
-
- **Static documentation pages** - Full access to the `/docs` section
|
|
10
|
-
- **Demo interface** - Showcase the workflow features
|
|
11
|
-
- **API endpoints** - Serverless functions for version and npm download stats
|
|
12
|
-
|
|
13
|
-
> **Note:** Database features (history, summary) return placeholder data in this deployment mode. For full functionality with persistent data, use the [local development server](./web-dashboard.md) or [Plesk deployment](./PLESK_DEPLOYMENT.md).
|
|
14
|
-
|
|
15
|
-
## Live Site
|
|
16
|
-
|
|
17
|
-
The official deployment is available at:
|
|
18
|
-
- **Primary:** https://devworkflow.programinglive.com
|
|
19
|
-
- **Netlify:** https://devworkflow.netlify.app
|
|
20
|
-
|
|
21
|
-
## Prerequisites
|
|
22
|
-
|
|
23
|
-
- Netlify account (free tier works)
|
|
24
|
-
- Node.js 18+ for local builds
|
|
25
|
-
- Git repository connected to Netlify (optional, for auto-deploy)
|
|
26
|
-
|
|
27
|
-
## Quick Deploy
|
|
28
|
-
|
|
29
|
-
### Option 1: Netlify CLI
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# Install Netlify CLI
|
|
33
|
-
npm install -g netlify-cli
|
|
34
|
-
|
|
35
|
-
# Login to Netlify
|
|
36
|
-
netlify login
|
|
37
|
-
|
|
38
|
-
# Navigate to web directory
|
|
39
|
-
cd web
|
|
40
|
-
|
|
41
|
-
# Create new site and deploy
|
|
42
|
-
netlify sites:create --name your-site-name
|
|
43
|
-
netlify deploy --prod --build
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Option 2: Netlify Dashboard
|
|
47
|
-
|
|
48
|
-
1. Go to [app.netlify.com](https://app.netlify.com)
|
|
49
|
-
2. Click "Add new site" > "Import an existing project"
|
|
50
|
-
3. Connect your GitHub repository
|
|
51
|
-
4. Configure build settings:
|
|
52
|
-
- **Base directory:** `web`
|
|
53
|
-
- **Build command:** `npm run build`
|
|
54
|
-
- **Publish directory:** `.next`
|
|
55
|
-
5. Deploy
|
|
56
|
-
|
|
57
|
-
## Configuration
|
|
58
|
-
|
|
59
|
-
The `web/netlify.toml` file configures the build:
|
|
60
|
-
|
|
61
|
-
```toml
|
|
62
|
-
[build]
|
|
63
|
-
command = "npm run build"
|
|
64
|
-
publish = ".next"
|
|
65
|
-
|
|
66
|
-
[[plugins]]
|
|
67
|
-
package = "@netlify/plugin-nextjs"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Custom Domain Setup
|
|
71
|
-
|
|
72
|
-
1. Go to your site's **Domain management** in Netlify
|
|
73
|
-
2. Click **Add a domain**
|
|
74
|
-
3. Enter your subdomain (e.g., `devworkflow.yourdomain.com`)
|
|
75
|
-
4. Add a CNAME record in your DNS provider:
|
|
76
|
-
- **Host:** `devworkflow` (or your subdomain)
|
|
77
|
-
- **Value:** `your-site-name.netlify.app`
|
|
78
|
-
5. Click **Provision certificate** for HTTPS
|
|
79
|
-
|
|
80
|
-
## API Endpoints
|
|
81
|
-
|
|
82
|
-
The following API routes are available as Netlify Functions:
|
|
83
|
-
|
|
84
|
-
| Endpoint | Description |
|
|
85
|
-
| --- | --- |
|
|
86
|
-
| `/api/version` | Returns current package version |
|
|
87
|
-
| `/api/npm-downloads` | Returns monthly npm download count |
|
|
88
|
-
| `/api/summary` | Returns placeholder summary data |
|
|
89
|
-
| `/api/history` | Returns placeholder history data |
|
|
90
|
-
| `/api/docs` | Returns documentation content |
|
|
91
|
-
|
|
92
|
-
## Limitations
|
|
93
|
-
|
|
94
|
-
When deployed to Netlify (static mode):
|
|
95
|
-
|
|
96
|
-
- **No persistent database** - History and summary return empty/placeholder data
|
|
97
|
-
- **No real-time updates** - Data is static between deployments
|
|
98
|
-
- **Version is build-time** - Update `web/app/api/version/route.ts` before each release
|
|
99
|
-
|
|
100
|
-
## Updating the Deployment
|
|
101
|
-
|
|
102
|
-
### Manual Redeploy
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
cd web
|
|
106
|
-
netlify deploy --prod --build
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Auto-Deploy (Recommended)
|
|
110
|
-
|
|
111
|
-
Connect your GitHub repository to Netlify for automatic deployments on push to main branch.
|
|
112
|
-
|
|
113
|
-
## Troubleshooting
|
|
114
|
-
|
|
115
|
-
| Issue | Solution |
|
|
116
|
-
| --- | --- |
|
|
117
|
-
| 404 on custom domain | Provision SSL certificate in Netlify dashboard |
|
|
118
|
-
| Build fails | Ensure `web/package.json` has no native dependencies |
|
|
119
|
-
| Functions timeout | Netlify has 10s limit; optimize API routes |
|
|
120
|
-
|
|
121
|
-
## Related
|
|
122
|
-
|
|
123
|
-
- [Web Dashboard Guide](./web-dashboard.md)
|
|
124
|
-
- [Plesk Deployment](./PLESK_DEPLOYMENT.md)
|
|
125
|
-
- [Main README](../README.md)
|
package/docs/PLESK_DEPLOYMENT.md
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# Deploying dev-workflow-mcp-server to Plesk
|
|
2
|
-
|
|
3
|
-
This guide covers deploying the dev-workflow MCP server (Node.js backend + Next.js frontend) to Plesk hosting.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
- Plesk control panel access
|
|
8
|
-
- Node.js 18+ installed on the server
|
|
9
|
-
- Git installed on the server
|
|
10
|
-
- Domain/subdomain configured in Plesk
|
|
11
|
-
|
|
12
|
-
## Deployment Steps
|
|
13
|
-
|
|
14
|
-
### 1. Set Up Node.js Application in Plesk
|
|
15
|
-
|
|
16
|
-
1. Log in to Plesk control panel
|
|
17
|
-
2. Go to **Domains** → Select your domain
|
|
18
|
-
3. Click **Node.js** (or **Applications** if using newer Plesk)
|
|
19
|
-
4. Click **Add Application**
|
|
20
|
-
5. Configure:
|
|
21
|
-
- **Application root**: `/var/www/vhosts/yourdomain.com/dev-workflow-mcp-server` (or your path)
|
|
22
|
-
- **Startup file**: `index.js`
|
|
23
|
-
- **Node.js version**: 18.x or higher
|
|
24
|
-
- **Port**: Leave as auto (Plesk assigns a port)
|
|
25
|
-
|
|
26
|
-
### 2. Clone Repository
|
|
27
|
-
|
|
28
|
-
SSH into your Plesk server:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
cd /var/www/vhosts/yourdomain.com
|
|
32
|
-
git clone https://github.com/programinglive/dev-workflow-mcp-server.git
|
|
33
|
-
cd dev-workflow-mcp-server
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 3. Install Dependencies
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npm install
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 4. Build the Application
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npm run build
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
This builds:
|
|
49
|
-
- **Backend**: Vite bundle → `dist/index.mjs`
|
|
50
|
-
- **Frontend**: Next.js static + server → `web/.next/`
|
|
51
|
-
- **Docs**: HTML files → `dist/docs/`
|
|
52
|
-
|
|
53
|
-
### 5. Configure Environment (if needed)
|
|
54
|
-
|
|
55
|
-
Create `.env` file in the project root if you need custom settings:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# Example (adjust as needed)
|
|
59
|
-
NODE_ENV=production
|
|
60
|
-
PORT=3000
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 6. Start the Application
|
|
64
|
-
|
|
65
|
-
In Plesk:
|
|
66
|
-
1. Go back to **Node.js Applications**
|
|
67
|
-
2. Find your application
|
|
68
|
-
3. Click **Start** (or it may auto-start)
|
|
69
|
-
|
|
70
|
-
Alternatively, via SSH:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
npm start
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 7. Configure Reverse Proxy (Plesk)
|
|
77
|
-
|
|
78
|
-
Plesk automatically sets up a reverse proxy. Verify:
|
|
79
|
-
1. Go to **Domains** → Your domain → **Web Server Settings**
|
|
80
|
-
2. Ensure **Proxy** is enabled
|
|
81
|
-
3. Verify the proxy points to the Node.js app port
|
|
82
|
-
|
|
83
|
-
### 8. Verify Deployment
|
|
84
|
-
|
|
85
|
-
- Visit `https://yourdomain.com` → Should see the Next.js frontend
|
|
86
|
-
- Visit `https://yourdomain.com/docs` → Should see documentation
|
|
87
|
-
- Check browser console for any `_next/static` 500 errors
|
|
88
|
-
|
|
89
|
-
If you see 500 errors on `_next/static` requests:
|
|
90
|
-
- SSH to server and check logs: `tail -f /var/log/plesk/nodejs/yourdomain.com.log`
|
|
91
|
-
- Ensure `.next` directory exists: `ls -la web/.next/`
|
|
92
|
-
- Verify Node.js is running: `ps aux | grep node`
|
|
93
|
-
|
|
94
|
-
### 9. Set Up Auto-Restart (Optional)
|
|
95
|
-
|
|
96
|
-
In Plesk, the Node.js app should auto-restart on failure. To verify:
|
|
97
|
-
1. Go to **Node.js Applications**
|
|
98
|
-
2. Check **Restart policy** is set to auto-restart
|
|
99
|
-
|
|
100
|
-
### 10. Enable HTTPS (Recommended)
|
|
101
|
-
|
|
102
|
-
1. Go to **Domains** → Your domain → **SSL/TLS Certificates**
|
|
103
|
-
2. Click **Install** (use Let's Encrypt free certificate)
|
|
104
|
-
3. Plesk auto-redirects HTTP → HTTPS
|
|
105
|
-
|
|
106
|
-
## Troubleshooting
|
|
107
|
-
|
|
108
|
-
### `_next/static` returns 500
|
|
109
|
-
|
|
110
|
-
**Cause**: Next.js build output not deployed or server crashed.
|
|
111
|
-
|
|
112
|
-
**Fix**:
|
|
113
|
-
```bash
|
|
114
|
-
# SSH to server
|
|
115
|
-
npm run build --prefix web
|
|
116
|
-
npm start
|
|
117
|
-
# Check logs
|
|
118
|
-
tail -f /var/log/plesk/nodejs/yourdomain.com.log
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Application won't start
|
|
122
|
-
|
|
123
|
-
**Check**:
|
|
124
|
-
1. Node.js version: `node --version` (must be 18+)
|
|
125
|
-
2. Dependencies: `npm install`
|
|
126
|
-
3. Build output: `ls -la dist/` and `ls -la web/.next/`
|
|
127
|
-
4. Logs: Check Plesk control panel logs
|
|
128
|
-
|
|
129
|
-
### Port conflicts
|
|
130
|
-
|
|
131
|
-
Plesk assigns ports automatically. If you get a port conflict:
|
|
132
|
-
1. Go to **Node.js Applications** → Edit
|
|
133
|
-
2. Let Plesk auto-assign a new port
|
|
134
|
-
3. Restart the app
|
|
135
|
-
|
|
136
|
-
## Updating the Application
|
|
137
|
-
|
|
138
|
-
To deploy a new version:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
cd /var/www/vhosts/yourdomain.com/dev-workflow-mcp-server
|
|
142
|
-
git pull origin main
|
|
143
|
-
npm install
|
|
144
|
-
npm run build
|
|
145
|
-
# Plesk will auto-restart the app
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Or manually restart in Plesk control panel:
|
|
149
|
-
1. **Node.js Applications** → Select app → **Restart**
|
|
150
|
-
|
|
151
|
-
## Production Checklist
|
|
152
|
-
|
|
153
|
-
- [ ] Node.js 18+ installed
|
|
154
|
-
- [ ] `npm install` completed
|
|
155
|
-
- [ ] `npm run build` succeeded (no errors)
|
|
156
|
-
- [ ] `.next` directory exists with static files
|
|
157
|
-
- [ ] HTTPS/SSL certificate installed
|
|
158
|
-
- [ ] Reverse proxy configured
|
|
159
|
-
- [ ] Application started and running
|
|
160
|
-
- [ ] `https://yourdomain.com` loads without 500 errors
|
|
161
|
-
- [ ] `_next/static` assets load correctly
|
|
162
|
-
- [ ] Logs show no errors
|
|
163
|
-
|
|
164
|
-
## Support
|
|
165
|
-
|
|
166
|
-
For issues:
|
|
167
|
-
1. Check Plesk logs: `/var/log/plesk/nodejs/`
|
|
168
|
-
2. SSH and run `npm start` manually to see real-time errors
|
|
169
|
-
3. Verify Node.js and npm versions
|
|
170
|
-
4. Ensure all dependencies installed: `npm install`
|
package/docs/PRD.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Product Requirements Document (PRD)
|
|
2
|
-
|
|
3
|
-
## 1. Overview
|
|
4
|
-
- **Product**: Development Workflow MCP Server
|
|
5
|
-
- **Prepared by**: Cascade (AI assistant)
|
|
6
|
-
- **Date**: 2025-12-27
|
|
7
|
-
- **Status**: Live v1.8.0
|
|
8
|
-
|
|
9
|
-
## 2. Problem Statement
|
|
10
|
-
Developers need structured guidance to maintain disciplined workflows across projects. Existing tooling lacks enforcement of sequential best practices (testing, documentation, release hygiene) and offers limited visibility into historical task execution.
|
|
11
|
-
|
|
12
|
-
## 3. Goals & Objectives
|
|
13
|
-
1. Enforce a consistent, auditable development workflow across teams.
|
|
14
|
-
2. Provide actionable guidance for each workflow phase within IDE-integrated environments.
|
|
15
|
-
3. Maintain per-project, per-user workflow state while supporting shared infrastructure (e.g., SQLite summaries, dashboard).
|
|
16
|
-
4. **Support flexible data persistence**: Enable usage of various database backends (MySQL, PostgreSQL, SQLite) to adapt to different hosting and enterprise environments.
|
|
17
|
-
|
|
18
|
-
## 4. Non-Goals
|
|
19
|
-
- Replacing full-featured project management tools.
|
|
20
|
-
- Implementing source control hosting or CI/CD pipelines.
|
|
21
|
-
- Providing opinionated task estimation or prioritization features.
|
|
22
|
-
|
|
23
|
-
## 5. Target Users & Personas
|
|
24
|
-
- **Individual developers** seeking workflow discipline.
|
|
25
|
-
- **Team leads** requiring enforced process compliance.
|
|
26
|
-
- **Tool integrators** embedding MCP capabilities into IDEs or agents.
|
|
27
|
-
|
|
28
|
-
## 6. User Stories
|
|
29
|
-
1. As a developer, I want to be guided through the workflow steps so I can avoid skipping critical tasks.
|
|
30
|
-
2. As a team lead, I want an auditable history of workflow completion so I can ensure compliance.
|
|
31
|
-
3. As an integrator, I want a simple API (tools/prompts) so I can plug the MCP server into existing agent workflows.
|
|
32
|
-
4. As a devops engineer, I want to configure the server to use my existing database infrastructure (MySQL/PostgreSQL) instead of local files.
|
|
33
|
-
|
|
34
|
-
## 7. Functional Requirements
|
|
35
|
-
- Provide MCP tools covering the full workflow lifecycle (start task, fix, test, document, commit, release, complete).
|
|
36
|
-
- Persist workflow state per project and per user, with compatibility handling for legacy locations.
|
|
37
|
-
- Offer aggregated project summaries (JSON artifacts, Database sync, optional web dashboard).
|
|
38
|
-
- Guard release commands to ensure prerequisites are satisfied.
|
|
39
|
-
- Support `run_full_workflow` for scripted execution of all steps with validation.
|
|
40
|
-
- Web dashboard displays version dynamically from `package.json` via `/api/version` endpoint to stay in sync after releases.
|
|
41
|
-
- [x] **Consolidated CI/CD**: Unified release and publish workflows.
|
|
42
|
-
- [x] **Multi-Database Support**: SQLite, MySQL, and PostgreSQL adapters implemented and verified.
|
|
43
|
-
- [x] **Environment Configuration**: `.env` file support added.
|
|
44
|
-
- [x] **Comprehensive Testing**: Automated tests for DB adapters and environment loading.
|
|
45
|
-
- [x] **Modular Architecture**: Refactored handlers.js into focused handler modules for better maintainability.
|
|
46
|
-
- [x] **Test Organization**: Split monolithic test file into focused test modules with shared utilities.
|
|
47
|
-
- [x] **PRD Location**: Moved PRD.md to docs/ root for easier access.
|
|
48
|
-
- **Multi-Database Support**: Abstract the storage layer to support:
|
|
49
|
-
- SQLite (default/local)
|
|
50
|
-
- MySQL
|
|
51
|
-
- PostgreSQL
|
|
52
|
-
|
|
53
|
-
## 8. Technical Considerations
|
|
54
|
-
- Node.js (ESM) codebase leveraging `@modelcontextprotocol/sdk`.
|
|
55
|
-
- File-based state stored under `.state/users/<user>/workflow-state.json` with compatibility symlinks.
|
|
56
|
-
- **Database Abstraction**: Implement an Adapter/Repository pattern or use an ORM (e.g., Knex, Prisma, Drizzle) to support multiple SQL dialects.
|
|
57
|
-
- Vite build pipeline for distribution bundle; source usage recommended for MCP.
|
|
58
|
-
- Windows compatibility requirements (Python, Build Tools for native modules).
|
|
59
|
-
- **Deployment options**: Local development, Netlify (static), Plesk (full-featured).
|
|
60
|
-
|
|
61
|
-
## 9. Success Metrics
|
|
62
|
-
- ≥90% of workflow operations executed via MCP tools (vs. manual overrides).
|
|
63
|
-
- Reduction in release guard violations to <5% of attempts.
|
|
64
|
-
- Positive qualitative feedback on guidance clarity from pilot teams.
|
|
65
|
-
- Seamless switching between SQLite, MySQL, and PostgreSQL via configuration.
|
|
66
|
-
|
|
67
|
-
## 10. Milestones
|
|
68
|
-
1. **MVP**: Core workflow tools, state persistence, basic history (complete).
|
|
69
|
-
2. **Enhancements**: Improved project root detection, compatibility mirrors, `run_full_workflow` automation (complete).
|
|
70
|
-
3. **v1.5.0**: Netlify deployment support for static web dashboard (complete).
|
|
71
|
-
4. **v1.6.0+**: Dark/Light mode, UI Improvements (complete).
|
|
72
|
-
5. **Multi-Database Support**: Refactor storage layer to support MySQL and PostgreSQL (complete v1.7.1).
|
|
73
|
-
7. **v1.7.14 Performance & Resilience**: Implemented connection timeouts and optimized startup sequence for stdio clients (complete).
|
|
74
|
-
8. **v1.7.15 Schema Alignment**: Implemented Postgres/MySQL column normalization and automated integer User ID hashing for cross-dashboard compatibility (complete).
|
|
75
|
-
9. **Future**: Expanded dashboard analytics, customizable workflows, richer integrations.
|
|
76
|
-
|
|
77
|
-
## 11. Risks & Mitigations
|
|
78
|
-
- **Risk**: Workflow feels overly prescriptive. **Mitigation**: Provide escape hatches (`force_complete_task`, `drop_task`) with audit trails.
|
|
79
|
-
- **Risk**: State corruption due to concurrent access. **Mitigation**: File locking and defensive JSON parsing (existing code handles gracefully, but monitor).
|
|
80
|
-
- **Risk**: Integration friction with IDE clients. **Mitigation**: Maintain detailed README instructions and example configurations.
|
|
81
|
-
- **Risk**: Complicated setup for users not needing external DBs. **Mitigation**: Keep SQLite/File-system as the default zero-config option.
|
|
82
|
-
|
|
83
|
-
## 12. Open Questions
|
|
84
|
-
- Should additional workflow phases (e.g., design review) be supported?
|
|
85
|
-
- How should multi-branch workflows be represented in history summaries?
|
|
86
|
-
- What telemetry or analytics are acceptable within privacy constraints?
|