DocuEye is a tool that lets You visualize views and documentation created using Structurizr DSL.
Currently there is no demo but you can see DocuEye product page to see some screenshots and features description.
- Import workspace via REST API
- Dedicated CLI
- Diagram viewer - You can view all diagrams in nice user friendly way (in my opinion :))
- Automatic layout
- Manual move elements
- Diagram navigation
- Export to PNG
- Graph viewer - You can view diagrams as graphs
- Focusing on selected node
- Elements catalog - You can search, navigate through your model elements
- View element properties. See extra DocueEye properties
- View element dependencies
- View element consumers
- View element children
- View element documentation
- View element decisions
- Import and view element openapi specification
- Decisions viewer - You can view all decisions defined at workspace or element level
- Documentation viewer - You can view documentation defined at workspace or element level
- Change Tracker - DocuEye tracks changes in the model on every import. You can view history of changes in Your model. See what to do to change tracker works as expected
- Deployment Nodes Matrix - You can view relationships between deployment nodes that implies from relationships between deployed model elements.
- OIDC Integration. See how to integrate with OIDC provider.
See features roadmap if You want to know what features will be implemented in nearest feature.
The best way to get start is to use docker image.
To run DocuEye You can use docker compose. File used in this example can be found here. Description of configuration options can be found here
DocuEye use Mongo DB as persistence so You need two containers running at one time.
docker compose up -d
Thats it :). If everything goes es expected You can now access DocuEye at http://localhost:8080
If You manage to run application You can see empty workspaces list.
So it's time to import one.
First step is exporting our workspace to json format using structurizr cli export.
cd .\ExampleWorkspace
docker run -it --rm -v "$($PWD):/usr/local/structurizr" structurizr/cli export --workspace workspace.dsl -format json
# In this example $PWD is current directory path.
Second step is to import workspace to DocuEye
docker run -it --rm --network="host" -v "$($PWD):/app/import" jacekzwpl/docueye-cli --import=workspace --docueyeAddress=http://localhost:8080 --adminToken=docueyedmintoken --importKey="$((New-Guid).Guid)" --workspaceId=638d0822-12c7-4998-8647-9c7af7ad2989 --workspaceFile=./import/workspace.json
# In this example $PWD is current directory path.
DocueEye CLI is also distributed as dotnet tool via nuget package - current version requires .net 8 to be preinstalled. Installing DocuEye CLI
dotnet tool install --global DocuEye.CLI
Import workspace using command line
docueye --import=workspace --docueyeAddress=http://localhost:8080 --adminToken=docueyedmintoken --importKey="$((New-Guid).Guid)" --workspaceId=638d0822-12c7-4998-8647-9c7af7ad2989 --workspaceFile=workspace.json
Example script to import workspace can be found here.
Once we imported our workspace we can also import openapi specification for model elements.
Example script can be found here.
You can read about all options for DocuEye CLI here.
You can also use --help switch to see available options.
For docker image
docker run -it --rm jacekzwpl/docueye-cli --help
For command line
docueye --help
I welcome all contributors. But before making PR-s start with create issue that we can discuss the change.