mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
dev day #80
This commit is contained in:
@@ -0,0 +1,252 @@
|
||||
# Docker Environment Status Report
|
||||
**Generated:** October 21, 2025 @ 09:45 AM
|
||||
**Environment:** Development (Docker)
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Overall Status: OPERATIONAL
|
||||
|
||||
All critical services are running and accepting connections. Minor health check issue on frontend (cosmetic - does not affect functionality).
|
||||
|
||||
---
|
||||
|
||||
## 📊 Container Status
|
||||
|
||||
### 1. **Backend (myclub-backend)** ✅ HEALTHY
|
||||
- **Container ID:** `2f6ca942fc79`
|
||||
- **Image:** `fotbal-club-backend`
|
||||
- **Status:** Up 16 minutes
|
||||
- **Health:** ✅ **HEALTHY**
|
||||
- **Port:** `8080:8080` (Host:Container)
|
||||
- **CPU Usage:** 0.00%
|
||||
- **Memory:** 49.86 MiB / 2 GiB
|
||||
- **Network I/O:** 1.51MB sent / 1.11MB received
|
||||
- **Health Check:** `wget http://localhost:8080/api/v1/health` → ✅ PASSING
|
||||
|
||||
**Backend API Response:**
|
||||
```json
|
||||
{
|
||||
"status": "ok"
|
||||
}
|
||||
```
|
||||
|
||||
**Recent Activity (Last 50 lines):**
|
||||
- ✅ API endpoints responding normally (200 OK)
|
||||
- ✅ Database queries executing successfully
|
||||
- ✅ Cache system operational
|
||||
- ✅ CORS configured properly
|
||||
- ✅ All routes accessible
|
||||
|
||||
**Sample Requests:**
|
||||
```
|
||||
GET /api/v1/settings → 200 (2.96ms)
|
||||
GET /api/v1/players → 200 (2.99ms)
|
||||
GET /api/v1/articles → 200 (1.91ms)
|
||||
GET /api/v1/sponsors → 200 (2.97ms)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. **Frontend (myclub-frontend)** ⚠️ UNHEALTHY (but functional)
|
||||
- **Container ID:** `26adece8cbc1`
|
||||
- **Image:** `fotbal-club-frontend`
|
||||
- **Status:** Up 16 minutes
|
||||
- **Health:** ⚠️ **UNHEALTHY** (false positive)
|
||||
- **Port:** `3000:80` (Host:Container)
|
||||
- **CPU Usage:** 0.00%
|
||||
- **Memory:** 15.95 MiB / 1 GiB
|
||||
- **Network I/O:** 435kB sent / 21.2MB received
|
||||
- **HTTP Status:** ✅ 200 OK (verified with curl)
|
||||
|
||||
**Health Check Issue:**
|
||||
The container health check is failing because:
|
||||
```
|
||||
Health Check: wget http://localhost:80/
|
||||
Error: "wget: can't connect to remote host: Connection refused"
|
||||
```
|
||||
|
||||
**Root Cause:** The health check is trying `localhost:80` from inside the container, but Nginx might be binding differently. However, **the frontend IS working perfectly** when accessed from the host machine at `http://localhost:3000`.
|
||||
|
||||
**Recent Activity:**
|
||||
- ✅ Serving React application successfully
|
||||
- ✅ All static assets loading (main.js, main.css)
|
||||
- ⚠️ Some missing image files (expected - need to be uploaded):
|
||||
- `/images/club-logo.png` → 404
|
||||
- `/images/club-opponent.png` → 404
|
||||
- `/images/news/placeholder.jpg` → 404
|
||||
- `/dist/img/logo-club-empty.svg` → 404
|
||||
|
||||
**User Access Logs:**
|
||||
```
|
||||
GET /admin/hraci → 200
|
||||
GET /admin/clanky → 200
|
||||
GET /admin/o-klubu → 200
|
||||
GET / → 200 (homepage working)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. **Database (myclub-db)** ✅ HEALTHY
|
||||
- **Container ID:** `7f5ef9341913`
|
||||
- **Image:** `postgres:15-alpine`
|
||||
- **Status:** Up 16 minutes
|
||||
- **Health:** ✅ **HEALTHY**
|
||||
- **Port:** `5432:5432` (Host:Container)
|
||||
- **CPU Usage:** 0.00%
|
||||
- **Memory:** 100.8 MiB / 2 GiB
|
||||
- **Network I/O:** 732kB sent / 1.13MB received
|
||||
- **Health Check:** `pg_isready -U postgres` → ✅ PASSING
|
||||
|
||||
**Database Configuration:**
|
||||
```
|
||||
User: postgres
|
||||
Database: fotbal_club
|
||||
Encoding: UTF-8
|
||||
Max Connections: 200
|
||||
Shared Buffers: 256MB
|
||||
```
|
||||
|
||||
**Recent Activity:**
|
||||
- ✅ Accepting connections
|
||||
- ✅ Query execution normal
|
||||
- ✅ GORM queries optimized and using prepared statements
|
||||
- ✅ No connection pool exhaustion
|
||||
|
||||
**Sample Queries:**
|
||||
```sql
|
||||
SELECT * FROM "sponsors" WHERE "deleted_at" IS NULL → 0.079ms
|
||||
SELECT * FROM "articles" WHERE featured = 't' → 0.062ms
|
||||
SELECT * FROM "players" → executing normally
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Port Mappings & Accessibility
|
||||
|
||||
| Service | Internal Port | External Port | Accessible From Host | Status |
|
||||
|---------|--------------|---------------|---------------------|--------|
|
||||
| Frontend | 80 | 3000 | http://localhost:3000 | ✅ Working |
|
||||
| Backend API | 8080 | 8080 | http://localhost:8080 | ✅ Working |
|
||||
| Database | 5432 | 5432 | localhost:5432 | ✅ Working |
|
||||
|
||||
**Verification:**
|
||||
```bash
|
||||
✅ curl http://localhost:3000/ → HTTP 200
|
||||
✅ curl http://localhost:8080/api/v1/health → {"status": "ok"}
|
||||
✅ Backend accessible from frontend (API calls working)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Important Notes
|
||||
|
||||
### 1. **Rich Text Editor CSS Fix Status**
|
||||
⚠️ **The CSS fix I applied is NOT yet active in the running container**
|
||||
|
||||
The changes made to fix the rich text editor visibility are in the source code:
|
||||
- ✅ `frontend/src/index.tsx` - CSS imports added
|
||||
- ✅ `frontend/src/components/common/CustomRichEditor.tsx` - Cleaned up
|
||||
|
||||
**However:** The Docker container is running a **pre-built** version of the frontend from before the fix.
|
||||
|
||||
**To apply the fix, you need to rebuild:**
|
||||
```bash
|
||||
# Option 1: Rebuild just the frontend
|
||||
docker-compose build frontend
|
||||
docker-compose up -d frontend
|
||||
|
||||
# Option 2: Rebuild everything
|
||||
docker-compose down
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 2. **Frontend Health Check False Positive**
|
||||
The frontend shows as "unhealthy" but is actually working perfectly. This is a Docker health check configuration issue, not a functional problem.
|
||||
|
||||
**To fix permanently (optional):**
|
||||
Edit `docker-compose.yml` line 76:
|
||||
```yaml
|
||||
# CURRENT (failing):
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:80/"]
|
||||
|
||||
# BETTER:
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:80/"]
|
||||
# or
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80/"]
|
||||
```
|
||||
|
||||
### 3. **Missing Static Files**
|
||||
These are expected missing files that should be uploaded via the admin panel:
|
||||
- Club logo
|
||||
- Club opponent logo
|
||||
- News placeholder images
|
||||
|
||||
These don't affect functionality - just placeholder images won't show.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Action Items
|
||||
|
||||
### Immediate (To Apply Rich Editor Fix):
|
||||
1. ⚠️ **Rebuild frontend container** to get the CSS fix:
|
||||
```bash
|
||||
docker-compose build frontend
|
||||
docker-compose restart frontend
|
||||
```
|
||||
|
||||
2. 🔄 **Clear browser cache** after restart:
|
||||
- Hard refresh: `Ctrl+Shift+R` (Linux/Windows) or `Cmd+Shift+R` (Mac)
|
||||
|
||||
### Optional Improvements:
|
||||
3. 🔧 Fix frontend health check in `docker-compose.yml`
|
||||
4. 📸 Upload club logos via admin panel to eliminate 404s
|
||||
5. 🗄️ Verify database migrations are complete
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Performance Summary
|
||||
|
||||
| Metric | Status | Details |
|
||||
|--------|--------|---------|
|
||||
| Backend Response Time | ✅ Excellent | 0.5-12ms average |
|
||||
| Memory Usage | ✅ Normal | All containers < 50% of limits |
|
||||
| CPU Usage | ✅ Idle | 0% (no active load) |
|
||||
| Network I/O | ✅ Healthy | Minimal overhead |
|
||||
| Database Queries | ✅ Optimized | Using prepared statements |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Reference Commands
|
||||
|
||||
```bash
|
||||
# View logs
|
||||
docker logs myclub-backend --tail 50
|
||||
docker logs myclub-frontend --tail 50
|
||||
docker logs myclub-db --tail 50
|
||||
|
||||
# Check health
|
||||
docker ps
|
||||
docker inspect myclub-backend --format='{{.State.Health.Status}}'
|
||||
|
||||
# Restart services
|
||||
docker-compose restart backend
|
||||
docker-compose restart frontend
|
||||
|
||||
# Rebuild and restart
|
||||
docker-compose build frontend
|
||||
docker-compose up -d
|
||||
|
||||
# Access database
|
||||
docker exec -it myclub-db psql -U postgres -d fotbal_club
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Conclusion
|
||||
|
||||
**System is fully operational** with one cosmetic health check warning that doesn't affect functionality.
|
||||
|
||||
**Next Step:** Rebuild the frontend container to apply the rich text editor CSS fix, then verify the editor is visible in the admin panel.
|
||||
Reference in New Issue
Block a user