Skip to main content

Generate SVG diagrams of a (tech) ecosystem, using logos from each tool organised into groups around a central logo

Project description

Logo Diagram Generator 🎨

PyPI - Version PyPI - License Docker Pulls Docker Image Size

This package, logo-diagram-generator, allows you to generate SVG diagrams that visually represent a technology ecosystem, including tool logos, based on a YAML configuration file. It's designed to help visualize the relationships and categories of tools within a technology stack, making it easier to understand at a glance.

Example Output

Here's an example of a diagram generated using logo-diagram-generator, based on an example configuration:

docker run -it -v `pwd`:/app beveradb/logo-diagram-generator -c examples/full.example.yml

Example Diagram

Quick Start

  1. Install the Package

    Ensure you have Python and pip installed on your system. Install logo-diagram-generator from PyPI:

    pip install logo-diagram-generator
    

    🐳 Alternately, use Docker and skip to step 3! 🎉

    docker run -it -v `pwd`:/app beveradb/logo-diagram-generator
    

    If you use Docker, you don't need to install anything on your system as the tool runs in a container.

  2. Install Graphviz

    This tool uses Graphviz to render the graph, so you need the graphviz binaries installed on your system for this to work.

    Depending whether you're installing in a conda environment, or directly on your Mac or Linux system, one of these commands should be what you need:

    • conda install graphviz
    • brew install graphviz
    • sudo apt-get install graphviz
  3. Prepare Your Configuration

    Create a config.yml file for your own diagram by copying one of the provided examples. examples/minimal.example.yml is a simple one to start with.

    Edit your config file to list all the tools in your ecosystem, with category groupings as you see fit. The minimum viable config would be one central tool and one group:

    ecosystem:
      centralTool:
        name: Kubernetes
      groups:
        - category: Cluster Management
          tools:
            - name: Rancher
    

    See examples/full.example.yml for more configuration examples - these become more relevant when you need to tweak the styles or layout of the diagram after your first run.

  4. Download Logos and Generate Diagram

    With your configuration ready, run the logo-diagram-generator CLI in the same directory as your config.yml file, and it will download logos (with interactive input if it isn't able to find one on the first try) and generate your ecosystem diagram:

    logo-diagram-generator
    

    This will download the necessary logos and produce an SVG file named diagram_logos.svg in your current directory.

    For further customization options for paths and output names, use --help to see all available CLI parameters:

    usage: logo-diagram-generator [-h] [-d] [--log_level LOG_LEVEL] [-n NAME] [-c CONFIG] [-l LOGOS_DIR] [-s SKIP_DOWNLOAD] [-o OUTPUT_DIR]
    
    Generate SVG diagrams of a tech ecosystem, using logos from each tool organised into groups around a central logo.
    
    options:
    -h, --help                                       show this help message and exit
    -d, --debug                                      enable debug logging, equivalent to --log_level=debug
    --log_level LOG_LEVEL                            log level, e.g. info, debug, warning (default: info)
    -n NAME, --name NAME                             Base name for the output SVG files.
    -c CONFIG, --config CONFIG                       Path to the configuration file.
    -l LOGOS_DIR, --logos_dir LOGOS_DIR              Directory where logos are stored.
    -s SKIP_DOWNLOAD, --skip_download SKIP_DOWNLOAD  Skip downloading logos before generating.
    -o OUTPUT_DIR, --output_dir OUTPUT_DIR           Directory for the output SVG diagram.
    

Customizing Your Diagram

  • Configuration File: Modify config.yml to add, remove, or categorize tools as needed. Each tool can have a name, label, and optionally an alias or svgURL for custom logo URLs.
  • Logo Download: If the automatic logo download doesn't find a logo for a tool, you can specify the URL interactively or manually place an SVG file in the logos directory. The file name should match the tool's name in the configuration file, in lowercase.
  • Diagram Appearance: The appearance of the generated diagram can be customized by modifying the config.yml file. See the example configs and Graphviz documentation for more info.

Contributing

Contributions to improve logo-diagram-generator or add new features are welcome. Please submit a pull request or open an issue to discuss your ideas.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logo_diagram_generator-0.2.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logo_diagram_generator-0.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file logo_diagram_generator-0.2.0.tar.gz.

File metadata

  • Download URL: logo_diagram_generator-0.2.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for logo_diagram_generator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 27405bd50f16f5d75228efe7ec1c81011e1d7f0e94f32e0d862d8037ed579d70
MD5 1839d0fd81e4b1f7c598790414d6e5aa
BLAKE2b-256 a022a8c67c856a8d030fa92c56c80846dd6c8cf44f63f6f2cf3172d45ca50a5e

See more details on using hashes here.

File details

Details for the file logo_diagram_generator-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for logo_diagram_generator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97531f54cd046f1903e819fca8b757a4373ab70312ab80b991cf259aa55b725c
MD5 03e5571d1bc07e32e5db145db6f841f7
BLAKE2b-256 980e9d43ffdf7da106030f3c0907913a9eddfb6299cd11d3472c6f738e090670

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page