Skip to content
This repository was archived by the owner on Sep 18, 2025. It is now read-only.

Draglaborga/pictures

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pictures service

Сервис для обработки изображений!


Структура

pictures
├── user_images_service
    ├── config  #папка с настройками базы данных и прочего
    ├── repositories #каталог схем таблиц бд(моделей)
    ├── routers #каталог функций - роутингов 
    ├── schemas #каталог  json схем
    ├── service #каталог различных функций проверки  , jwt token и обработки изображения
    ├── static #каталог стилей javascript и изображений
    ├── Dockerfile
    ├── main.py #отправная точка приложения
    ├── requirements.txt #пакеты которые нужно установить
    └── templates #папка с фронтендом(html)
├── data #папка с настойкми nginx
|   ├── nginx
|       └──app.conf #файл с настойкми nginx
├── .env #файл с секретными переменными (создается при деплое sudo nano .env)
└─  docker-compose.yml

в папке templates файл base.py в строчке заменяем в content на свой ключ который выдал гугл oauth . ссылка с примером как получить ключи https://developers.google.com/identity/sign-in/web/sign-in

при локальной нужно создать файл .env с обязательными полями (если нужен фронтенд) ссылка с примером как получить ключи https://developers.google.com/identity/sign-in/web/sign-in

```
    id_client_google= ...
    secret_key_google_auth = ....
```

перед разворачиванием локально не забываем создать баззу данных postgres локально или на стороннем сервисе . прописав путь в переменную URL_DATA_BASE в папке config файл database.py

Команды для локального разворачивания

  1. python3 -m venv env в директории user_images_service
  2. pip install -r requirements.txt
  3. source env/bin/activate
  4. uvicorn main:app --reload

перед деплоем

  1. В файле init-letsencrypt.sh в переменной domains вводим свое доменное имя example.ru www.example.ru

  2. В папке data/nginx после значения server_name прописываем свое доменное имя и каждом месте где стоит example.com также заменяем на свое

  3. В папке static файл script js р

    //закоментировать при деплое - раскоментироватьпри локальной разработке

    1. // const debug_path = 'http://localhost:8000' //при локальной разработке
    2. // const socket_debug = 'ws' //при локальной разработке
    3. // let wshost = 'localhost:8000' //при локальной разработке

    //раскоментировать при деплое - закоментировать при локальной разработке прописать свой домен

    1. const socket_debug = 'wss'
    2. let wshost = 'api-booking.ru'
    3. const debug_path = 'https://api-booking.ru'
  4. В папке service файл pictures в переменную hosts = 'http://localhost:8000' прописать имя домена https://example.com

comands deploy

  1. https://console.cloud.yandex.ru/ нажимаем compute cloud и затем создать bm

  2. даем имя проекту 1.Выбор образа/загрузочного диска ставим Ubuntu 2. в поле логин вводим любое имя , можно просто -admin

  3. В вашем компьютере в консоли вводим ssh-keygen -t rsa -b 2048 генерация ключа для яндекс клайуд попросит придумать кодовое слово - это будет ваш пароль для доступа и попросит повторить

  4. Вводим в консоли cat /home/gleb/.ssh/id_rsa(у вас будет свой путь для сохранения описаный в консоли после выполнения первой команды) скопировать ключ ssh

  5. копируем ключ из результата команды номер 2 и вставляем в поле SSH-ключ на странице яндекс клауд

  6. Нажимаем создать bm и после отображения кликаем на наш проект (дожидаемся status - Running)

  7. Идем в консоль своего компьютера и вводим ssh (наш логин и пункта 0.2)@(Публичный IPv4-он отображается на странице яндекс клайд нашего bm ю ) пример - ssh admin@84.201.179.68

  8. попросит ввести кодовое слово для этого аккаунта (вести кодовое слово из пункта 1)

  9. Если в пункте 5 все удачно - вы через консоль зашли в аккаунт яндекс клауд вашего bm

  10. Вводим команду в консоли sudo apt get install git docker docker-compose -y нажимаем enter

  11. Вводим команду git clone https://github.com/gleb89/pictures.git или вашу ссылку на репозиторий гит-хаб \нажимаем enter

  12. Вводим команду cd pictures/ нажимаем enter

  13. Вводим команду sudo nano .env откроется окно

вставить туда переменные со своими значениями(что связанно с POSTGRES пишем произвольные значения,можно оставить как есть)

 1. id_client_google и secret_key_google_auth это ваши ключи google auth
 2. POSTGRES_USER=glebhleb
 3. POSTGRES_PASSWORD=glebhleb2
 4. POSTGRES_DB=glebhleb
 ## пример 

  - id_client_google=286255588660-rgio676kjntofk12u3b1kg7ok61fkbdo.apps.googleusercontent.com
  - secret_key_google_auth=fDLe97luPpQhjE0nIjEmZKkk
  1. Вводим команду chmod +x init-letsencrypt.sh нажимаем enter для получения ssl сертификата
  2. Вводим команду chmod ./init-letsencrypt.sh нажимаем enter для получения ssl сертификата
  3. Вводим команду sudo docker-compose up -d --build нажимаем enter
  4. Переходим в браузер и проверяем работу сайта

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 70.2%
  • JavaScript 14.3%
  • HTML 8.2%
  • Shell 3.9%
  • CSS 3.1%
  • Dockerfile 0.3%