⚠️ Aviso: Este repositório está em manutenção. Seu conteúdo será substituído por algo mais completo, baseado nas seguintes referências da documentação oficial do Structurizr:
Este repositório contém todos os diagramas contidos na apresentação do modelo C4.
ℹ️ Nota: Durante a migração, os exemplos abaixo podem estar quebrados.
Os diagramas são gerados utilizando a imagem structurizr/structurizr. As funções abaixo facilitam o uso dos comandos via Docker.
Sobe uma instância local do Structurizr para visualizar e editar os diagramas:
💡 Dica: Para ver algum exemplo rodando, basta entrar no diretório correspondente (ex.:
cd niveis) e executarc4_local. O resultado estará disponível em http://localhost:8080.
# structurizr
function c4_local() {
docker run --rm -it \
-p 8080:8080 \
-u $(id -u):$(id -g) \
-v "$PWD":/usr/local/structurizr/ \
-e STRUCTURIZR_AUTOREFRESHINTERVAL=2000 \
-e STRUCTURIZR_AUTOSAVEINTERVAL=5000 \
-e STRUCTURIZR_THEMES=/usr/local/structurizr-themes \
structurizr/structurizr local
}Exporta os diagramas a partir do workspace.json para o diretório diagrams no formato escolhido (png, svg, mermaid, etc.):
# structurizr export
function c4_export(){
local format=${1:?"The format must be specified."}
docker run --rm -it \
-u $(id -u):$(id -g) \
-v "$PWD":/usr/local/structurizr/ \
structurizr/structurizr export -workspace workspace.json -format ${format} -output diagrams
}Invocação:
c4_export pngSobe um playground do Structurizr para experimentações rápidas:
# structurizr playground
function c4_play() {
docker run --rm -it \
-p 8081:8081 \
-e PORT=8081 \
-e STRUCTURIZR_THEMES=/usr/local/structurizr-themes \
structurizr/structurizr playground
}