Django Social Network - это социальная сеть на Django и React, где каждый зарегестрированый пользователь может добавить своих котиков для того что бы делиться их фотографиями и достижениями с другими пользователями.
1. Перейдите в директорию backend
проекта kittygram. Создайте виртуальное окружение и активируйте его.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Примените миграции.
python3 manage.py migrate
# Создайте суперпользователя.
python3 manage.py createsuperuser
# ~/kittygram_backend/.env
SECRET_KEY=your_secret_key
DEBUG=0
ALLOWED_HOSTS="xxx.xxx.xxx.xxx, 127.0.0.1, localhost, ваш_домен"
SECRET_KEY - это секретный ключ Django который можно сгенерировать тут или ввести свой.
DEBUG - это параметр режима отладки. 0
- режим отладки выключен (False), 1
- включен (True). Не меняйте если не собираетесь заниматься отладкой бекэнда.
ALLOWED_HOSTS - разрешенные адреса для доступа к бекенду. Для добавления своих IP адресов или присвоенных им доманных имен, добавьте их к существующим локальным адресам 127.0.0.1
и localhost
.
Пример отредактированного файла:
# ~/kittygram_backend/.env
SECRET_KEY=django-insecure-cg6*%6d432vgt#4!r3*$vmxm4)abgjw8mo!4y-q*uq1!4$-89$
DEBUG=0
ALLOWED_HOSTS="123.456.78.90, 127.0.0.1, localhost, yourhostname.com"
python3 manage.py collectstatic
sudo cp -r infra_sprint1/backend/static_backend /var/www/kittygram
Отредактируйте файл gunicorn_kittygram.service в директории infra
следующим образом заменив <username>
на имя своего пользователя:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=<username>
WorkingDirectory=/home/<username>/infra_sprint1/backend/
ExecStart=/home/<username>/infra_sprint1/backend/venv/bin/gunicorn --bind 0.0.0.0:8080 kittygram_backend.wsgi
[Install]
WantedBy=multi-user.target
sudo cp infra_sprint1/infra/gunicorn_kittygram.service /etc/systemd/system/
sudo systemctl start gunicorn_kittygram.service
sudo systemctl enable gunicorn_kittygram.service
npm i
npm run build
sudo cp -r infra_sprint1/frontend/build/. /var/www/kittygram/
sudo apt install nginx -y
sudo systemctl start nginx
Впишите свой ip и доменное имя в параметр server_name
server {
server_name 123.456.78.90 yourhostname.com;
location /api/ {
proxy_pass http://127.0.0.1:8080;
client_max_body_size 20M;
}
location /admin/ {
proxy_pass http://127.0.0.1:8080;
client_max_body_size 20M;
}
location /media/ {
root /var/www/kittygram/;
}
location / {
root /var/www/kittygram;
index index.html index.htm;
try_files $uri /index.html;
}
}
nginx -t
sudo systemctl reload nginx
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
В терминале выведется запрос на подтверждение операции. Введите y
и нажмите Enter
.
sudo ufw status
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx
Далее система попросит вас указать электронную почту и ответить на несколько вопро- сов. Сделайте это. Следующим шагом укажите имена, для которых вы хотели бы активировать HTTPS
sudo systemctl reload nginx