--- title: Директория `source/` description: Концептуальный обзор структуры изолированной директории исходного кода. weight: 52 --- Директория `source/` в корне репозитория содержит основные компоненты и проекты, которыми управляют общие модули. Она разработана для максимальной изоляции и самодостаточности. ## Основная философия {#philosophy} Директория `source/` — это не просто место для хранения кода; это коллекция независимых [Проектов](/root/glossary#project). Каждый проект в этой директории должен следовать следующим принципам: 1. **Изоляция**: Каждый проект живет в своей поддиректории (например, `source/my-app/`). 2. **Самодокументируемость**: Каждая директория проекта **ОБЯЗАНА** содержать собственный файл `README.md`, описывающий его назначение, зависимости и конфигурацию. 3. **Внутренняя логика**: Проекты сами управляют своими процессами сборки, Docker-файлами и внутренними конфигурациями. [Action-скрипты](/root/glossary#action) фреймворка Root просто оркеструют эти существующие компоненты. ## Структура директории {#structure} Типичный проект в директории `source/` может выглядеть следующим образом: {{< filetree/container >}} {{< filetree/folder name="source" state="open" >}} {{< filetree/folder name="happ-subscription-generator" state="open" >}} {{< filetree/file name="Dockerfile" >}} {{< filetree/file name="generator.py" >}} {{< filetree/file name="README.md" >}} {{< /filetree/folder >}} {{< /filetree/folder >}} {{< /filetree/container >}} ## Связь с Action-скриптами {#actions} Action-скрипты (такие как `compose` или `sync`) взаимодействуют с директорией `source/`, ссылаясь на пути внутри нее. Например, действие `compose` может использовать файл `docker-compose.yml`, который указывает на `Dockerfile`, расположенный в `source/app/`. Такое разделение ответственности гарантирует, что логика оркестрации (Action-скрипты) остается отвязанной от деталей реализации (Source). --- **See also:** - [Концепция: Архитектура инфраструктуры](/root/concepts/architecture) - [Справочник: Справочник ROOT_ API Reference](/root/reference/root-api)