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

https://github.com/leonid-agalakov-89/kittygram_final

Веб-приложение для обмена фотографиями любимых питомцев и API для него.
https://github.com/leonid-agalakov-89/kittygram_final

django django-rest-framework djoser docker github-actions gunicorn javascript linux nginx postgresql python3 react

Last synced: 3 months ago
JSON representation

Веб-приложение для обмена фотографиями любимых питомцев и API для него.

Awesome Lists containing this project

README

          

## О проекте:

Веб-приложение для обмена фотографиями любимых питомцев и API для него. Позволяет размещать профили котиков с указанием имени, года рождения, цветом окраса (на выбор из палитры), любыми достижениями, которые может придумать владелец.

## Проект доступен по ссылке:

```
- https://kittygram89.line.pm
```

## Как запустить проект:

1. Сделайте форк репозитория с гитхаб.
2. Настройте Secrets and variables для Actions в настройках своего гитхаба:
- DOCKER_USERNAME
- DOCKER_PASSWORD
- HOST - IP-адрес вашего сервера
- SSH_KEY - приватный ключ для вашего сервера
- SSH_PASSPHRASE - пароль от вашего сервера
- USER - имя пользователя от вашего сервера
- TELEGRAM_TO - ваш ID в Telegram
- TELEGRAM_TOKEN - токен вашего бота в Telegram (для отправки сообщений об успешном запуске проекта на сервере)
- SECRET_KEY - Это большое случайное число, применяемое для защиты от CSRF. Важно, чтобы ключ, используемый в продакшене, не указывался в исходном коде, и/или не запрашивался с другого сервера. Django рекомендует размещать значение ключа либо в переменной окружения, или в файле с доступом только на чтение. Настройка используется в файле settings.py.

3. Создайте на сервере в домашней дерриктории папку `/kittygram`.

4. В корне этой папке создайте файл .env и заполните данные по примеру `.env.example`

5. Получите доменное имя для вашего сайта.

6. В настройках nginx на сервере сделайте прокси для всех запросов:
```
server {

server_name имя_вашего_сайта;

location / {
proxy_pass http://127.0.0.1:9000;

}
```
7. Настройте cerbot, запустите его и получите ssl сертификат для вашего сайта

8. Перезапустите nginx.

9. Теперь любой push на GitHub в этот репозиторий в ветку main автоматически запустит тесты кода, загрузит образы контейнеров в ваш аккаунт на DockerHub и развернёт проект на сервере.

## Технологии:

Docker

Backend
* Django
* djangorestframework
* djoser
* PostgreSQL

Frontend
* JavaScript
* React

WSGI сервер
* Gunicorn

WEB сервер
* NGINX

CD/CI
* Github Actions

## Об авторе:
Леонид Агалаков - python backend developer
`https://github.com/Leonid-Agalakov-89`