{"id":13813731,"url":"https://github.com/k1LoW/ndiag","last_synced_at":"2025-05-15T01:31:39.010Z","repository":{"id":37674271,"uuid":"287956695","full_name":"k1LoW/ndiag","owner":"k1LoW","description":"ndiag is a high-level architecture diagramming/documentation tool.","archived":false,"fork":false,"pushed_at":"2023-11-02T21:33:00.000Z","size":12373,"stargazers_count":189,"open_issues_count":1,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-03T10:01:39.170Z","etag":null,"topics":["architecture","as-code","diagrams","documantation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/k1LoW.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"k1LoW","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-08-16T14:12:36.000Z","updated_at":"2025-02-01T01:33:56.000Z","dependencies_parsed_at":"2024-06-18T22:38:42.111Z","dependency_job_id":"afdfec5a-a7e1-4b98-b3d2-9275f22f642f","html_url":"https://github.com/k1LoW/ndiag","commit_stats":{"total_commits":401,"total_committers":8,"mean_commits":50.125,"dds":0.0922693266832918,"last_synced_commit":"911c70a582fe1f699302cca3b5b63e2c9b4fde87"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fndiag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fndiag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fndiag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1LoW%2Fndiag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/k1LoW","download_url":"https://codeload.github.com/k1LoW/ndiag/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254256170,"owners_count":22040239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architecture","as-code","diagrams","documantation"],"created_at":"2024-08-04T04:01:27.662Z","updated_at":"2025-05-15T01:31:33.986Z","avatar_url":"https://github.com/k1LoW.png","language":"Go","funding_links":["https://github.com/sponsors/k1LoW"],"categories":["Go"],"sub_categories":[],"readme":"# ndiag\n\n`ndiag` is a \"high-level architecture\" diagramming/documentation tool.\n\nKey features of `ndiag` are:\n\n- **N**-diagrams: Generate multiple \"diagrams and documents\" (views) from a single configuration.\n- **N**ested-clusters: Nodes and components can be clustered in nested layers\n- Provides the ability to check the difference between the architecture and the actual system.\n\n## Usage\n\n``` console\n$ ndiag doc -c ndiag.yml --rm-dist\n```\n\n## Getting Started\n\n### Generate architecture documents\n\nAdd `ndiag.yml` (Full version is [here](example/tutorial/final/ndiag.yml)).\n\n```yaml\n---\nname: 3-Tier Architecture\ndocPath: docs/arch\nviews:\n  -\n    name: overview\n    layers: [\"consul\", \"vip_group\"]\n  -\n    name: http-lb\n    layers: [\"vip_group\"]\n    labels: [\"http\"]\nnodes:\n  -\n    name: lb\n    match: lb-*\n    components:\n      - NGINX?icon=lb-l7\n    clusters:\n      - 'Consul:dc1'\n      - 'vip_group:lb'\n  -\n    name: app\n    match: app-*\n    components:\n      - NGINX?icon=proxy\n      - Rails App?icon=cube4\u0026label=lang:ruby\n    clusters:\n      - 'Consul:dc1'\n  -\n    name: db\n    match: db-*\n    components:\n      - PostgreSQL?icon=db\n    clusters:\n[...]\n```\n\nRun `ndiag doc` to generate documents in GitHub Friendly Markdown format.\n\n``` console\n$ ndiag doc -c ndiag.yml\n```\n\nCommit `ndiag.yml` and documents.\n\n``` console\n$ git add ndiag.yml doc/arch ndiag.description\n$ git commit -m 'Add architecture document'\n$ git push origin main\n```\n\nView the document on GitHub.\n\n[Example document](example/tutorial/final/docs/arch/README.md)\n\n![example](img/doc.png)\n\n## Tutorial\n\n- [English](docs/tutorial.md)\n- [日本語](docs/tutorial.ja.md)\n\n## Install\n\n**deb:**\n\n``` console\n$ export NDIAG_VERSION=X.X.X\n$ curl -o ndiag.deb -L https://github.com/k1LoW/ndiag/releases/download/v$NDIAG_VERSION/ndiag_$NDIAG_VERSION-1_amd64.deb\n$ dpkg -i ndiag.deb\n```\n\n**RPM:**\n\n``` console\n$ export NDIAG_VERSION=X.X.X\n$ yum install https://github.com/k1LoW/ndiag/releases/download/v$NDIAG_VERSION/ndiag_$NDIAG_VERSION-1_amd64.rpm\n```\n\n**apk:**\n\n``` console\n$ export NDIAG_VERSION=X.X.X\n$ curl -o ndiag.apk -L https://github.com/k1LoW/ndiag/releases/download/v$NDIAG_VERSION/ndiag_$NDIAG_VERSION-1_amd64.apk\n$ apk add ndiag.apk\n```\n\n**homebrew tap:**\n\n```console\n$ brew install k1LoW/tap/ndiag\n```\n\n**[aqua](https://aquaproj.github.io/):**\n\n```console\n$ aqua g -i k1LoW/ndiag\n```\n\n**manually:**\n\nDownload binary from [releases page](https://github.com/k1LoW/ndiag/releases)\n\n**go install:**\n\n```console\n$ go install github.com/k1LoW/ndiag@latest\n```\n\n**docker:**\n\n```console\n$ docker pull ghcr.io/k1low/ndiag:latest\n```\n\n**temporary:**\n\n``` console\n$ source \u003c(curl https://git.io/ndiag)\n```\n\n``` console\n$ curl -sL https://git.io/ndiag \u003e /tmp/ndiag.tmp \u0026\u0026 . /tmp/ndiag.tmp\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1LoW%2Fndiag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk1LoW%2Fndiag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1LoW%2Fndiag/lists"}