microvisor.c4
1 model { 2 doombsd = component "DoomBSD" { 3 summary "Modernized & Hardened FreeBSD" 4 icon @/doombsd-symbol-orb.svg 5 style { 6 color red 7 } 8 } 9 10 apollyon-linux = component "Apollyon Linux" { 11 summary "Supercharged Arch Linux" 12 icon @/apollyon-linux-logo.png 13 style { 14 color violet-900 15 } 16 } 17 18 microvisor = context "Microvisor" { 19 summary "Multikernel Build System" 20 link https://www.sigops.org/s/conferences/sosp/2009/papers/baumann-sosp09.pdf "https://www.sigops.org/s/conferences/sosp/2009/papers/baumann-sosp09.pdf" 21 22 icon tech:gnu-emacs 23 style { 24 color yellow-800 25 } 26 27 28 langugages = container "Languages" { 29 likec4 = component { 30 title: "LikeC4" 31 icon @/likec4-symbol.svg 32 link: https://likec4.dev/ "Website" 33 style { 34 color: green 35 } 36 } 37 38 component nix { 39 title "Nix" 40 link https://nixos.org "Website" 41 icon tech:nix 42 style { 43 color: muted 44 } 45 } 46 47 rust = component { 48 title: "Rust" 49 icon: tech:rust 50 link : https://www.rust-lang.org "Website" 51 style { 52 color: amber 53 } 54 } 55 56 embedded-rust = component "Embedded Rust" { 57 icon @/embedded-rust-symbol.svg 58 link : https://rust-lang.org/what/embedded/ "Website" 59 style { 60 color: amber 61 } 62 } 63 64 embedded-c = component "Embedded C" { 65 icon @/embedded-c-symbol.svg 66 link : https://en.wikipedia.org/wiki/Embedded_C "Wikipedia" 67 style { 68 color: red 69 } 70 } 71 72 cplusplus = component "C++" { 73 icon: tech:cplusplus 74 link : https://cplusplus.com "Website" 75 style { 76 color: gray-800 77 opacity: 50% 78 } 79 } 80 81 82 sql = component "SQL" { 83 icon: tech:azure-sql-database 84 link : https://en.wikipedia.org/wiki/SQL "Wikipedia" 85 style { 86 color: sky 87 } 88 } 89 90 go = component { 91 title: "Go" 92 icon: tech:go 93 link : https://go.dev "Website" 94 style { 95 color: sky 96 } 97 } 98 99 org-mode = component "Org Mode" { 100 icon: @/org-mode-symbol.svg 101 link : https://orgmode.org "Website" 102 style { 103 color: gray-800 104 } 105 } 106 107 } 108 109 build-systems = component "Build Systems" { 110 style { 111 color: red 112 opacity: 50% 113 } 114 115 component devenv { 116 link https://devenv.sh "Website" 117 icon https://raw.githubusercontent.com/cachix/devenv/85e78cbe26467a2c23c9d34869235740132d749f/logos/devenv-dark-bg.svg 118 style { 119 color: gray 120 } 121 } 122 123 platformio = component "PlatformIO" { 124 icon @/platformio-symbol.svg 125 link https://platformio.org "Website" 126 style { 127 color: amber 128 } 129 } 130 } 131 132 frameworks = component "Frameworks" { 133 style { 134 color: amber 135 opacity: 50% 136 } 137 138 home-manager = component "Home Manager" { 139 link https://github.com/nix-community/home-manager "GitHub" 140 icon https://repository-images.githubusercontent.com/78938149/bd7773f5-21d0-4653-b380-d3476697dfc4 141 style { 142 color: sky 143 } 144 145 } 146 147 freertos = component "FreeRTOS" { 148 icon @/freertos-logo.png 149 link https://www.freertos.org "Website" 150 style { 151 color: green 152 } 153 154 } 155 156 157 loco-rs = container "Loco.rs" { 158 icon @/loco-rs-symbol.png 159 link https://loco.rs "Website" 160 style { 161 color red 162 } 163 } 164 165 ratatui = container "Ratatui" { 166 icon @/ratatui-symbol.png 167 link https://ratatui.rs "Website" 168 style { 169 color purple-800 170 } 171 } 172 173 dioxus = container "Dioxus" { 174 icon @/dioxus-symbol.png 175 link https://dioxuslabs.com "Website" 176 style { 177 color amber 178 } 179 } 180 181 embassy = container "Embassy" { 182 icon @/embassy-symbol.png 183 link https://embassy.dev "Website" 184 style { 185 color orange-500 186 } 187 } 188 189 bastillebsd = container "BastilleBSD" { 190 icon @/bastillebsd-symbol.png 191 link https://bastillebsd.org "Website" 192 style { 193 color red 194 } 195 } 196 197 } 198 199 databases = container "Databases" { 200 style { 201 color teal-500 202 opacity 30% 203 } 204 205 postgres = component "Postgres" { 206 icon: tech:postgresql 207 link : https://www.postgresql.org "Website" 208 style { 209 color: cyan-800 210 shape: storage 211 } 212 } 213 214 215 sqlite = component "SQLite" { 216 icon: tech:sqlite 217 link : https://sqlite.org "Website" 218 style { 219 color: cyan-800 220 shape: storage 221 } 222 } 223 } 224 225 pr-review = container { 226 title: "🤖 PR Review Automation" 227 style { 228 color: orange-500 229 opacity: 40% 230 } 231 232 coderabbit = component { 233 title: "CodeRabbit" 234 icon: https://avatars.githubusercontent.com/u/132028505?s=200&v=4.svg 235 link: https://www.coderabbit.ai/ 236 style { 237 color: gray-500 238 } 239 } 240 241 conventional-comments = component { 242 title: "Conventional Comments" 243 icon: https://conventionalcomments.org/logo.png 244 link: https://conventionalcomments.org/ 245 style { 246 color: purple-600 247 } 248 } 249 } 250 251 gitops = container { 252 title: "🌵 GitOps" 253 icon: tech:git 254 style { 255 color: gray-500 256 opacity: 40% 257 } 258 259 trunk-based-development = component { 260 title: "Trunk-Based Development" 261 icon: https://trunkbaseddevelopment.com/images/logo.png 262 link: https://trunkbaseddevelopment.com/ "Website" 263 } 264 265 conventional-commits = component { 266 title: "Conventional Commits" 267 icon: https://avatars.githubusercontent.com/u/42154238?s=200&v=4.svg 268 link: https://www.conventionalcommits.org/en/v1.0.0/ 269 style { 270 color: rose-800 271 } 272 } 273 274 conventional-branch = component { 275 title: "Conventional Branch" 276 icon: https://avatars.githubusercontent.com/u/179835931?s=200&v=4.svg 277 link: https://conventional-branch.github.io/ 278 style { 279 color: sky 280 } 281 } 282 } 283 284 ci = container "♻ Continuous Integration" { 285 style { 286 color: gray-500 287 opacity: 40% 288 } 289 290 semantic-release = component { 291 title: "Semantic Release" 292 icon: https://avatars.githubusercontent.com/u/12867925?s=200&v=4.svg 293 link: https://semantic-release.gitbook.io/semantic-release/ 294 style { 295 color: gray-500 296 } 297 } 298 299 } 300 301 cd = container { 302 title: "🚢 Continuous Deployment" 303 style { 304 color: gray-500 305 opacity: 40% 306 } 307 308 pulumi = component "Pulumi" { 309 icon https://avatars.githubusercontent.com/u/21992475?s=48&v=4.svg 310 link https://pulumi.com 311 style { 312 color: yellow-800 313 } 314 } 315 316 linux-containers = component "Linux Containers" { 317 icon https://linuxcontainers.org/static/img/containers.png 318 link https://linuxcontainers.org "Website" 319 style { 320 color: orange-800 321 } 322 } 323 324 freebsd-jails = component "FreeBSD Jails" { 325 icon: https://www.ottmarklaas.net/2023/02/11/FreeBSD-jails-Another-Option-to-Encapsulate-a-Website-Development-Environment/freeBSDJail.jpeg 326 link: https://docs.freebsd.org/en/books/handbook/jails/ "Docs" 327 style { 328 color: red-800 329 } 330 } 331 332 333 docker = component "Docker" { 334 icon: tech:docker 335 link: https://docker.com "Website" 336 style { 337 color: blue-800 338 } 339 } 340 } 341 342 documentation = container { 343 title: "Technical Documentation" 344 icon: https://www.svgrepo.com/show/398268/scroll.svg 345 style { 346 color: blue-500 347 opacity: 40% 348 } 349 350 diataxis-model = component { 351 title: "Diátaxis Model" 352 icon: https://diataxis.fr/_static/favicon.png 353 link: https://diataxis.fr/ 354 style { 355 color: amber 356 } 357 } 358 359 mermaid-js = component { 360 title: "Mermaid.js" 361 icon: https://avatars.githubusercontent.com/u/57169982?s=48&v=4 362 link: https://mermaid.js.org/ 363 style { 364 color: pink-500 365 } 366 } 367 368 c4-model = component { 369 title: "C4 Model" 370 icon: https://avatars.githubusercontent.com/u/7525795?s=200&v=4.svg 371 link: https://c4model.com 372 style { 373 color: gray-500 374 } 375 } 376 } 377 378 microcontrollers = container "Microcontrollers" { 379 icon @/esp32s3-devkit-c-1-isometric.png 380 381 style { 382 color: red 383 opacity: 40% 384 } 385 386 387 espressif = component "Espressif" { 388 icon https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/espressif.svg 389 link https://www.espressif.com "Website" 390 style { 391 color: red 392 } 393 394 395 esp-idf = component "ESP IDF" { 396 icon https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/espressif.svg 397 link https://idf.espresssif.com "Website" 398 style { 399 color: red 400 } 401 } 402 403 esp32-s3-devkit-c-1 = component "ESP32-S3-Devkit-C-1" { 404 icon @/esp32s3-devkit-c-1-isometric.png 405 link https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/index.html "Website" 406 style { 407 color: red 408 } 409 } 410 411 } 412 413 arduino = component "Arduino" { 414 icon @/arduino-symbol.svg 415 link https://www.arduino.cc "Website" 416 style { 417 color: sky 418 } 419 420 uno-rev3 = component "Uno Rev3" { 421 icon @/arduino-uno-rev3.jpg 422 link https://store-usa.arduino.cc/products/arduino-uno-rev3?srsltid=AfmBOopp22rv2_bJbwQqVCBuK-3hQK0xiDhTMVaEHwqsIiYTXufI6REI "Website" 423 style { 424 color: sky 425 } 426 427 } 428 429 mega-2560 = component "Mega 2560" { 430 icon @/arduino-mega-2560-rev3.png 431 link https://store-usa.arduino.cc/products/arduino-mega-2560-rev3?srsltid=AfmBOoqVJBY3RhGwfQzFEV5Q3fMWrLdAriqohhCFlcQPsq_i7IW9Aj9h "Website" 432 style { 433 color: sky 434 } 435 436 } 437 438 giga-r1-wifi = component "Giga R1 Wifi" { 439 icon @/arduino-giga-r1-wifi.png 440 link https://store-usa.arduino.cc/products/giga-r1-wifi?srsltid=AfmBOoq5MEIshtbGu5rUpzyP2iBmWr6ot-ajqVWLZmoaGJqgedZk6S8d "Website" 441 style { 442 color: sky 443 } 444 } 445 } 446 447 stmicroelectronics = component "STMicroelectronics" { 448 icon @/stmicroelectronics-symbol.png 449 link https://www.st.com/content/st_com/en.html "Website" 450 style { 451 color: yellow 452 } 453 454 stm32f303vct6 = component "ST STM32F303VCT6" { 455 icon @/stm32f303vct6-isometric.jpg 456 link https://www.amazon.ca/dp/B00CWWSE6G?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_1 "Amazon" 457 style { 458 color: yellow 459 } 460 } 461 462 stm32cube = component "STM32 Cube" { 463 icon @/stm32cube-symbol.svg 464 link https://www.st.com/en/embedded-software/stm32cube-mcu-mpu-packages.html "Website" 465 style { 466 color: yellow 467 } 468 } 469 } 470 471 } 472 473 operating-systems = container "Operating Systems" { 474 style { 475 color: purple-500 476 opacity: 40% 477 } 478 479 userspaces = container "Userspaces" { 480 style { 481 shape person 482 color: green 483 opacity: 40% 484 } 485 486 ubuntu = container "Ubuntu" { 487 link https://ubuntu.com "Website" 488 icon tech:ubuntu 489 style { 490 color: slate-900 491 opacity: 40% 492 } 493 } 494 495 guix = container "GNU GUIX" { 496 link https://guix.gnu.org "Website" 497 icon https://guix.gnu.org/themes/initial/img/icon.svg 498 description: "NixOS alternative in Scheme from the GNU project, with a focus on libre software for academics." 499 style { 500 color: yellow 501 opacity: 40% 502 } 503 } 504 505 nixos = container "NixOS" { 506 link https://nixos.org "Website" 507 icon https://raw.githubusercontent.com/NixOS/nixos-artwork/9d2cdedd73d64a068214482902adea3d02783ba8/logo/nix-snowflake-rainbow.svg 508 style { 509 color: blue-800 510 opacity: 40% 511 } 512 513 nix-darwin = component "Nix-Darwin" { 514 description: """ 515 Declarative NixOS-like modules for MacOS. 516 """ 517 icon https://avatars.githubusercontent.com/u/203339767?s=200&v=4 518 link https://github.com/nix-darwin/nix-darwin "GitHub" 519 style { 520 color: pink-800 521 } 522 523 } 524 525 nixos-raspberrypi = component "NixOS Raspberry Pi" { 526 description: "Infrastructure, vendor packages, kernel, and some optimized third-party packages for NixOS running on Raspberry Pi devices." 527 link https://github.com/nvmd/nixos-raspberrypi?tab=readme-ov-file "GitHub" 528 icon tech:raspberrypi 529 style { 530 color: indigo 531 } 532 533 } 534 535 nix-on-droid = component "Nix-on-Droid" { 536 description: "NixOS for Android, based on Termux." 537 link https://github.com/nix-community/nix-on-droid "GitHub" 538 icon tech:android 539 style { 540 color: green 541 } 542 543 } 544 545 nixos-wsl = component "NixOS WSL" { 546 description: "Windows Subsystem for Linux distribution via systemd workarounds." 547 link https://github.com/nix-community/NixOS-WSL "GitHub" 548 icon https://raw.githubusercontent.com/nix-community/NixOS-WSL/refs/heads/main/assets/NixOS-WSL.svg 549 style { 550 color: purple-800 551 } 552 } 553 554 } 555 556 arch-linux = component "Arch Linux" { 557 description: "Lightweight and flexible GNU/Linux distribution that tries to Keep It Simple." 558 link https://archlinux.org "Website" 559 icon tech:arch-linux 560 style { 561 color: red 562 } 563 } 564 565 athenaos = component "Athena OS" { 566 description: "Batteries-supercharged multi distro system for cybersecurity power users." 567 link https://athenaos.org "Website" 568 icon https://athenaos.org/_astro/athena-dark.zw0VuR1C.svg 569 style { 570 color: amber 571 } 572 573 } 574 575 freebsd = component "FreeBSD" { 576 description: "UNIX-like operating system by the Berkeley Software Distribution, one of the only remaining open-source derivatives of AT&T's UNIX." 577 link https://www.freebsd.org "Website" 578 link https://docs.freebsd.org/en/articles/explaining-bsd/ "Explaining BSD Article" 579 icon https://docs.freebsd.org/favicon.ico 580 style { 581 color: gray 582 } 583 584 } 585 586 587 -> kernels "run on" 588 ubuntu -> kernels.linux 589 arch-linux -> kernels.linux 590 athenaos -> kernels.linux 591 guix -> kernels.linux 592 nixos -> kernels.linux 593 freebsd -> kernels.unix 594 595 } 596 597 kernels = container "Kernels" { 598 style { 599 color: yellow 600 opacity: 40% 601 } 602 603 linux = container "Linux" { 604 description: """ 605 UNIX-like kernel developed by [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds). 606 """ 607 608 icon tech:linux 609 610 style { 611 color: yellow 612 opacity: 40% 613 } 614 filesystem-hierarchy-standard = container "Filesystem Hierarchy Standard (FHS)" { 615 style { 616 color: yellow 617 opacity: 40% 618 } 619 620 root = component "/" { 621 description: "Root Directory" 622 style { 623 color: yellow 624 } 625 } 626 627 bin = component "/bin" { 628 description: """Essential command binaries needed in **single-user mode**, including to bring up the system or repair it, for all users (e.g., cat, ls, cp).""" 629 style { 630 color: yellow 631 } 632 } 633 634 dev = component "/dev" { 635 description: """Device files (e.g., `/dev/null`, `/dev/disk0`, `/dev/sda1`, `dev/tty`, `dev/random`)""" 636 style { 637 color: yellow 638 } 639 } 640 641 etc = component "/etc" { 642 description: "User home directories" 643 style { 644 color: yellow 645 } 646 } 647 648 home = component "/home" { 649 description: "User home directories" 650 style { 651 color: yellow 652 } 653 } 654 655 lib = component "/lib" { 656 description: "Shared libraries" 657 style { 658 color: yellow 659 } 660 } 661 } 662 } 663 664 unix = container "UNIX" { 665 666 icon tech:unix 667 668 style { 669 color: red 670 opacity: 40% 671 } 672 } 673 } 674 675 } 676 677 // nix -> devenv 678 // cplusplus -> platformio 679 // embedded-rust -> embassy 680 // go -> pulumi 681 // likec4 -> c4-model 682 // sql -> postgres 683 // sql -> sqlite 684 685 686 -> doombsd "generates" 687 -> apollyon-linux "generates" 688 -> openws "deploys" 689 } 690 }