# maximousblk/nyx architecture

> Architecture diagram of the GitHub repository maximousblk/nyx, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/maximousblk/nyx
- Repository: https://github.com/maximousblk/nyx

## Overview

nyx is a Nix-based personal infrastructure and workstation configuration repository. Its main workflow is an operator maintaining host and user configurations, which describe machine setup and the services provided on each host. The tree also shows separate containerized media, photo, bookmark, and document services, plus cloud infrastructure configuration. The README points to a topology diagram, but the supplied text contains no implementation excerpts for most Nix modules; the graph therefore captures the repository’s broad configuration domains without asserting detailed module-to-module calls.

Main entry points: [`hosts`](https://github.com/maximousblk/nyx/tree/main/hosts) (Machine configs), [`hosts/pyre`](https://github.com/maximousblk/nyx/tree/main/hosts/pyre) (Pyre server), [`homes`](https://github.com/maximousblk/nyx/tree/main/homes) (Home configs), [`hosts/cairn`](https://github.com/maximousblk/nyx/tree/main/hosts/cairn) (Cairn storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hosts["Host systems"]
  node_hostconfigs["Machine configs"]
  node_cairn["Cairn storage"]
  node_pyre["Pyre server"]
  node_scry["Scry server"]
  node_otherhosts["Other hosts"]
  node_nixcore["Shared Nix modules<br/>[nixconf.nix]"]
  node_topology["Topology config<br/>[topology.nix]"]
end

subgraph group_home["User environments"]
  node_homeconfigs["Home configs"]
  node_victushome["Victus desktop"]
  node_umbrahome["Umbra environment"]
end

subgraph group_apps["Hosted services"]
  node_pyrecontainers["Media and personal apps"]
  node_servarr["Media services"]
  node_scryservices["Game and platform services"]
  node_cairnservices["Storage services"]
end

subgraph group_cloud["Cloud infrastructure"]
  node_oracle["Oracle cloud"]
end

node_operator(("Operator"))

node_operator -->|"maintains"| node_hostconfigs
node_operator -->|"maintains"| node_homeconfigs
node_operator -->|"maintains"| node_oracle
node_hostconfigs -->|"configures"| node_cairn
node_hostconfigs -->|"configures"| node_pyre
node_hostconfigs -->|"configures"| node_scry
node_hostconfigs -->|"configures"| node_otherhosts
node_homeconfigs -->|"configures"| node_victushome
node_homeconfigs -->|"configures"| node_umbrahome
node_pyre -->|"hosts"| node_pyrecontainers
node_pyre -->|"hosts"| node_servarr
node_scry -->|"hosts"| node_scryservices
node_cairn -->|"hosts"| node_cairnservices
node_hostconfigs -->|"uses shared settings"| node_nixcore
node_hostconfigs -->|"describes topology"| node_topology

click node_hostconfigs "https://github.com/maximousblk/nyx/tree/main/hosts"
click node_cairn "https://github.com/maximousblk/nyx/tree/main/hosts/cairn"
click node_pyre "https://github.com/maximousblk/nyx/tree/main/hosts/pyre"
click node_scry "https://github.com/maximousblk/nyx/tree/main/hosts/scry"
click node_otherhosts "https://github.com/maximousblk/nyx/tree/main/hosts"
click node_homeconfigs "https://github.com/maximousblk/nyx/tree/main/homes"
click node_victushome "https://github.com/maximousblk/nyx/tree/main/homes/victus"
click node_umbrahome "https://github.com/maximousblk/nyx/tree/main/homes/umbra"
click node_pyrecontainers "https://github.com/maximousblk/nyx/tree/main/hosts/pyre/containers"
click node_servarr "https://github.com/maximousblk/nyx/tree/main/hosts/pyre/services/servarr"
click node_scryservices "https://github.com/maximousblk/nyx/tree/main/hosts/scry/services"
click node_cairnservices "https://github.com/maximousblk/nyx/tree/main/hosts/cairn/services"
click node_oracle "https://github.com/maximousblk/nyx/tree/main/infra/oracle"
click node_nixcore "https://github.com/maximousblk/nyx/blob/main/nixconf.nix"
click node_topology "https://github.com/maximousblk/nyx/blob/main/topology.nix"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_hostconfigs,node_cairn,node_pyre,node_scry,node_otherhosts,node_nixcore,node_topology toneBlue
class node_homeconfigs,node_victushome,node_umbrahome toneAmber
class node_pyrecontainers,node_servarr,node_scryservices,node_cairnservices toneMint
class node_oracle toneRose
class node_operator toneIndigo
```

## Components

### Host systems

- [Machine configs](https://github.com/maximousblk/nyx/tree/main/hosts): `hosts`
- [Cairn storage](https://github.com/maximousblk/nyx/tree/main/hosts/cairn): `hosts/cairn`
- [Pyre server](https://github.com/maximousblk/nyx/tree/main/hosts/pyre): `hosts/pyre`
- [Scry server](https://github.com/maximousblk/nyx/tree/main/hosts/scry): `hosts/scry`
- [Other hosts](https://github.com/maximousblk/nyx/tree/main/hosts): `hosts`
- [Shared Nix modules](https://github.com/maximousblk/nyx/blob/main/nixconf.nix): `nixconf.nix`
- [Topology config](https://github.com/maximousblk/nyx/blob/main/topology.nix): `topology.nix`

### User environments

- [Home configs](https://github.com/maximousblk/nyx/tree/main/homes): `homes`
- [Victus desktop](https://github.com/maximousblk/nyx/tree/main/homes/victus): `homes/victus`
- [Umbra environment](https://github.com/maximousblk/nyx/tree/main/homes/umbra): `homes/umbra`

### Hosted services

- [Media and personal apps](https://github.com/maximousblk/nyx/tree/main/hosts/pyre/containers): `hosts/pyre/containers`
- [Media services](https://github.com/maximousblk/nyx/tree/main/hosts/pyre/services/servarr): `hosts/pyre/services/servarr`
- [Game and platform services](https://github.com/maximousblk/nyx/tree/main/hosts/scry/services): `hosts/scry/services`
- [Storage services](https://github.com/maximousblk/nyx/tree/main/hosts/cairn/services): `hosts/cairn/services`

### Cloud infrastructure

- [Oracle cloud](https://github.com/maximousblk/nyx/tree/main/infra/oracle): `infra/oracle`

### Other components

- **Operator**

## Connections

- Operator → Machine configs: maintains
- Operator → Home configs: maintains
- Operator → Oracle cloud: maintains
- Machine configs → Cairn storage: configures
- Machine configs → Pyre server: configures
- Machine configs → Scry server: configures
- Machine configs → Other hosts: configures
- Home configs → Victus desktop: configures
- Home configs → Umbra environment: configures
- Pyre server → Media and personal apps: hosts
- Pyre server → Media services: hosts
- Scry server → Game and platform services: hosts
- Cairn storage → Storage services: hosts
- Machine configs → Shared Nix modules: uses shared settings
- Machine configs → Topology config: describes topology
