An open API service indexing awesome lists of open source software.

https://github.com/annamihailovna/prettypets-django-react

πŸ’πŸ±πŸΆΠŸΡ€ΠΎΠ΅ΠΊΡ‚ "PrettyPets" - ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„ΠΎΡ‚ΠΎ Π»ΡŽΠ±ΠΈΠΌΡ†Π΅Π². Π”Π΅ΠΏΠ»ΠΎΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр.
https://github.com/annamihailovna/prettypets-django-react

django-rest-framework gunicorn javascript nginx nodejs python

Last synced: 3 months ago
JSON representation

πŸ’πŸ±πŸΆΠŸΡ€ΠΎΠ΅ΠΊΡ‚ "PrettyPets" - ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΌΠ΅Π½Π° Ρ„ΠΎΡ‚ΠΎ Π»ΡŽΠ±ΠΈΠΌΡ†Π΅Π². Π”Π΅ΠΏΠ»ΠΎΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр.

Awesome Lists containing this project

README

          

## ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ "PrettyPets"
---
### ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
PrettyPets β€” ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ для ΠΎΠ±ΠΌΠ΅Π½Π° фотографиями Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΏΠΈΡ‚ΠΎΠΌΡ†Π΅Π².ΠŸΡ€ΠΎΠ΅ΠΊΡ‚
состоит ΠΈΠ· бэкСнд-прилоТСния Π½Π° Django ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-прилоТСния Π½Π° React.
Π”Π΅ΠΏΠ»ΠΎΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр.
Π’ PrettyPets ΠΌΠΎΠΆΠ½ΠΎ:
* Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.
* Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.
* Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.
* ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ окраску ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.
* Π Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ достиТСниях ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.
* Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π³ΠΎΠ΄ роТдСния ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°.
---
### Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
* Python 3.9
* Django REST
* Gunicorn
* Nginx
* JS
* Node.js
---
### Π”Π΅ΠΏΠ»ΠΎΠΉ
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌΡƒ сСрвСру
```
ssh -i ΠΏΡƒΡ‚ΡŒ_Π΄ΠΎ_SSH_ΠΊΠ»ΡŽΡ‡Π°/Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Ρ„Π°ΠΉΠ»Π°_с_SSH_ΠΊΠ»ΡŽΡ‡ΠΎΠΌ_Π±Π΅Π·_Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ login@ip
```
ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° сСрвСр
```
git clone git@github.com:AnnaMihailovna/prettypets-django-react.git
```
ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ backend-прилоТСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
```
cd prettypets-django-react/backend/
```
Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
```
python -m venv venv
```
АктивируСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
```
source venv/bin/activate
```
ОбновляСм pip Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ
```
pip install --upgrade pip
```
УстанавливаСм зависимости
```
pip install -r requirements.txt
```
Из Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Ρ„Π°ΠΉΠ» manage.py примСняСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
```
python manage.py migrate
```
Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
```
python manage.py createsuperuser
```
Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ статику бэкСнда
```
python manage.py collectstatic
```
Из корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° скопируСм статику бэкСнда Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ
```
sudo cp -r /home/yc-user/prettypets-django-react/backend/static_backend/ /var/www/kittygram/
```
ЗапускаСм Π²Π΅Π±-сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Django
```
python manage.py runserver
```
Π’ Ρ„Π°ΠΉΠ»Π΅ settings.py xxx.xxx.xxx.xxx ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ IP вашСго сСрвСра
```
ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx', '127.0.0.1', 'localhost']
```
Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° установитС зависимости для Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-прилоТСния. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ prettypets-django-react/frontend/ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
```
npm i
```
ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
```
npm run start
```
ΠŸΡ€ΠΎΠ²Π΅Ρ€Ρ‚Π΅ тСстовый запуск Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу
http://внСшний_ip_адрСс_сСрвСра:3000

### Установка ΠΈ запуск Gunicorn
На ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСрвСрС ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
```
pip install gunicorn==20.1.0
```
Из Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠΌ manage.py
```
gunicorn --bind 0.0.0.0:8000 backend.wsgi
```
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ - Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· статики
```
http://ваш_ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ_IP:8000/admin/
```
ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ ΠΈ запустим для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /etc/systemd/system/ создайтС Ρ„Π°ΠΉΠ» gunicorn.service ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² Nano
```
sudo nano /etc/systemd/system/gunicorn.service
```
ΠŸΠΎΠ΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠ΄ ΠΈΠ· листинга свои Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ этот ΠΊΠΎΠ΄ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Ρ„Π°ΠΉΠ» gunicorn.service ΠΈ сохранитС измСнСния
```
[Unit]
# Π­Ρ‚ΠΎ тСкстовоС описаниС ΡŽΠ½ΠΈΡ‚Π°, пояснСниС для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.
Description=gunicorn daemon

# УсловиС: ΠΏΡ€ΠΈ стартС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ процСсс Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ,
# ΠΊΠ°ΠΊ опСрационная систСма загрузится ΠΈ настроит ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти.
# Бсылка Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
# https://systemd.io/NETWORK_ONLINE/
After=network.target

[Service]
# ΠžΡ‚ Ρ‡ΡŒΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ запуск:
# ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ ΠΊ сСрвСру.
User=yc-user

# ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
# /home/<имя-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ-Π²-систСмС>/
# <дирСктория-с-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ>/<дирСктория-с-Ρ„Π°ΠΉΠ»ΠΎΠΌ-manage.py>/.
# НапримСр:
WorkingDirectory=/home/yc-user/prettypets-django-react/backend/

# ΠšΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ запускали Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ systemd:
# /home/<имя-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ-Π²-систСмС>/
# <дирСктория-с-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ>/<ΠΏΡƒΡ‚ΡŒ-Π΄ΠΎ-gunicorn-Π²-Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ> --bind 0.0.0.0:8000 backend.wsgi
ExecStart=/home/yc-user/prettypets-django-react/backend/venv/bin/gunicorn --bind 0.0.0.0:8000 backend.wsgi

[Install]
# Π’ этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ указываСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ запуска процСсса.
# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ systemd запустил процСсс,
# доступный всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ Π±Π΅Π· графичСского интСрфСйса.
WantedBy=multi-user.target
```
Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Gunicorn, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
```
which gunicorn
```
Π—Π°Π½ΠΎΠ²ΠΎ запуститС процСсс gunicorn.service
```
sudo systemctl start gunicorn
```
Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ процСсс Gunicorn Π² список автозапуска ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСрвСрС
```
sudo systemctl enable gunicorn
```
### Установка Nginx
ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСрвСрС, ΠΈΠ· любой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
```
sudo apt install nginx -y
sudo systemctl start nginx
```
Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ
```
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
```
Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»
```
sudo ufw enable
```
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ внСсённыС измСнСния
```
sudo ufw status
```
ЗапуститС сборку Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-прилоТСния ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ prettypets-django-react/frontend/
```
npm run build
```
Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Nginx (ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для доступа ΠΊ статичСским Ρ„Π°ΠΉΠ»Π°ΠΌ β€” /var/www/) содСрТимоС ΠΏΠ°ΠΏΠΊΠΈ .../frontend/build/
```
sudo cp -r /home/yc-user/prettypets-django-react/frontend/build/. /var/www/taski/
```
Π§Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΊΠΎΡ‚ΠΈΠΊΠΎΠ² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π½Π° сайтС, создайтС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ media Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /var/www/kittygram/. Django-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для хранСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ.
Π’ настройках бэкСнда для константы MEDIA_ROOT ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ созданной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ media.
ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ media, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Django-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ chown
```
sudo chown -R <имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ> /var/www/kittygram/media/
```

Π§Π΅Ρ€Π΅Π· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Nano ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Π΅Π±-сСрвСра
```
sudo nano /etc/nginx/sites-enabled/default
```
Π£Π΄Π°Π»ΠΈΡ‚Π΅ всС настройки ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈ сохранитС Π½ΠΎΠ²Ρ‹Π΅
```
server {

listen 80;
server_name ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ_ip_вашСго_ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ_сСрвСра;

location /api/ {
client_max_body_size 20M;
# Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° опрСдСляСт, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос.
proxy_pass http://127.0.0.1:8000;
}

location /admin/ {
client_max_body_size 20M;
proxy_pass http://127.0.0.1:8000;
}

location /media/ {
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8000;
}

location / {
root /var/www/taski;
index index.html index.htm;
try_files $uri /index.html;
}

}
```
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° ошибки
```
sudo nginx -t
```
ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Nginx
```
sudo systemctl reload nginx
```
Π’ Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ строку Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π²Π²Π΅Π΄ΠΈΡ‚Π΅ внСшний IP вашСго ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ сСрвСра Π±Π΅Π· указания ΠΏΠΎΡ€Ρ‚Π°.

Команда для просмотра Π»ΠΎΠ³Π° послСдних запросов
```
sudo tail /var/log/nginx/access.log
```
---
### ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΠΌΠΎ-Π²Π΅Ρ€ΡΠΈΡŽ
* [PrettyPets](https://prettykittygram.hopto.org)
---
### Над ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°(бэкСнд ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ)
[AnnaMihailovna](https://github.com/AnnaMihailovna/)