Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - FreshTouch/DocHub: Управление архитектурой как кодом · GitHub
Skip to content

Repository files navigation

DocHub

Инкрементальное развитие архитектуры

DocHub - инструмент описания архитектуры через код (Architecture as a code). Код архитектуры - ансамбль файлов на языках, решающих задачу описания. Поддерживаются:

  • PlantUML - позволяет создавать диаграммы, используя простой и интуитивно понятный язык;
  • Mermaid - позволяет создавать диаграммы с использованием кода;
  • Markdown - язык разметки, созданный с целью обозначения форматирования в тексте;
  • Swagger - язык описания HTTP API контрактов;
  • AsyncAPI - язык описания событийных контрактов;
  • Манифесты - структурированные файлы в формате YAML/JSON для описания архитектурных объектов.

Решаемые проблемы:

Быстрый старт

Рекомендую начать с прочтения статьи Архитектра рядом с кодом. Познакомиться с работой инструмента и его подробной документацией можно на сайте https://dochub.info. Примеры использования можно найти в специальном репозитории, который развивает сообщество - Примеры DocHub

Вступайте в сообщество DocHubTeam. Здесь мы обсуждаем подход "Архитектура как код" и опыт применения DocHub.

Управление версиями архитектуры

DocHub позволяет развивать кодовую базу архитектуры аналогично кодовой базе приложений. В качестве системы управления версиями используется GitLab.

Инкрементальное развитие архитектуры

Децентрализованное управление архитектурой в Agile-ориентированных компаниях

DocHub умеет консолидировать описание архитектуры из различных источников. Например, из разных репозиториев. Это позволяет командам действовать независимо в сотрудничестве друг с другом.

Децентрадлизованное управление архитектурой

Управление архитектурой экосистем

DocHub создан с учетом современных проблем в управлении архитектурой экосистемы. В ней продукты взаимосвязаны, но развиваются автономно. DocHub позволяет создать единое информационное пространство для экосистемы. Стимулирует положительную синергию продуктов.

Управление эксоситемой

Архитектурные фасады

DocHub хорошо решает задачу публичного портала документации.

Архитектурные фасады

Пример портала.

Анализ архитектуры

Один из ключевых принципов инструмента - Архитектура как данные. Это означает, что вы можете получать ценные для себя сведения из архитектуры, используя язык запросов JSONata.

Протейшим примером этого подхода являются табличные документы.

Контроль консистентности архитектуры

DocHub умеет находить проблемы в описании архитектуры и контролировать определенные вами правила.

Валидатор

Расширяемая матамодель

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

Познакомиться с идеей ближе можно в статье Код архитектуры — это жидкость.

Пример можно посмотреть здесь

Развертывание

Конфигурирование

Определите необходимые переменные окружения. Используйте файл примера example.env для этого. Переименуйте его для продакшен окружения в ".env" для локального развертывания в ".env".

Если вы ничего не будете трогать, развертывание произойдет с дефолтными настройками. В этом случае DocHub будет содержать собственную документацию.

Локальное развертывание

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

docker-compose up --build

DocHub станет доступен по адресу http://localhost:8080/main

Сборка из исходников для продакшен

Проект является VueJS SPA приложением. В качестве backend пользуется GitLab.

Для развёртывания потребуется стандартная сборка VueJS приложения средствами npm.

npm install
npm run build

В результате будут сгенерированы статические файлы в папке /dist. Их необходимо опубликовать используя web-сервер. Например, nginx.

Подробнее о вариантах развертывания можно узнать тут.

Интеграция с GitLab

Для локального развертывания

В файле "example" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

В GitLab под своей учетной записью выпустите персональный токен Profile->Preferences->Access Tokens

Пример настройки GitLab

Полученный токен укажите в файле ".env" в переменной:

# Персональный токен gitlab. Используется для локальной разработки
VUE_APP_DOCHUB_PERSONAL_TOKEN=9H...FR

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Локальное развитие архитектуры

Создайте папку "/public/workspace". Папка входит в .gitignore. Это нормально. Папка предназначена для локального развертывания архитектурных репозиториев. Клонируйте необходимый архитектурный репозиторий.

cd /public/workspace
git clone git@git.foo.space:repo.git

Определите в ".env" переменную корневого манифеста:

VUE_APP_DOCHUB_ROOT_MANIFEST=workspace/repo/root.yaml

Перезапустите контейнеры:

docker-compose down
docker-compose up --build

Теперь вы можете вносить изменения в репозиторий локально и видеть результат изменений в режиме реального времени.

Для продакшена

В файле ".env" укажите адрес GitLab в соответствующей переменной:

VUE_APP_DOCHUB_GITLAB_URL=https://foo.space

Настройте OAuth2 service provider в GitLab. Документацию по настройке можно найти на официальном сайте.

Пример настройки GitLab

Полученные токены укажите в файле .env в переменных:

# Идентификатор приложения зарегистрированного в GitLab
VUE_APP_DOCHUB_APP_ID=5f3...f0
# Секрет приложения
VUE_APP_DOCHUB_CLIENT_SECRET=1e4...384

Соберите приложение:

npm run build

Статьи

Сообщество

Лицензия

DocHub распространяется под лицензией Apache License 2.0 Open source license.

About

Управление архитектурой как кодом

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages