Социальная сеть для любителей котиков. Здесь можно добавлять фото и достижения любимых пушистых хвостиков.
В проекте infra_sprint1 можно добавлять фото и достижения любимых пушистых хвостиков, а так же просматривать котиков других пользователей.
- Клонируйте репозитоий:
git clone https://github.com/ZebraHr/infra_sprint1.git
- Перейдите в папку проекта:
cd infra_sprint1
- Создайте и активируйте виртуальное окружение:
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
- Установите зависимости:
pip install -r requirements.txt
- Сделайте миграции:
cd backend/cats
python manage.py migrate
- Создайте суперпользователя:
python manage.py createsuperuser
- Отредактируйте файл settings.py:
# Вместо xxx.xxx.xxx.xxx укажите IP вашего сервера.
ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx', '127.0.0.1', 'localhost']
- Установте на сервер Node.js:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
- Установите зависимости для frontend:
cd infra_sprint1/frontend/
npm i
- Установите пакет gunicorn:
pip install gunicorn==20.1.0
- Создайте файл конфигурации для автозапуска WSGi-сервера:
sudo nano /etc/systemd/system/gunicorn_kittygram.service
- Внесите в него следующие настройки:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User= <имя пользователя>
WorkingDirectory=/home/<имя пользователя>/infra_sprint1/backend/
ExecStart=/home/<имя пользователя>/infra_sprint1/backend/venv/bin/gunicorn --bind 0.0.0.0:8080 kittygram_backend.wsgi
[Install]
WantedBy=multi-user.target
- Запустите gunicorn:
sudo systemctl start gunicorn_kittygram
sudo systemctl enable gunicorn_kittygram
python manage.py collectstatic
- Скопируйте директорию static_backend/ в директорию /var/www/kittygram/
sudo cp -r /home/yc-user/infra_sprint1/backend/static_backend/ /var/www/kittigram/
sudo systemctl restart gunicorn_kittygram
- Запустите сборку frontend приложения:
cd infra_sprrint1/frontend
npm run build
- Перейдите в файл конфигурации веб-сервера и измените его настройки на следующие:
server {
server_name server_name <публичный-IP-адрес> <доменное-имя>;
location /api/ {
proxy_pass http://127.0.0.1:8080;
}
location /admin/ {
proxy_pass http://127.0.0.1:8080;
}
location /media/ {
alias /var/www/infra_sprint1/media/;
}
location / {
root /var/www/infra_sprint1;
index index.html index.htm;
try_files $uri /index.html;
}
}
- Перезарузите Nginx:
sudo nginx -t
sudo systemctl reload nginx
- Откройте порты для фаервола и активируйте его:
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
- (Опционально) Получите SSL-сертификат для вашего доменного имени с помощью Certbot:
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
Анна Победоносцева