67 lines
1.8 KiB
Bash
67 lines
1.8 KiB
Bash
#!/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"
|