-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
95 additions
and
98 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,94 @@ | ||
# Как работать с репозиторием финального задания | ||
|
||
## Что нужно сделать | ||
# Kittygram | ||
Социальная сеть для любителей котиков. Здесь можно добавлять фото и достижения любимых пушистых хвостиков. | ||
Проект предназанчен для запуска на удаленном сервере. | ||
|
||
Настроить запуск проекта Kittygram в контейнерах и CI/CD с помощью GitHub Actions | ||
|
||
## Как проверить работу с помощью автотестов | ||
## Технологии: | ||
Python 3.9 | ||
Django 3.2.3 | ||
djangorestframework 3.12.4 | ||
Nginx | ||
gunicorn | ||
Docker | ||
|
||
В корне репозитория создайте файл tests.yml со следующим содержимым: | ||
```yaml | ||
repo_owner: ваш_логин_на_гитхабе | ||
kittygram_domain: полная ссылка (https://доменное_имя) на ваш проект Kittygram | ||
taski_domain: полная ссылка (https://доменное_имя) на ваш проект Taski | ||
dockerhub_username: ваш_логин_на_докерхабе | ||
## Описание работы: | ||
В проекте Kittygram_final для удаленного сервера можно добавлять фото и достижения любимых пушистых хвостиков, а так же просматривать котиков других пользователей. | ||
|
||
## Установка проекта | ||
- Сделайте fork репозитория, затем клонируйте его: | ||
``` | ||
git clone https://github.com/ZebraHr/kittygram_final | ||
``` | ||
- Для адаптации проекта на своем удаленном сервере добавьте секреты в GitHub Actions: | ||
``` | ||
DOCKER_USERNAME # имя пользователя в DockerHub | ||
DOCKER_PASSWORD # пароль пользователя в DockerHub | ||
HOST # ip_address сервера | ||
USER # имя пользователя | ||
SSH_KEY # приватный ssh-ключ (cat ~/.ssh/id_rsa) | ||
SSH_PASSPHRASE # кодовая фраза (пароль) для ssh-ключа | ||
TELEGRAM_TO # id телеграм-аккаунта (можно узнать у @userinfobot, команда /start) | ||
TELEGRAM_TOKEN # токен бота (получить токен можно у @BotFather, /token, имя бота) | ||
``` | ||
- На удаленном сервере создайте папку kittygram/ | ||
- На удаленном сервере в папке проекта cоздайте файл .env: | ||
``` | ||
POSTGRES_DB=<Желаемое_имя_базы_данных> | ||
POSTGRES_USER=<Желаемое_имя_пользователя_базы_данных> | ||
POSTGRES_PASSWORD=<Желаемый_пароль_пользователя_базы_данных> | ||
DB_HOST=db | ||
DB_PORT=5432 | ||
Скопируйте содержимое файла `.github/workflows/main.yml` в файл `kittygram_workflow.yml` в корневой директории проекта. | ||
SECRET_KEY = 'ваш_secret_key' | ||
ALLOWED_HOSTS = ip_удаленного сервера, 127.0.0.1, localhost | ||
DEBUG = False | ||
``` | ||
- Установка Nginx. Находясь на удалённом сервере, из любой директории выполните команду, затем запустите Nginx: | ||
``` | ||
sudo apt install nginx -y | ||
sudo systemctl start nginx | ||
``` | ||
- Перейдите в файл конфигурации nginx и измените его настройки на следующие: | ||
``` | ||
nano /etc/nginx/sites-enabled/default | ||
``` | ||
``` | ||
server { | ||
server_name server_name <публичный-IP-адрес> <доменное-имя>; | ||
location / { | ||
proxy_pass http://127.0.0.1:9000; | ||
} | ||
} | ||
``` | ||
- Перезарузите 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 | ||
``` | ||
- Пуш в ветку main запускает тестирование и деплой Kittygram на ваш удаленный сервер, а после успешного деплоя вам приходит оповещение в телеграм. | ||
|
||
Для локального запуска тестов создайте виртуальное окружение, установите в него зависимости из backend/requirements.txt и запустите в корневой директории проекта `pytest`. | ||
### Автор | ||
Анна Победоносцева | ||
|
||
## Чек-лист для проверки перед отправкой задания | ||
Студент Яндекс Практикума ["Python-разаботчик плюс"](https://practicum.yandex.ru/python-developer-plus/?from=catalog) | ||
|
||
- Проект Taski доступен по доменному имени, указанному в `tests.yml`. | ||
- Проект Kittygram доступен по доменному имени, указанному в `tests.yml`. | ||
- Пуш в ветку main запускает тестирование и деплой Kittygram, а после успешного деплоя вам приходит сообщение в телеграм. | ||
- В корне проекта есть файл `kittygram_workflow.yml`. | ||
GitHub: | ||
(https://github.com/ZebraHr) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,94 +1,23 @@ | ||
### Как запустить проект: | ||
|
||
# Kittygram | ||
Социальная сеть для любителей котиков. Здесь можно добавлять фото и достижения любимых пушистых хвостиков. | ||
Проект предназанчен для запуска на удаленном сервере. | ||
Клонировать репозиторий и перейти в него в командной строке: | ||
|
||
|
||
## Технологии: | ||
Python 3.9 | ||
Django 3.2.3 | ||
djangorestframework 3.12.4 | ||
Nginx | ||
gunicorn | ||
Docker | ||
|
||
## Описание работы: | ||
В проекте Kittygram_final для удаленного сервера можно добавлять фото и достижения любимых пушистых хвостиков, а так же просматривать котиков других пользователей. | ||
|
||
## Установка проекта | ||
- Сделайте fork репозитория, затем клонируйте его: | ||
``` | ||
git clone https://github.com/ZebraHr/kittygram_final | ||
git clone https://github.com/yandex-praktikum/kittygram_frontend.git | ||
``` | ||
- Для адаптации проекта на своем удаленном сервере добавьте секреты в GitHub Actions: | ||
``` | ||
DOCKER_USERNAME # имя пользователя в DockerHub | ||
DOCKER_PASSWORD # пароль пользователя в DockerHub | ||
HOST # ip_address сервера | ||
USER # имя пользователя | ||
SSH_KEY # приватный ssh-ключ (cat ~/.ssh/id_rsa) | ||
SSH_PASSPHRASE # кодовая фраза (пароль) для ssh-ключа | ||
|
||
TELEGRAM_TO # id телеграм-аккаунта (можно узнать у @userinfobot, команда /start) | ||
TELEGRAM_TOKEN # токен бота (получить токен можно у @BotFather, /token, имя бота) | ||
``` | ||
- На удаленном сервере создайте папку kittygram/ | ||
- На удаленном сервере в папке проекта cоздайте файл .env: | ||
``` | ||
POSTGRES_DB=<Желаемое_имя_базы_данных> | ||
POSTGRES_USER=<Желаемое_имя_пользователя_базы_данных> | ||
POSTGRES_PASSWORD=<Желаемый_пароль_пользователя_базы_данных> | ||
DB_HOST=db | ||
DB_PORT=5432 | ||
SECRET_KEY = 'ваш_secret_key' | ||
ALLOWED_HOSTS = ip_удаленного сервера, 127.0.0.1, localhost | ||
DEBUG = False | ||
``` | ||
- Установка Nginx. Находясь на удалённом сервере, из любой директории выполните команду, затем запустите Nginx: | ||
``` | ||
sudo apt install nginx -y | ||
sudo systemctl start nginx | ||
``` | ||
- Перейдите в файл конфигурации nginx и измените его настройки на следующие: | ||
cd kittygram_frontend | ||
``` | ||
nano /etc/nginx/sites-enabled/default | ||
``` | ||
``` | ||
server { | ||
server_name server_name <публичный-IP-адрес> <доменное-имя>; | ||
|
||
location / { | ||
proxy_pass http://127.0.0.1:9000; | ||
} | ||
Установить зависимости: | ||
|
||
} | ||
``` | ||
- Перезарузите Nginx: | ||
``` | ||
sudo nginx -t | ||
sudo systemctl reload nginx | ||
``` | ||
- Откройте порты для фаервола и активируйте его: | ||
``` | ||
sudo ufw allow 'Nginx Full' | ||
sudo ufw allow OpenSSH | ||
sudo ufw enable | ||
npm i | ||
``` | ||
- (Опционально) Получите 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 | ||
``` | ||
- Пуш в ветку main запускает тестирование и деплой Kittygram на ваш удаленный сервер, а после успешного деплоя вам приходит оповещение в телеграм. | ||
|
||
### Автор | ||
Анна Победоносцева | ||
Запустить проект: | ||
|
||
Студент Яндекс Практикума ["Python-разаботчик плюс"](https://practicum.yandex.ru/python-developer-plus/?from=catalog) | ||
|
||
GitHub: | ||
(https://github.com/ZebraHr) | ||
``` | ||
npm run start | ||
``` |