auth/QUICK_DEPLOY.md

132 lines
2.6 KiB
Markdown

# Quick Deployment Reference - auth.livingai.app
## TL;DR - Quick Steps
### 1. Lightsail Setup
- Create Ubuntu 22.04 instance
- Attach static IP
- Open ports: 80, 443, 22
### 2. DNS Configuration
- Point `auth.livingai.app` A record to Lightsail static IP
### 3. Server Setup (SSH into server)
```bash
# Run setup script
cd ~ && wget https://your-repo/setup-server.sh
bash setup-server.sh
# OR manually:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs nginx git certbot python3-certbot-nginx
sudo npm install -g pm2
```
### 4. Deploy Application
```bash
cd ~/apps
git clone <your-repo-url> farm-auth-service
cd farm-auth-service
npm install --production
cp example.env .env
nano .env # Configure environment variables
```
### 5. Configure Nginx
```bash
sudo nano /etc/nginx/sites-available/auth.livingai.app
# Add configuration (see DEPLOYMENT_GUIDE.md)
sudo ln -s /etc/nginx/sites-available/auth.livingai.app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
### 6. SSL Certificate
```bash
sudo certbot --nginx -d auth.livingai.app
```
### 7. Start Application
```bash
cd ~/apps/farm-auth-service
pm2 start ecosystem.config.js
pm2 save
pm2 startup # Follow instructions
```
### 8. Configure Firewall
```bash
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
```
---
## Critical Configuration (.env)
**Required Settings:**
```env
NODE_ENV=production
PORT=3000
TRUST_PROXY=true
DATABASE_MODE=aws
AWS_REGION=ap-south-1
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
JWT_ACCESS_SECRET=generate_strong_secret_min_32_chars
JWT_REFRESH_SECRET=generate_strong_secret_min_32_chars
CORS_ALLOWED_ORIGINS=https://your-app-domain.com,https://app.livingai.app
```
**Generate JWT Secrets:**
```bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```
---
## Useful Commands
```bash
# View logs
pm2 logs auth-service
# Restart
pm2 restart auth-service
# Status
pm2 status
# Nginx logs
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
# Test API
curl https://auth.livingai.app/health
```
---
## Troubleshooting
**502 Bad Gateway?**
- Check PM2: `pm2 status`
- Check logs: `pm2 logs auth-service`
- Check Nginx: `sudo nginx -t`
**Can't connect to database?**
- Verify AWS credentials in .env
- Check SSM Parameter Store access
- Test connection: `node -e "require('./src/db')"`
**SSL issues?**
- Verify DNS: `nslookup auth.livingai.app`
- Renew cert: `sudo certbot renew`
---
For detailed instructions, see `DEPLOYMENT_GUIDE.md`