Web Developer

PHP Python Django Docker REST API CI/CD PostgreSQL Vue 3 Gitlab Git Elasticsearch

Работы
Завершено
Клиентов
Технологий
Последние проекты

Гастрономическая соцсеть
Сервис для обмена кулинарными рецептами.

VPS сервер
Арендованный сервер для публикации проектов.

Соцсеть для питомцев
Сервис для обмена фотографиями котов.

Таск-менеджер
Позволяет поставить задачи и зафиксировать их выполнение.

Гастрономическая соцсеть
Гастрономическая социальная сеть для обмена кулинарными рецептами, обсуждения блюд и создания сообщества любителей кулинарии. Делитесь, вдохновляйтесь!




Описание проекта
В проекте настроено непрерывное развертывание CI/CD. Workflow actions https://github.com/vasiliy-muravev/foodgram/actions. В момент отправки кода в репозиторий (событие git push) запускается цепочка действий по деплою. Инструменты для автоматизации позволяют избежать ошибок при рутинных действиях доставки кода на prod, ведь команды необходимо при деплое на сервере необходимо вводить поочередно и в правильной последовательности.
Технологии
- API DjangoRestFramework
- CI/CD
- Docker
- Nginx
- PostgresSQL
Что умеет проект
- Создавать, просматривать, редактировать и удалять рецепты
- Добавлять рецепты в избранное
- Подписываться на других пользователей
- Создавать список покупок
Описание CI/CD
В этом файле описаны jobs
https://github.com/vasiliy-muravev/foodgram/blob/main/.github/workflows/main.yml
В момент срабатывания события "git push" происходит:
- Выполняются тесты по беку
- Пересобираются образы для контейнера
- Образы отправляются в хранилище dockerhub
- Бот заходит на сервер, отправляет команды вытянуть новые образы
- Перезапускает все контейнеры
- Выполняет миграции и сбор статики
- Копирует статику в нужные папки
- Отправляет через телеграм бот сообщение об успешном деплое

VPS сервер
Что же такое VPS? В переводе с английского это – «виртуальный выделенный сервер». То есть почти то же самое, что и обычный сервер, только виртуальный.



Описание проекта
Все проекты на сервере размещены в контейнерах. Управление контейнерами организовано через реверс прокси. В качестве интерфейса реверс прокси используется Nginx Proxy Manager, работающая на 81 порту. В качестве интерфейса Docker используется Web-версия Portainer, работающая на 9443 порту.
Технологии
- VPS
- Debian 11
- Nginx reverse proxy
Преимущества использования VPS
- Удобный менеджмент проектов
- Интернет через VPN
- Возможность доставку кода CI/CD
Nginx Proxy Manager
Интерфейс Nginx Proxy Manager позволяет удобно сделать проброс с главного web-сервера nginx на web-сервера контейнеров. Для этого необходимо прописать маппинг - указать доменное имя и внутренний nginx проекта по имени контейнера для перенаправления. Важно: чтобы Nginx Proxy Manager мог напрямую общаться по имени контейнера - они должны быть в одной docker сети.
Описание сборки
Два пользователя root и vasiliy. Доступ пользователей через SSH ключи. Доступ к репозиториям Github также организован через SSH ключи. На сервере установлены:
- Docker
- Docker compose
- Git
- CI/CD

Соцсеть для питомцев
Социальная сеть для любителей домашних питомцев: делитесь фотографиями, находите единомышленников и обменивайтесь фотографиями!



Описание проекта
В проекте настроено непрерывное развертывание CI/CD. Workflow actions https://github.com/vasiliy-muravev/kittygram_final/actions. В момент отправки кода в репозиторий (событие git push) запускается цепочка действий по деплою. Инструменты для автоматизации позволяют избежать ошибок при рутинных действиях доставки кода на prod, ведь команды необходимо при деплое на сервере необходимо вводить поочередно и в правильной последовательности.
Технологии
- API DjangoRestFramework
- CI/CD
- Docker
- Nginx
- PostgresSQL
Что умеет проект
- Добавлять, просматривать, редактировать и удалять котиков
- Добавлять новые и присваивать уже существующие достижения
- Просматривать чужих котов и их достижения
Описание CI/CD
В этом файле описаны jobs
https://github.com/vasiliy-muravev/kittygram_final/blob/main/.github/workflows/main.yml
В момент срабатывания события "git push" происходит:
- Выполняются тесты по беку
- Пересобираются образы для контейнера
- Образы отправляются в хранилище dockerhub
- Бот заходит на сервер, отправляет команды вытянуть новые образы
- Перезапускает все контейнеры
- Выполняет миграции и сбор статики
- Копирует статику в нужные папки
- Отправляет через телеграм бот сообщение об успешном деплое

Таск-менеджер
Таск-менеджер позволяет ставить задачи и отслеживать их выполнение. Удобный интерфейс для повседневного использования.



Описание проекта
Веб-приложение для создания, обновления, мониторинга задач и API для него.
Технологии
- API DjangoRestFramework
- Djoser
- Gunicorn
- PostgresSQL
Что умеет проект
- Добавлять, редактировать и удалять задачи
- Задавать статус задач: выполненные и невыполненные