1. SSH to Your Server
ssh root@<server-ip>
2. Find Login Credentials
- Default user:
django
- Password stored in:
/root/.cloudzy-creds
(Optional) Change the default password: passwd django
3. Switch to the App User
su - django
4. PostgreSQL (Optional)
If PostgreSQL was installed, set up DB and user (example):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD '<password>';
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Then update settings.py
DATABASES
with host localhost
, database name, user, and password. Run python manage.py migrate
.
5. Deploy Your App
A sample Flask app is already running and accessible at: http://<server-ip
To deploy your own app:
- Navigate to your application directory (or clone a new project):
cd
~/django_app
- (Optional) Replace default app:
git
clone
<your_repo_url> .
- Activate the virtual environment:
source
venv/bin/activate
- Install required packages:
pip install -r requirements.txt
- Adjust
settings.py
: setALLOWED_HOSTS
to your domain/IP and ensureSTATIC_ROOT
exists. - Migrate database:
python manage.py migrate
- Collect static into
STATIC_ROOT
:python manage.py collectstatic --noinput
- Restart Gunicorn to apply changes:
sudo systemctl restart gunicorn
- Restart Nginx:
sudo systemctl restart nginx
6. Access Your App
Your Django app is available at: http://<server-ip
Nginx is reverse-proxying requests to Gunicorn via Unix socket.
7. Change Port or Domain?
To adjust domain, port, or add SSL:
- Edit Nginx site config:
sudo nano /etc/nginx/sites-available/gunicorn_django
- Test configuration:
sudo nginx -t
- Reload Nginx:
sudo systemctl restart nginx
8. Enable HTTPS (Optional)
Use Certbot to enable HTTPS.
Install certbot:
sudo apt install certbot python3-certbot-nginx -y
Get certificates & update Nginx automatically:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx