124 lines
3.1 KiB
Markdown
124 lines
3.1 KiB
Markdown
# PM2 Management Guide for Tilbudgivern
|
|
|
|
## Setup Complete! ✅
|
|
|
|
All services are now running under PM2 with:
|
|
- ✅ Auto-restart on crash
|
|
- ✅ File watching for auto-reload (unified server only)
|
|
- ✅ Environment variables from .env
|
|
- ✅ No sudo required for database access
|
|
- ✅ Proper logging
|
|
|
|
## Quick Commands
|
|
|
|
### Using the helper scripts:
|
|
```bash
|
|
# Start all services
|
|
bash start-with-pm2.sh
|
|
|
|
# Run complete build and test
|
|
bash build-and-test-complete.sh
|
|
```
|
|
|
|
### Using PM2 directly:
|
|
```bash
|
|
# Set node path first
|
|
export NODE_PATH="/home/alex/.vscode-server/cli/servers/Stable-7d842fb85a0275a4a8e4d7e040d2625abbf7f084/server/node"
|
|
|
|
# List all processes
|
|
$NODE_PATH /usr/local/bin/pm2 list
|
|
|
|
# View logs (live)
|
|
$NODE_PATH /usr/local/bin/pm2 logs
|
|
|
|
# View logs for specific service
|
|
$NODE_PATH /usr/local/bin/pm2 logs tilbudgivern-unified
|
|
|
|
# Monitor CPU/Memory
|
|
$NODE_PATH /usr/local/bin/pm2 monit
|
|
|
|
# Restart a service
|
|
$NODE_PATH /usr/local/bin/pm2 restart tilbudgivern-unified
|
|
|
|
# Restart all services
|
|
$NODE_PATH /usr/local/bin/pm2 restart all
|
|
|
|
# Stop a service
|
|
$NODE_PATH /usr/local/bin/pm2 stop tilbudgivern-unified
|
|
|
|
# Delete/remove a service
|
|
$NODE_PATH /usr/local/bin/pm2 delete tilbudgivern-unified
|
|
|
|
# View detailed info
|
|
$NODE_PATH /usr/local/bin/pm2 show tilbudgivern-unified
|
|
```
|
|
|
|
## Services Running
|
|
|
|
1. **tilbudgivern-unified** (Port 4031)
|
|
- Main application server
|
|
- Auto-reloads on file changes
|
|
- Serves React frontend
|
|
|
|
2. **analytics-api** (Port 4032)
|
|
- Analytics and reporting API
|
|
|
|
3. **carpenter-tasks-api** (Port 4033)
|
|
- Carpenter tasks management API
|
|
|
|
## Application URLs
|
|
|
|
- **Main App**: http://localhost:4031
|
|
- **Analytics API**: http://localhost:4032
|
|
- **Carpenter API**: http://localhost:4033
|
|
|
|
## Recent Changes ✨
|
|
|
|
1. **PM2 Management**: All services now run under PM2
|
|
2. **No Sudo Required**: Database credentials from .env file
|
|
3. **Two Markup Sliders**:
|
|
- Materials: 20% default (0-50% range)
|
|
- Labor: 2% default (0-20% range, 0.5% steps)
|
|
4. **Wall Height Fixed**: Now saves and loads correctly from database
|
|
|
|
## Troubleshooting
|
|
|
|
### If services don't start:
|
|
```bash
|
|
# Check PM2 status
|
|
$NODE_PATH /usr/local/bin/pm2 list
|
|
|
|
# View error logs
|
|
$NODE_PATH /usr/local/bin/pm2 logs --err
|
|
|
|
# Restart everything
|
|
bash start-with-pm2.sh
|
|
```
|
|
|
|
### If changes don't appear:
|
|
1. PM2 auto-reloads backend (watch mode enabled)
|
|
2. Frontend needs manual browser refresh (Ctrl+Shift+R)
|
|
|
|
### Database issues:
|
|
```bash
|
|
# Check .env file has correct credentials
|
|
cat .env | grep DB_
|
|
|
|
# Test database connection
|
|
mysql -u"${DB_USER}" -p"${DB_PASSWORD}" -h"${DB_HOST}" -e "SHOW DATABASES;"
|
|
```
|
|
|
|
## File Locations
|
|
|
|
- **PM2 Config**: `/mnt/HC_Volume_103713257/tilbudgivern/ecosystem.config.json`
|
|
- **PM2 Logs**: `/mnt/HC_Volume_103713257/tilbudgivern/logs/`
|
|
- **Environment**: `/mnt/HC_Volume_103713257/tilbudgivern/.env`
|
|
- **Frontend Build**: `/mnt/HC_Volume_103713257/tilbudgivern/frontend/build/`
|
|
|
|
## Auto-start on boot (optional)
|
|
|
|
To make PM2 start on system boot:
|
|
```bash
|
|
sudo env PATH=$PATH:/home/alex/.vscode-server/cli/servers/Stable-7d842fb85a0275a4a8e4d7e040d2625abbf7f084/server /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u alex --hp /home/alex
|
|
```
|