[{"data":1,"prerenderedAt":251},["ShallowReactive",2],{"navigation_docs":3,"-usage-test-subdomains":125,"-usage-test-subdomains-surround":246},[4,24,67,85,103],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Начало работы","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Введение",{"title":12,"path":13,"stem":14},"Возможности","\u002Fgetting-started\u002Fopportunities","1.getting-started\u002F2.opportunities",{"title":16,"path":17,"stem":18},"Установка и запуск","\u002Fgetting-started\u002Finstalling","1.getting-started\u002F3.installing",{"title":20,"path":21,"stem":22},"Вход и пароль","\u002Fgetting-started\u002Ffirst-login","1.getting-started\u002F4.first-login","i-lucide-book-open",{"title":25,"icon":26,"path":27,"stem":28,"children":29,"page":66},"Управление","i-lucide-folder-kanban","\u002Fusage","2.usage",[30,34,38,42,46,50,54,58,62],{"title":31,"path":32,"stem":33},"Проекты","\u002Fusage\u002Fprojects","2.usage\u002F1.projects",{"title":35,"path":36,"stem":37},"Доменные имена","\u002Fusage\u002Fconstructor","2.usage\u002F2.constructor",{"title":39,"path":40,"stem":41},"Прокси и защита","\u002Fusage\u002Fproxy-settings","2.usage\u002F3.proxy-settings",{"title":43,"path":44,"stem":45},"TCP с TLS","\u002Fusage\u002Ftcp-tls","2.usage\u002F4.tcp-tls",{"title":47,"path":48,"stem":49},"Ручной Caddyfile","\u002Fusage\u002Fmanual-block","2.usage\u002F5.manual-block",{"title":51,"path":52,"stem":53},"Тестовые поддомены","\u002Fusage\u002Ftest-subdomains","2.usage\u002F6.test-subdomains",{"title":55,"path":56,"stem":57},"Пользователи","\u002Fusage\u002Fusers","2.usage\u002F7.users",{"title":59,"path":60,"stem":61},"Права доступа","\u002Fusage\u002Froles","2.usage\u002F8.roles",{"title":63,"path":64,"stem":65},"Обновление","\u002Fusage\u002Fupdating","2.usage\u002F9.updating",false,{"title":68,"icon":69,"path":70,"stem":71,"children":72,"page":66},"Docker","i-lucide-container","\u002Fdocker","3.docker",[73,77,81],{"title":74,"path":75,"stem":76},"Контейнеры","\u002Fdocker\u002Fcontainers","3.docker\u002F1.containers",{"title":78,"path":79,"stem":80},"Логи и терминал","\u002Fdocker\u002Flogs-terminal","3.docker\u002F2.logs-terminal",{"title":82,"path":83,"stem":84},"Сети","\u002Fdocker\u002Fnetworks","3.docker\u002F3.networks",{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":66},"Хранилища и файлы","i-lucide-folder-open","\u002Ffiles","4.files",[91,95,99],{"title":92,"path":93,"stem":94},"Хранилища","\u002Ffiles\u002Fvolumes","4.files\u002F1.volumes",{"title":96,"path":97,"stem":98},"Файловый менеджер","\u002Ffiles\u002Fmanager","4.files\u002F2.manager",{"title":100,"path":101,"stem":102},"Текстовый редактор","\u002Ffiles\u002Feditor","4.files\u002F3.editor",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":66},"Обслуживание","i-lucide-wrench","\u002Foperations","5.operations",[109,113,117,121],{"title":110,"path":111,"stem":112},"Диск и настройки","\u002Foperations\u002Fmaintenance","5.operations\u002F1.maintenance",{"title":114,"path":115,"stem":116},"Резервные копии","\u002Foperations\u002Fbackups","5.operations\u002F2.backups",{"title":118,"path":119,"stem":120},"Решение проблем","\u002Foperations\u002Ftroubleshooting","5.operations\u002F3.troubleshooting",{"title":122,"path":123,"stem":124},"Безопасность","\u002Foperations\u002Fsecurity","5.operations\u002F4.security",{"id":126,"title":51,"body":127,"description":239,"extension":240,"links":241,"meta":242,"navigation":243,"path":52,"seo":244,"stem":53,"__hash__":245},"docs\u002F2.usage\u002F6.test-subdomains.md",{"type":128,"value":129,"toc":233},"minimark",[130,134,139,147,158,177,192,196,216,219,223,226],[131,132,133],"p",{},"Функция предназначена для тестовых стендов: разные поддомены одного домена направляются в разные контейнеры. Она не собирает приложение и не запускает контейнеры за вас — это должна делать ваша инфраструктура развёртывания.",[135,136,138],"h2",{"id":137},"схема-имён","Схема имён",[131,140,141,142,146],{},"В режиме «Обратный прокси» включите ",[143,144,145],"strong",{},"«Тестовые поддомены»",". По умолчанию адрес upstream строится по правилу:",[148,149,155],"pre",{"className":150,"code":152,"language":153,"meta":154},[151],"language-text","{alias}_{subdomain}\n","text","",[156,157,152],"code",{"__ignoreMap":154},[131,159,160,161,164,165,168,169,172,173,176],{},"Например, при Alias ",[156,162,163],{},"lumen"," поддомен ",[156,166,167],{},"review-42.preview.example.com"," направляется в ",[156,170,171],{},"lumen_review-42"," на указанный в домене порт. Соответствующий контейнер должен существовать и быть доступен Caddy в сети ",[156,174,175],{},"server",".",[131,178,179,180,183,184,187,188,191],{},"В пользовательском правиле нужны обе переменные: ",[156,181,182],{},"{alias}"," и ",[156,185,186],{},"{subdomain}",". Остальная часть ограничена буквами латиницы в нижнем регистре, цифрами, дефисом и подчёркиванием. Имена веток с ",[156,189,190],{},"\u002F"," нельзя напрямую считать подходящими DNS-именами.",[135,193,195],{"id":194},"что-ещё-подготовить","Что ещё подготовить",[197,198,199,203,206,213],"ul",{},[200,201,202],"li",{},"DNS для основного имени и нужных поддоменов, обычно wildcard-запись на сервер.",[200,204,205],{},"Доступность Caddy и условия выдачи HTTPS-сертификатов.",[200,207,208,209,212],{},"Git HTTP URL репозитория GitLab с окончанием ",[156,210,211],{},".git"," — его требует текущая форма.",[200,214,215],{},"При необходимости список веток, которые не должны очищаться автоматически.",[131,217,218],{},"Для поддоменов Caddy использует on-demand TLS с ask-запросом к Asmy. Это не настройка wildcard-сертификата через DNS-провайдера. Сейчас endpoint ask не проверяет разрешённый список имён; не рассматривайте его как дополнительную защиту выдачи сертификатов.",[135,220,222],{"id":221},"ограничения","Ограничения",[131,224,225],{},"Функция экспериментальная. Автоматическая очистка стендов связана с публичным GitLab webhook, проверка отправителя которого пока не реализована. Не используйте этот механизм как защищённую границу для удаления важных ресурсов и не подключайте его к рабочим данным.",[131,227,228,229,176],{},"Настраивайте сценарий только в доверенном тестовом окружении и заранее проверяйте соответствие имён доменов, контейнеров и правил очистки. Для обычного сайта оставьте функцию выключенной и используйте ",[230,231,232],"a",{"href":36},"обычный обратный прокси",{"title":154,"searchDepth":234,"depth":234,"links":235},2,[236,237,238],{"id":137,"depth":234,"text":138},{"id":194,"depth":234,"text":195},{"id":221,"depth":234,"text":222},"Экспериментальная маршрутизация поддоменов в отдельные контейнеры.","md",null,{},true,{"title":51,"description":239},"SIqHBxtu-S1n2TyEdC8dp3Eay93Q8tr2swpPgFK0L78",[247,249],{"title":47,"path":48,"stem":49,"description":248,"children":-1},"Когда использовать Caddyfile, как включить блок и проверить результат.",{"title":55,"path":56,"stem":57,"description":250,"children":-1},"Как пригласить коллегу и добавить его в проект.",1792043053933]