# Структура файлов/папок

JohnCMS имеет следующую структуру папок:

* config
* data
* docker
* modules
* public
* system
* tests
* themes

### config

В папке хранятся различные конфигурационные файлы необходимые для работы системы. \
Файл **constants.php** содержит константы необходимые для работы системы.\
В подпапке **autoload** хранятся файлы, которые автоматически загружаются системой. Работа с конфигурационными файлами подробно описана здесь: [Конфигурационные файлы](https://johncms.com/documentation/configs/).

### data

В папке data хранятся различные системные данные, такие как кэш, временные файлы и логи

### docker

В этой папке хранятся файлы конфигурации для запуска сайта в docker контейнере.

### modules

Папка modules содержит все модули системы\
Подробно про структуру папки модуля читайте в соответствующем разделе.

### public

Корневая директория проекта в которую должен ссылаться web-сервер.\
Для обеспечения безопасности, все системные папки располагаются выше публичной директории. В папке public должны содержаться только файлы, которые будут доступны из браузера.

### system

Папка system содержит все системные библиотеки\
В этой папке не рекомендуется ничего менять и добавлять в целях сохранения возможности простого обновления на следующие версии JohnCMS

### tests

Папка tests содержит автоматические тесты системы. Используется только при разработке.

### themes

Папка themes содержит шаблоны сайта\
В этой папке расположен шаблон **default** в папке с этим шаблоном **не рекомендуется ничего менять** для сохранения возможности простого обновления на следующие версии JohnCMS \
Для кастомизации шаблона создайте отдельную папку и скопируйте в неё содержимое папки default.\
Более подробно про работу с шаблонами читайте в соответствующем разделе документации


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.johncms.com/10.0/nachalo-raboty/struktura-failov-papok.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
