# Anna Stockroom - Deployment Guide

## Quick Deployment

### 1. Upload Package
```bash
scp -r CleanPackage/ root@your-vps-ip:/var/www/anna-stockroom
```

### 2. Run Deployment Script
```bash
cd /var/www/anna-stockroom
chmod +x scripts/deploy.sh
./scripts/deploy.sh your-domain.com
```

### 3. Configure Environment
```bash
nano .env
# Update with your MongoDB URI, JWT secret, etc.
```

### 4. Setup Nginx
```bash
cp config/nginx.conf /etc/nginx/sites-available/anna-stockroom
ln -sf /etc/nginx/sites-available/anna-stockroom /etc/nginx/sites-enabled/
nginx -t && systemctl restart nginx
```

### 5. Install SSL
```bash
certbot --nginx -d your-domain.com
```

## Manual Deployment

### Prerequisites
- Node.js 16+
- MongoDB (Atlas recommended)
- Nginx
- PM2

### Steps
1. Extract package to `/var/www/anna-stockroom`
2. Run `npm install`
3. Configure `.env` file
4. Start with `pm2 start ecosystem.config.js`
5. Configure Nginx reverse proxy
6. Install SSL certificate

## Environment Variables

Required:
- `MONGODB_URI` - MongoDB connection string
- `JWT_SECRET` - 64+ character random string
- `DOMAIN` - Your domain name

Optional:
- Email settings for notifications
- Twilio settings for SMS
- Custom port (default: 3000)

## Verification

1. Check app status: `pm2 status`
2. Test API: `curl https://your-domain.com/api/health`
3. Access web interface: `https://your-domain.com`

## Troubleshooting

- Check logs: `pm2 logs anna-stockroom`
- Restart app: `pm2 restart anna-stockroom`
- Check Nginx: `nginx -t`
- View system logs: `journalctl -u nginx`