1. SSH al tuo server
ssh root@<server-ip>
2. Trova le credenziali di accesso
- Utente predefinito:
django - Password memorizzata in:
/root/.cloudzy-creds
(Facoltativo) Modifica la password predefinita: passwd django
3. Passa all'utente dell'app
su - django
4. PostgreSQL (facoltativo)
Se PostgreSQL è stato installato, configurare il database e l'utente (esempio):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Quindi aggiornare settings.py DATABASES con ospite localhost, nome del database, utente e password. Esegui python manage.py migrate.
5. Distribuisci la tua app
Un'app Flask di esempio è già in esecuzione e accessibile all'indirizzo: http://<server-ip
Per distribuire la tua app:
- Passa alla directory dell'applicazione (o clona un nuovo progetto):
cd~/django_app - (Facoltativo) Sostituisci app predefinita:
gitclone<your_repo_url> . - Attiva l'ambiente virtuale:
sourcevenv/bin/activate - Installa i pacchetti richiesti:
pip install -r requirements.txt - Regolare
settings.py: impostareALLOWED_HOSTSal tuo dominio/IP e assicurati cheSTATIC_ROOTesiste. - Migrazione del database:
python manage.py migrate - Raccogliere elettricità statica in
STATIC_ROOT:python manage.py collectstatic --noinput - Riavvia Gunicorn per applicare le modifiche:
sudo systemctl restart gunicorn - Riavvia Nginx:
sudo systemctl restart nginx
6. Accedi alla tua app
Your Django app is available at: http://<server-ip
Nginx sta inoltrando le richieste a Gunicorn tramite socket Unix.
7. Cambiare porta o dominio?
Per modificare il dominio, la porta o aggiungere SSL:
- Modifica la configurazione del sito Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Configurazione di prova:
sudo nginx -t - Ricarica Nginx:
sudo systemctl restart nginx
8. Abilita HTTPS (facoltativo)
Utilizza Certbot per abilitare HTTPS.
Installa certbot:
sudo apt install certbot python3-certbot-nginx -y
Ottieni certificati e aggiorna Nginx automaticamente:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx