Skip to content

Neoversity/goit-cs-hw-06

Repository files navigation

Проєкт: Вебсервіс із сокет-сервером і MongoDB

Опис

Цей проєкт являє собою вебсервіс, що використовує HTTP-сервер для взаємодії з користувачами та сокет-сервер для передачі повідомлень. Повідомлення зберігаються у базі даних MongoDB.

Стек технологій

  • Python (HTTPServer, сокети)
  • MongoDB
  • Docker + Docker Compose

Структура проєкту

  • main.py: Основний файл вебсервера, який обробляє GET і POST запити.
  • socket_server.py: Файл, що містить код сокет-сервера для отримання та обробки повідомлень.
  • Dockerfile: Файл для збірки Docker-образу вебсервера.
  • Dockerfile.socket: Файл для збірки Docker-образу сокет-сервера.
  • docker-compose.yaml: Файл конфігурації Docker Compose для запуску всіх сервісів.
  • static/: Каталог для статичних файлів (CSS, зображення тощо).

Вимоги

Перед початком роботи переконайтеся, що у вас встановлено:

  • Docker
  • Docker Compose

Як запустити проєкт

  1. Клонувати репозиторій:

    git clone https://github.com/yourusername/yourproject.git
  2. Перейти в директорію проєкту:

    cd yourproject
  3. Запустити Docker Compose:

    docker-compose up --build
  4. Відкрити браузер і перейти за адресою http://localhost:3000, щоб побачити вебсервіс.

Структура контейнерів

  • web_server: Вебсервер, що обробляє HTTP-запити і підключається до сокет-сервера.
  • socket_server: Сокет-сервер, який приймає дані через сокети і зберігає їх у MongoDB.
  • mongo_db: База даних MongoDB для збереження повідомлень.

Логи та перевірка

Щоб переглянути логи роботи контейнерів, використовуйте команду:

docker-compose logs

Збереження даних

Дані MongoDB зберігаються у volume, тому після перезапуску контейнерів дані зберігаються:

  • Volume для MongoDB: mongo_data

Важливі моменти

  • Переконайтеся, що всі сервіси в docker-compose.yaml використовують одну мережу (app-network).
  • Залежність вебсервера від MongoDB і сокет-сервера налаштована за допомогою опції depends_on.

About

Фінальне завдання

Resources

Stars

Watchers

Forks

Contributors