Aggiungi script di debug e aggiornamenti alla configurazione per il deploy
All checks were successful
Deploy / deploy (push) Successful in 19s

This commit is contained in:
2026-01-23 10:33:31 +01:00
parent 001c88e529
commit 55e14a95ae
5 changed files with 341 additions and 1 deletions

View File

@@ -1,7 +1,8 @@
{
"permissions": {
"allow": [
"Bash(npm install)"
"Bash(npm install)",
"Bash(npm run build:*)"
]
}
}

View File

@@ -12,6 +12,11 @@ jobs:
- name: Checkout del codice
uses: actions/checkout@v3
- name: Crea file .env
run: |
echo "DOMAIN=${{ secrets.DOMAIN }}" > .env
cat .env
- name: Deploy
run: |
docker compose down --remove-orphans

238
TROUBLESHOOTING.md Normal file
View File

@@ -0,0 +1,238 @@
# Troubleshooting 404 Error
Se ottieni un errore 404 visitando il sito, segui questi passaggi:
## 1. Esegui lo Script di Debug
Sul server, nella directory del progetto:
```bash
chmod +x debug-server.sh
./debug-server.sh
```
Questo script ti mostrerà:
- Stato del container
- Logs
- File presenti in nginx
- Configurazione rete
- Labels Traefik
## 2. Problemi Comuni e Soluzioni
### ❌ Container non in esecuzione
**Verifica:**
```bash
docker ps -a | grep vue-demo-app
```
**Soluzione:**
```bash
docker-compose up -d
```
### ❌ File mancanti in /usr/share/nginx/html/
**Verifica:**
```bash
docker exec vue-demo-app ls -la /usr/share/nginx/html/
```
**Dovrebbe mostrare:**
- index.html
- assets/ (directory)
**Soluzione se i file mancano:**
```bash
# Rebuild completo
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```
### ❌ Rete web_proxy non esiste
**Verifica:**
```bash
docker network ls | grep web_proxy
```
**Soluzione:**
```bash
docker network create web_proxy
docker-compose restart
```
### ❌ Container non sulla rete corretta
**Verifica:**
```bash
docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}{{"\n"}}{{end}}'
```
**Soluzione:**
```bash
docker network connect web_proxy vue-demo-app
docker-compose restart
```
### ❌ Variabile DOMAIN non configurata
**Verifica:**
```bash
cat .env
```
**Soluzione:**
```bash
echo "DOMAIN=tuo-dominio.com" > .env
docker-compose down
docker-compose up -d
```
### ❌ Traefik non trova il container
**Verifica labels:**
```bash
docker inspect vue-demo-app | grep -A 20 Labels
```
**Verifica logs Traefik:**
```bash
docker logs traefik | grep vue-demo
```
**Possibili problemi:**
1. Dominio nel .env non corrisponde al DNS
2. Traefik non è sulla stessa rete del container
3. Labels Traefik non corretti
**Soluzione:**
```bash
# Ricrea container con labels corretti
docker-compose down
docker-compose up -d
# Verifica che entrambi siano sulla rete web_proxy
docker network inspect web_proxy
```
### ❌ Nginx restituisce 404
**Test diretto:**
```bash
# Ottieni IP del container
CONTAINER_IP=$(docker inspect vue-demo-app --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}')
# Test diretto (dall'interno del server)
curl http://$CONTAINER_IP
```
**Se questo funziona ma il dominio no, il problema è Traefik.**
**Se anche questo restituisce 404, il problema è nginx/build.**
**Soluzione problemi nginx:**
```bash
# Verifica file
docker exec vue-demo-app cat /usr/share/nginx/html/index.html
# Verifica configurazione nginx
docker exec vue-demo-app nginx -t
# Rebuild se necessario
docker-compose build --no-cache
docker-compose up -d
```
## 3. Verifica Configurazione Traefik
Assicurati che Traefik sia configurato correttamente:
### Verifica entrypoints:
```bash
docker inspect traefik | grep -i entrypoint
```
Dovrebbe avere:
- `web` su porta 80
- `websecure` su porta 443
### Verifica cert resolver:
```bash
docker inspect traefik | grep -i letsencrypt
```
Dovrebbe avere il resolver `letsencrypt` configurato.
### Verifica rete:
```bash
docker network inspect web_proxy
```
Traefik e vue-demo-app devono essere entrambi su questa rete.
## 4. Test Manuale Completo
```bash
# 1. Verifica DNS
nslookup tuo-dominio.com
# 2. Verifica rete
docker network inspect web_proxy
# 3. Verifica container
docker ps | grep vue-demo
# 4. Test interno
docker exec vue-demo-app wget -O - http://localhost
# 5. Verifica logs
docker logs vue-demo-app
docker logs traefik | grep vue-demo
# 6. Test dal server
curl -H "Host: tuo-dominio.com" http://localhost
# 7. Test esterno
curl https://tuo-dominio.com
```
## 5. Rebuild Completo (Last Resort)
Se nulla funziona:
```bash
# Stop tutto
docker-compose down
# Rimuovi immagini vecchie
docker rmi vue-demo:latest
docker system prune -f
# Verifica .env
cat .env
# Rebuild completo
docker-compose build --no-cache
# Verifica rete
docker network ls | grep web_proxy || docker network create web_proxy
# Avvia
docker-compose up -d
# Controlla logs
docker-compose logs -f
```
## 6. Contatta Supporto
Se dopo tutti questi passaggi il problema persiste, raccogli le seguenti informazioni:
```bash
./debug-server.sh > debug-output.txt
docker-compose logs > docker-logs.txt
```
E invia i file di output per ulteriore analisi.

72
debug-server.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/bin/bash
# Script di debug per diagnosticare problemi di deploy
echo "======================================"
echo " DIAGNOSTICA DEPLOY VUE APP"
echo "======================================"
echo ""
# 1. Verifica container in esecuzione
echo "1. Container in esecuzione:"
docker ps | grep vue-demo-app
if [ $? -eq 0 ]; then
echo "✅ Container trovato"
else
echo "❌ Container non trovato!"
fi
echo ""
# 2. Verifica logs container
echo "2. Ultimi logs del container:"
docker logs vue-demo-app --tail 20
echo ""
# 3. Verifica rete
echo "3. Reti del container:"
docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}: {{$value.IPAddress}}{{"\n"}}{{end}}'
echo ""
# 4. Verifica file dentro container
echo "4. File nella directory nginx:"
docker exec vue-demo-app ls -la /usr/share/nginx/html/
echo ""
# 5. Test nginx interno
echo "5. Test richiesta HTTP interna al container:"
docker exec vue-demo-app wget -O - http://localhost:80 2>/dev/null | head -20
echo ""
# 6. Verifica configurazione nginx
echo "6. Configurazione nginx:"
docker exec vue-demo-app cat /etc/nginx/conf.d/default.conf
echo ""
# 7. Verifica variabile DOMAIN
echo "7. Variabile DOMAIN nel .env:"
cat .env 2>/dev/null || echo "❌ File .env non trovato!"
echo ""
# 8. Verifica labels Traefik
echo "8. Labels Traefik del container:"
docker inspect vue-demo-app --format='{{range $key, $value := .Config.Labels}}{{$key}}: {{$value}}{{"\n"}}{{end}}' | grep traefik
echo ""
# 9. Verifica rete Traefik
echo "9. Verifica rete web_proxy:"
docker network inspect web_proxy --format='{{range .Containers}}{{.Name}}: {{.IPv4Address}}{{"\n"}}{{end}}' 2>/dev/null || echo "❌ Rete web_proxy non trovata!"
echo ""
# 10. Stato Traefik
echo "10. Container Traefik:"
docker ps | grep traefik
if [ $? -eq 0 ]; then
echo "✅ Traefik in esecuzione"
else
echo "❌ Traefik non trovato!"
fi
echo ""
echo "======================================"
echo " DIAGNOSTICA COMPLETATA"
echo "======================================"

24
quick-debug.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
echo "=== QUICK DEBUG ==="
echo ""
echo "1. Logs del container:"
docker logs vue-demo-app --tail 50
echo ""
echo "2. Processi in esecuzione nel container:"
docker exec vue-demo-app ps aux
echo ""
echo "3. File presenti in nginx:"
docker exec vue-demo-app ls -la /usr/share/nginx/html/
echo ""
echo "4. Porta 80 in ascolto?"
docker exec vue-demo-app netstat -tlnp 2>/dev/null || docker exec vue-demo-app ss -tlnp 2>/dev/null || echo "netstat/ss non disponibile"
echo ""
echo "5. Test configurazione nginx:"
docker exec vue-demo-app nginx -t
echo ""