1. SSH a tu servidor
ssh root@<server-ip>
2. Localiza las credenciales de acceso
- Usuario por defecto:
django - Contraseña almacenada en:
/root/.cloudzy-creds
(Opcional) Cambia la contraseña por defecto: passwd django
3. Cambia al usuario de la aplicación
su - django
4. PostgreSQL (opcional)
Si PostgreSQL está instalado, configura la base de datos y el usuario (ejemplo):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Luego actualiza settings.py DATABASES con el host localhost, nombre de la base de datos, usuario y contraseña. Ejecuta python manage.py migrate.
5. Despliega tu aplicación
Ya hay una aplicación de ejemplo Flask en ejecución, accesible en: http://<server-ip
Para desplegar tu propia aplicación:
- Ve al directorio de tu aplicación (o clona un nuevo proyecto):
cd~/django_app - (Opcional) Reemplaza la aplicación predeterminada:
gitclone<your_repo_url> . - Activa el entorno virtual:
sourcevenv/bin/activate - Instala los paquetes necesarios:
pip install -r requirements.txt - Ajusta
settings.py: estableceALLOWED_HOSTSa tu dominio/IP y asegúrate de queSTATIC_ROOTexista. - Migra la base de datos:
python manage.py migrate - Recopila los archivos estáticos en
STATIC_ROOT:python manage.py collectstatic --noinput - Reinicia Gunicorn para aplicar los cambios:
sudo systemctl restart gunicorn - Reiniciar Nginx:
sudo systemctl restart nginx
6. Accede a tu aplicación
Tu aplicación Django está disponible en: http://<server-ip
Nginx redirige las solicitudes a Gunicorn mediante un socket Unix.
7. ¿Cambiar el puerto o el dominio?
Para ajustar el dominio, el puerto o añadir SSL:
- Edita la configuración del sitio en Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Comprueba la configuración:
sudo nginx -t - Recarga Nginx:
sudo systemctl restart nginx
8. Habilitar HTTPS (opcional)
Usa Certbot para habilitar HTTPS.
Instala certbot:
sudo apt install certbot python3-certbot-nginx -y
Obtén los certificados y actualiza Nginx automáticamente:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx