Skip to content

Некоммерческий проект для анализа открытых данных по трафику российских СМИ.

Notifications You must be signed in to change notification settings

Alex00999/stat-miliutin-ru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 stat.miliutin.ru - некоммерческий проект для анализа открытых данных по трафику российских СМИ.

Цель проекта — предоставить СМИ инструмент для анализа посещаемости конкурентов на основе открытых данных.

img

Проект предназначен для автоматического сбора и хранения данных о ежедневной посещаемости российских медиа-сайтов из рейтинга LiveInternet. Сервис парсит данные в конце дня, сохраняет их в БД и предоставляет доступ к статистике через веб-интерфейс. Пользователь может просматривать графики посещаемости за указанный период и выгружать данные в CSV-формате.

Frontend - Алексей Малахов, Backend - Никита Милютин


Деплой проекта stat_mil_ru на сервере Ubuntu

Предварительные требования

Перед началом деплоя на сервере должны быть установлены следующие утилиты:

  1. crontab - для автоматического обновления SSL-сертификатов.
  2. Docker - для контейнеризации приложения.
  3. Docker-compose - для управления мультиконтейнерными приложениями.

Если они еще не установлены, воспользуйтесь следующими командами:

# Установка crontab
sudo apt update
sudo apt install cron

# Установка Docker
sudo apt install docker.io

# Установка Docker Compose
sudo apt install docker-compose

1. Создание структуры проекта

Перейдите в директорию /home и создайте папку с проектом:

cd /home
mkdir stat_mil_ru
cd stat_mil_ru
mkdir project

2. Копирование файла deploy.sh

Скопируйте файл deploy.sh из удаленного репозитория в директорию /home/stat_mil_ru/:

# Пример команды для копирования (используйте свой путь к репозиторию):
scp user@remote_server:/deploy_or_reset_files_dir/deploy.sh /home/stat_mil_ru/

Убедитесь, что файл deploy.sh имеет права на выполнение:

chmod +x /home/stat_mil_ru/deploy.sh

3. Создание директории для SSL-сертификатов

Создайте директорию ssl в корневой директории сервера и настройте структуру для SSL:

cd /
mkdir ssl
cd ssl
mkdir ssl_stat
cd ssl_stat
mkdir conf
mkdir www
mkdir -p conf/.well-known/acme-challenge

Объяснение:

  • Папка ssl_stat/conf будет использоваться для хранения конфигурационных файлов.
  • Папка ssl_stat/www будет служить для временного хранения файлов, необходимых для проверки SSL-сертификатов.
  • Папка .well-known/acme-challenge необходима для автоматического обновления сертификатов с помощью Let's Encrypt.

4. Запуск скрипта деплоя

Для установки и запуска всех сервисов выполните команду:

cd /home/stat_mil_ru
bash deploy.sh

Что делает скрипт deploy.sh:

  • Загружает необходимые Docker-образы.
  • Разворачивает контейнеры с вашим приложением и сервисами.
  • Настраивает SSL-сертификаты через Let's Encrypt.
  • Применяет конфигурации для Nginx или другого веб-сервера, если это предусмотрено.

После успешного выполнения скрипта, приложение будет доступно по указанному доменному имени.


5. Настройка автоматического обновления SSL-сертификатов

Для автоматического обновления SSL-сертификатов используем crontab.

Откройте файл конфигурации crontab:

crontab -e

Добавьте следующую строку в файл:

@monthly cd /home/stat_mil_ru/project/src/liveinternet && docker-compose restart certbot

Объяснение:

  • @monthly - команда будет выполняться ежемесячно.
  • Переход в директорию, где находится конфигурация docker-compose для обновления сертификатов.
  • Перезапуск сервиса certbot, который отвечает за обновление SSL-сертификатов.

Сохраните файл и закройте редактор.


6. Проверка работы приложения и статуса контейнеров

После деплоя можно проверить статус контейнеров с помощью:

docker-compose ps

Для просмотра логов:

docker-compose logs -f

Если возникли ошибки при запуске, выполните команду для их устранения:

docker-compose down && docker-compose up -d

Полезные команды

  • Обновить Docker-образы:

    docker-compose pull
  • Перезапустить все сервисы:

    docker-compose restart
  • Остановить и удалить все контейнеры:

    docker-compose down

Завершение

Если все шаги выполнены правильно, приложение будет успешно развернуто на сервере и доступно по вашему доменному имени с работающим SSL-сертификатом.

Для любых изменений в конфигурации Docker или Nginx обновляйте соответствующие файлы и перезапускайте сервисы с помощью:

docker-compose up -d

About

Некоммерческий проект для анализа открытых данных по трафику российских СМИ.

Resources

Stars

Watchers

Forks