3.6 KiB
3.6 KiB
NetGescon Docker Pack - VM Ubuntu nuova
Questa cartella contiene tutto il necessario per preparare una nuova VM Ubuntu e avviare NetGescon con 3 domini:
www.netgescon.it(presentazione)app.netgescon.it(produzione)demo.netgescon.it(demo)
Contenuto pronto all'uso
docker-compose.multisite.yml.env.multisite.examplenginx/prod.confnginx/demo.confwww/index.htmlprovision-vm.shinstall-dev-tools.shdeploy-multisite.shupdate-multisite.shbackup-multisite.sh
0) Prerequisiti DNS/Router
Prima di tutto:
- Punta i record A dei domini verso IP pubblico della VM/linea:
www.netgescon.itapp.netgescon.itdemo.netgescon.it
- Apri/NAT verso la VM le porte:
80/tcp443/tcp
1) Preparazione VM (una volta sola)
Da repo netgescon-laravel:
cd /percorso/netgescon-laravel/docker
chmod +x provision-vm.sh install-dev-tools.sh deploy-multisite.sh update-multisite.sh backup-multisite.sh
./provision-vm.sh
Logout/Login (o reboot) dopo provision-vm.sh per applicare gruppo Docker.
2) Opzionale: strumenti desktop VM
Se vuoi usare la VM anche come postazione operativa:
cd /percorso/netgescon-laravel/docker
./install-dev-tools.sh
Installa:
- VS Code
- XRDP (desktop remoto)
- ambiente desktop leggero (XFCE)
3) Configurazione ambiente
cd /percorso/netgescon-laravel
cp docker/.env.multisite.example docker/.env.multisite
nano docker/.env.multisite
Imposta almeno:
- password DB prod/demo
- email Let's Encrypt
- domini reali
4) Primo deploy
cd /percorso/netgescon-laravel/docker
./deploy-multisite.sh
5) Aggiornamenti online (procedura standard)
cd /percorso/netgescon-laravel/docker
./update-multisite.sh
La procedura fa:
- backup DB prod + demo
- aggiorna codice in base alla modalità scelta
- rebuild immagine app condivisa prod/demo
- restart container applicativi
- clean cache Laravel
Modalità update (senza Git obbligatorio)
Nel file docker/.env.multisite imposta UPDATE_MODE:
local: usa il codice già presente sulla VM (default)distro: scarica pacchetto privato autorizzato (DISTRO_UPDATE_URL+DISTRO_UPDATE_TOKEN)github: scarica pacchetto release pubblico (GITHUB_RELEASE_URL)
6) Backup manuale rapido
cd /percorso/netgescon-laravel/docker
./backup-multisite.sh
Dump in:
storage/backups/prod_*.sqlstorage/backups/demo_*.sql
7) Comandi utili
Stato container:
docker compose --env-file docker/.env.multisite -f docker/docker-compose.multisite.yml ps
Log in tempo reale:
docker compose --env-file docker/.env.multisite -f docker/docker-compose.multisite.yml logs -f --tail=200
Riavvio stack:
docker compose --env-file docker/.env.multisite -f docker/docker-compose.multisite.yml up -d
8) Esecuzione locale (senza server online)
Per girare tutto in locale su porte dedicate:
cd /percorso/netgescon-laravel
cp docker/.env.multisite.example docker/.env.local
docker compose --env-file docker/.env.local -f docker/docker-compose.local.yml up -d --build
URL locali:
- Produzione locale:
http://localhost:8080 - Demo locale:
http://localhost:8081 - Sito presentazione:
http://localhost:8082
Troubleshooting rapido
Errore exit code 127
Significa quasi sempre "comando non trovato".
Controlla:
which bash
which docker || true
docker compose version || true
docker-compose --version || true
Se Docker manca:
cd /percorso/netgescon-laravel/docker
./provision-vm.sh
Se Docker c'è ma non hai permessi:
sudo usermod -aG docker $USER
newgrp docker
docker ps