Initial commit: Project Tracker - Node.js + Express + SQLite backend, dark-themed frontend\n\n- Express REST API (GET/POST/PUT/DELETE /api/projects)\n- SQLite database with better-sqlite3\n- Dark-themed single-page UI with filter bar and drill-down panel\n- nginx reverse proxy config\n- Deployment script
This commit is contained in:
66
deploy.sh
Normal file
66
deploy.sh
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# Project Tracker Deployment Script
|
||||
# Run on project-tracker (10.10.11.103) as root
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Project Tracker Deployment ==="
|
||||
|
||||
# 1. Install dependencies
|
||||
echo "[1/6] Installing nginx, node, npm..."
|
||||
apt-get update -qq
|
||||
apt-get install -y -qq nginx nodejs npm > /dev/null 2>&1
|
||||
|
||||
# 2. Create directories
|
||||
echo "[2/6] Creating directories..."
|
||||
mkdir -p /opt/project-tracker/backend /opt/project-tracker/data /opt/project-tracker/frontend
|
||||
|
||||
# 3. Install Node dependencies
|
||||
echo "[3/6] Installing Node dependencies..."
|
||||
cd /opt/project-tracker/backend
|
||||
npm install --silent express better-sqlite3 cors
|
||||
|
||||
# 4. Deploy backend server.js (already created locally and needs to be copied)
|
||||
# 5. Deploy frontend (already created locally and needs to be copied)
|
||||
# 6. Start services...
|
||||
|
||||
# 7. Set up systemd service
|
||||
echo "[4/6] Setting up systemd service..."
|
||||
cat > /etc/systemd/system/project-tracker.service << 'EOF'
|
||||
[Unit]
|
||||
Description=Project Tracker API
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/project-tracker/backend
|
||||
ExecStart=/usr/bin/node server.js
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable project-tracker
|
||||
systemctl restart project-tracker
|
||||
|
||||
# 8. Configure nginx
|
||||
echo "[5/6] Configuring nginx..."
|
||||
cp /opt/project-tracker/nginx.conf /etc/nginx/sites-available/project-tracker
|
||||
ln -sf /etc/nginx/sites-available/project-tracker /etc/nginx/sites-enabled/project-tracker
|
||||
nginx -t && systemctl reload nginx
|
||||
|
||||
# 9. Verify
|
||||
echo "[6/6] Verifying..."
|
||||
sleep 2
|
||||
curl -s http://localhost:3000/api/projects | head -c 100
|
||||
echo ""
|
||||
curl -s -o /dev/null -w "Frontend: %{http_code}\n" http://localhost/
|
||||
echo ""
|
||||
systemctl status project-tracker --no-pager | grep -E 'Active|loaded'
|
||||
echo ""
|
||||
echo "=== Done! ==="
|
||||
echo "Access at: http://10.10.11.103"
|
||||
Reference in New Issue
Block a user