Complete deployment: Nginx + Supervisor + Auto-deploy

This commit is contained in:
oguz ozturk 2026-01-10 13:22:26 +03:00
parent fef365d00d
commit e036139490
1 changed files with 232 additions and 0 deletions

232
DEPLOYMENT.md Normal file
View File

@ -0,0 +1,232 @@
# 🚀 Deployment Guide - Hosting Platform
## 📊 Server Information
**Server IP**: `176.96.129.77`
**OS**: Ubuntu 24.04 LTS
**RAM**: 4GB
**CPU**: 4 cores
---
## 🎯 Deployed Services
### ✅ Core Services
| Service | Port | URL | Status |
|---------|------|-----|--------|
| **Frontend (React)** | 3001 | http://176.96.129.77 | ✅ Running |
| **Backend API (Flask)** | 5000 | http://176.96.129.77/api | ✅ Running |
| **Gitea** | 3000 | http://176.96.129.77:3000 | ✅ Running |
| **PostgreSQL** | 5432 | localhost | ✅ Running |
| **Redis** | 6379 | localhost | ✅ Running |
| **Nginx** | 80 | http://176.96.129.77 | ✅ Running |
### 🔐 Credentials
**Gitea Admin**:
- Username: `hostadmin`
- Password: `HostAdmin2024!`
- Repository: http://176.96.129.77:3000/hostadmin/hosting-platform
**PostgreSQL**:
- User: `hosting_user`
- Password: `HostingDB2024!`
- Database: `hosting_db`
**Redis**:
- No password (localhost only)
---
## 🏗️ Architecture
```
Internet
┌─────────────────────────────────────┐
│ Nginx Reverse Proxy (Port 80) │
│ - Frontend: / │
│ - Backend API: /api │
│ - Webhook: /webhook │
└─────────────────────────────────────┘
├──────────────┬──────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│Frontend │ │ Backend │ │ Gitea │
│ :3001 │ │ :5000 │ │ :3000 │
└─────────┘ └──────────┘ └──────────┘
┌─────────┴─────────┐
▼ ▼
┌──────────┐ ┌─────────┐
│PostgreSQL│ │ Redis │
│ :5432 │ │ :6379 │
└──────────┘ └─────────┘
```
---
## 📁 Directory Structure
```
/opt/hosting-platform/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ ├── config.py
│ │ ├── models/
│ │ │ ├── __init__.py
│ │ │ └── domain.py
│ │ ├── services/
│ │ │ ├── __init__.py
│ │ │ └── cloudflare_service.py
│ │ └── api/
│ ├── venv/
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ ├── pages/
│ │ │ ├── DomainSetup.jsx
│ │ │ └── DomainList.jsx
│ │ └── services/
│ │ └── api.js
│ ├── package.json
│ └── vite.config.js
└── deploy.sh
```
---
## 🔄 Auto-Deploy Workflow
1. **Developer pushes code** to `main` branch
2. **Gitea webhook** triggers → `POST http://176.96.129.77:5000/webhook/deploy`
3. **Backend receives webhook** → Executes `/opt/hosting-platform/deploy.sh`
4. **Deploy script**:
- Pulls latest code from Git
- Installs dependencies
- Restarts services via Supervisor
---
## 🛠️ Management Commands
### Supervisor (Process Management)
```bash
# Check status
supervisorctl status
# Restart services
supervisorctl restart hosting-backend
supervisorctl restart hosting-frontend
# View logs
tail -f /var/log/hosting-backend.log
tail -f /var/log/hosting-frontend.log
# Stop/Start
supervisorctl stop hosting-backend
supervisorctl start hosting-backend
```
### Nginx
```bash
# Test configuration
nginx -t
# Reload
systemctl reload nginx
# Restart
systemctl restart nginx
# View logs
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
```
### Database
```bash
# Connect to PostgreSQL
psql -U hosting_user -d hosting_db
# Connect to Redis
redis-cli
```
---
## 🧪 Testing
### Health Check
```bash
curl http://176.96.129.77/health
```
### API Test
```bash
curl http://176.96.129.77/api/domains
```
### Frontend
Open browser: http://176.96.129.77
---
## 📝 Next Steps
1. ✅ **Add SSL Certificate** (Let's Encrypt)
2. ✅ **Configure Domain Name**
3. ✅ **Set up Monitoring** (Prometheus/Grafana)
4. ✅ **Add Backup System**
5. ✅ **Implement Authentication**
---
## 🆘 Troubleshooting
### Backend not starting
```bash
# Check logs
tail -f /var/log/hosting-backend.log
# Check if port is in use
lsof -i :5000
# Restart
supervisorctl restart hosting-backend
```
### Frontend not loading
```bash
# Check logs
tail -f /var/log/hosting-frontend.log
# Restart
supervisorctl restart hosting-frontend
```
### Database connection issues
```bash
# Check PostgreSQL status
systemctl status postgresql
# Check connections
psql -U hosting_user -d hosting_db -c "SELECT * FROM pg_stat_activity;"
```
---
**Deployment Date**: 2026-01-10
**Version**: 1.0.0
**Deployed By**: Hosting Platform Team