1. SSH na swój serwer
ssh root@<server-ip>
2. Znajdź dane logowania
- Użytkownik domyślny:
django - Hasło przechowywane w:
/root/.cloudzy-creds
(Opcjonalnie) Zmień domyślne hasło: passwd django
3. Przełącz się na użytkownika aplikacji
su - django
4. PostgreSQL (Opcjonalnie)
Jeśli PostgreSQL został zainstalowany, skonfiguruj bazę danych i użytkownika (przykład):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Następnie zaktualizuj settings.py DATABASES z hostem localhost, nazwę bazy danych, użytkownika i hasło. Uruchom python manage.py migrate.
5. Wdróż swoją aplikację
Przykładowa aplikacja Flask jest już uruchomiona i dostępna pod adresem: http://<server-ip
Aby wdrożyć własną aplikację:
- Przejdź do katalogu aplikacji (lub sklonuj nowy projekt):
cd~/django_app - (Opcjonalnie) Zastąp domyślną aplikację:
gitclone<your_repo_url> . - Aktywuj środowisko wirtualne:
sourcevenv/bin/activate - Zainstaluj wymagane pakiety:
pip install -r requirements.txt - Dopasuj
settings.py: ustawALLOWED_HOSTSna swoją domenę/adres IP i upewnij się, żeSTATIC_ROOTistnieje. - Migruj bazę danych:
python manage.py migrate - Zbierz pliki statyczne do
STATIC_ROOT:python manage.py collectstatic --noinput - Zrestartuj Gunicorn, aby zastosować zmiany:
sudo systemctl restart gunicorn - Uruchom ponownie Nginx:
sudo systemctl restart nginx
6. Otwórz swoją aplikację
Twoja aplikacja Django jest dostępna pod adresem: http://<server-ip
Nginx przekierowuje żądania do Gunicorn przez gniazdo Unix.
7. Zmiana portu lub domeny?
Aby zmienić domenę, port lub dodać SSL:
- Edytuj konfigurację strony Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Konfiguracja testowa:
sudo nginx -t - Przeładuj Nginx:
sudo systemctl restart nginx
8. Włącz HTTPS (opcjonalnie)
Użyj Certbot, aby włączyć HTTPS.
Zainstaluj certbot:
sudo apt install certbot python3-certbot-nginx -y
Pobierz certyfikaty i zaktualizuj konfigurację Nginx automatycznie:
sudo certbot --nginx -d example.com
Test:
nginx -t && sudo systemctl reload nginx