Skip to content

Task-Tracker-Lab/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Инструкция: Запуск в одну команду

Для того чтобы развернуть всю инфраструктуру и приложения «в один клик», используется главный скрипт-дирижер start.sh. Он берет на себя проверку Docker, настройку сети и последовательный деплой всех компонентов.

Команда запуска

Откройте терминал (Git Bash на Windows или Bash на Linux) в корне проекта и выполните:

Для разработки (Development):

sh scripts/start.sh dev

Для продакшена (Production):

sh scripts/start.sh prod

№# Алгоритм работы (Pipeline деплоя)

При запуске start.sh система последовательно проходит 4 этапа автоматизации. Каждый последующий шаг зависит от успешного завершения предыдущего.


1. Проверка окружения (setups/docker.sh)

На этом этапе подготавливается фундамент хост-системы:

  • Инсталляция: Проверка наличия бинарного файла docker. Если он отсутствует, скрипт устанавливает Docker Engine и Docker Compose Plugin.
  • Режим Swarm: Проверка состояния ноды. Если Swarm не активен, выполняется инициализация (docker swarm init).
  • Сетевой слой: Создание внешних (external) оверлейных сетей:
    • proxy — для связи Caddy с внешним миром.
    • monitoring — для сбора метрик и логов.
    • app_dev_net / app_prod_net — изолированные сети для приложений.

2. Деплой инфраструктуры (deploy.sh)

Запуск сервисов хранения данных и очередей:

  • Конфигурация: Загрузка переменных окружения из выбранного файла (.env.dev или .env.prod).
  • Запуск хранилищ: Подъем стэков базы данных (Postgres), кэша (Redis) и объектного хранилища (MinIO).
  • Стабилизация: Пауза в 5 секунд. Это необходимо, чтобы БД успели проинициализировать файловую структуру и начать принимать TCP-соединения до того, как к ним постучатся приложения.

3. Деплой прокси-сервера (deploy.sh)

Настройка входной точки трафика:

  • Caddy: Развертывание прокси-сервера.
  • SSL/TLS: Caddy автоматически запрашивает сертификаты (Let's Encrypt / ZeroSSL) для доменов, указанных в конфигурации.
  • Маршрутизация: Открытие портов 80 и 443. Теперь домены (включая CDN и API) начинают резолвиться и проксироваться внутрь Swarm.

4. Деплой приложений (deploy.sh)

Финальный этап — запуск бизнес-логики:

  • Apps: Развертывание сервисов из директории apps.
  • Связанность: Приложения подключаются к уже запущенным и прогретым базам данных и Redis, используя имена сервисов в качестве хостов (например, database_prod_postgres).

Визуализация потока данных

  1. Пользователь → запрос на myapp.com
  2. Caddy → принимает запрос (SSL терминация)
  3. Caddy → перенаправляет в сеть app_net
  4. App → обрабатывает запрос, обращаясь к Postgres / Redis
  5. MinIO → отдает статику через поддомен cdn.

Как проверить результат

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

docker stack ls

Для просмотра конкретных контейнеров в стеке:

docker stack ps database_prod

Требования для успешного запуска

Для того чтобы автоматизация отработала корректно, перед запуском start.sh необходимо выполнить три подготовительных шага.


1. Конфигурация окружения (.env)

Файлы переменных окружения являются «мозгом» вашего деплоя. Они должны находиться строго в корневой директории проекта.

  • .env.dev — параметры для локальной разработки или тестового сервера.
  • .env.prod — боевые параметры (сложные пароли, реальные домены).

Важно: Скрипт start.sh ищет файлы именно с такими именами. Если файлов не будет, деплой завершится ошибкой, так как Docker не сможет подставить пароли и пути к базам данных.

2. Права доступа к скриптам

В системах на базе Linux (и внутри WSL) файлы скриптов по умолчанию могут быть защищены от исполнения. Чтобы система могла их запустить, необходимо выдать им соответствующие права.

Выполните команду в корне проекта:

chmod +x scripts/*.sh setups/*.sh

Разработка

Инструкции по участию в проекте находятся в файле CONTRIBUTING.md.

Лицензия

Распространяется под лицензией MIT. Подробности в файле LICENSE.

About

Оркестрация и архитектура окружения Task Tracker на базе Docker Swarm. Декларативное управление стэками, сетями и состоянием инфраструктуры.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages