# quirky1869/arcane architecture

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

- Interactive diagram: https://gitdiagram.com/quirky1869/arcane
- Repository: https://github.com/quirky1869/arcane

## Overview

This repository is a self-hosted Docker stack collection managed through Arcane. An operator deploys Arcane and selected project stacks; Traefik provides reverse-proxy access, Technitium supplies local DNS, and mkcert supports HTTPS certificates. The README documents these deployment modes and several hosted services. The source excerpts are limited to an empty Homepage customization file, so wiring beyond the README’s explicit deployment guidance is omitted.

Main entry points: [`projects/traefik/docker-compose.yml`](https://github.com/quirky1869/arcane/blob/main/projects/traefik/docker-compose.yml) (Traefik), [`docker-compose.yml`](https://github.com/quirky1869/arcane/blob/main/docker-compose.yml) (Arcane), [`projects/mkcert`](https://github.com/quirky1869/arcane/tree/main/projects/mkcert) (mkcert), [`projects`](https://github.com/quirky1869/arcane/tree/main/projects) (Project stacks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_management["Stack management"]
  node_arcane["Arcane<br/>[docker-compose.yml]"]
  node_docker["Docker Engine"]
  node_projectfiles["Project stacks"]
end

subgraph group_network["Network access"]
  node_traefik["Traefik<br/>[docker-compose.yml]"]
  node_technitium[("Technitium DNS")]
  node_mkcert["mkcert"]
end

subgraph group_productivity["Productivity apps"]
  node_homepage["Homepage<br/>[docker-compose.yml]"]
  node_ittools["IT Tools<br/>[docker-compose.yml]"]
  node_excalidraw["Excalidraw<br/>[docker-compose.yml]"]
  node_drawio["Draw.io<br/>[docker-compose.yml]"]
  node_bentopdf["BentoPDF<br/>[docker-compose.yml]"]
  node_convertx["ConvertX<br/>[docker-compose.yml]"]
end

subgraph group_operations["Operations apps"]
  node_dozzle["Dozzle<br/>[docker-compose.yml]"]
  node_beszel["Beszel<br/>[docker-compose.yml]"]
  node_grafana["Grafana<br/>[docker-compose.yml]"]
  node_netbox["NetBox<br/>[docker-compose.yml]"]
  node_rackula["Rackula<br/>[docker-compose.yml]"]
  node_scanopy["Scanopy<br/>[docker-compose.yml]"]
end

node_operator(("Operator"))

node_operator -->|"manages stacks"| node_arcane
node_arcane -->|"controls containers"| node_docker
node_arcane -->|"mounts projects"| node_projectfiles
node_operator -->|"starts first"| node_traefik
node_traefik -.->|"routes requests"| node_homepage
node_traefik -.->|"routes requests"| node_ittools
node_traefik -.->|"routes requests"| node_excalidraw
node_traefik -.->|"routes requests"| node_drawio
node_traefik -.->|"routes requests"| node_bentopdf
node_traefik -.->|"routes requests"| node_convertx
node_traefik -.->|"routes requests"| node_dozzle
node_traefik -.->|"routes requests"| node_beszel
node_traefik -.->|"routes requests"| node_grafana
node_traefik -.->|"routes requests"| node_netbox
node_traefik -.->|"routes requests"| node_rackula
node_traefik -.->|"routes requests"| node_scanopy
node_operator -.->|"configures DNS"| node_technitium
node_technitium -.->|"resolves hostnames"| node_traefik
node_mkcert -.->|"enables HTTPS"| node_traefik

click node_arcane "https://github.com/quirky1869/arcane/blob/main/docker-compose.yml"
click node_projectfiles "https://github.com/quirky1869/arcane/tree/main/projects"
click node_traefik "https://github.com/quirky1869/arcane/blob/main/projects/traefik/docker-compose.yml"
click node_mkcert "https://github.com/quirky1869/arcane/tree/main/projects/mkcert"
click node_homepage "https://github.com/quirky1869/arcane/blob/main/projects/homepage/docker-compose.yml"
click node_ittools "https://github.com/quirky1869/arcane/blob/main/projects/it-tools/docker-compose.yml"
click node_excalidraw "https://github.com/quirky1869/arcane/blob/main/projects/Excalidraw/docker-compose.yml"
click node_drawio "https://github.com/quirky1869/arcane/blob/main/projects/draw.io/docker-compose.yml"
click node_bentopdf "https://github.com/quirky1869/arcane/blob/main/projects/bentopdf/docker-compose.yml"
click node_convertx "https://github.com/quirky1869/arcane/blob/main/projects/convertX/docker-compose.yml"
click node_dozzle "https://github.com/quirky1869/arcane/blob/main/projects/dozzle/docker-compose.yml"
click node_beszel "https://github.com/quirky1869/arcane/blob/main/projects/beszel/docker-compose.yml"
click node_grafana "https://github.com/quirky1869/arcane/blob/main/projects/grafana/docker-compose.yml"
click node_netbox "https://github.com/quirky1869/arcane/blob/main/projects/netbox/docker-compose.yml"
click node_rackula "https://github.com/quirky1869/arcane/blob/main/projects/rackula/docker-compose.yml"
click node_scanopy "https://github.com/quirky1869/arcane/blob/main/projects/scanopy/docker-compose.yml"

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_arcane,node_docker,node_projectfiles toneBlue
class node_traefik,node_technitium,node_mkcert toneAmber
class node_homepage,node_ittools,node_excalidraw,node_drawio,node_bentopdf,node_convertx toneMint
class node_dozzle,node_beszel,node_grafana,node_netbox,node_rackula,node_scanopy toneRose
class node_operator toneIndigo
```

## Components

### Stack management

- [Arcane](https://github.com/quirky1869/arcane/blob/main/docker-compose.yml): `docker-compose.yml`
- **Docker Engine**
- [Project stacks](https://github.com/quirky1869/arcane/tree/main/projects): `projects`

### Network access

- [Traefik](https://github.com/quirky1869/arcane/blob/main/projects/traefik/docker-compose.yml): `projects/traefik/docker-compose.yml`
- **Technitium DNS**
- [mkcert](https://github.com/quirky1869/arcane/tree/main/projects/mkcert): `projects/mkcert`

### Productivity apps

- [Homepage](https://github.com/quirky1869/arcane/blob/main/projects/homepage/docker-compose.yml): `projects/homepage/docker-compose.yml`
- [IT Tools](https://github.com/quirky1869/arcane/blob/main/projects/it-tools/docker-compose.yml): `projects/it-tools/docker-compose.yml`
- [Excalidraw](https://github.com/quirky1869/arcane/blob/main/projects/Excalidraw/docker-compose.yml): `projects/Excalidraw/docker-compose.yml`
- [Draw.io](https://github.com/quirky1869/arcane/blob/main/projects/draw.io/docker-compose.yml): `projects/draw.io/docker-compose.yml`
- [BentoPDF](https://github.com/quirky1869/arcane/blob/main/projects/bentopdf/docker-compose.yml): `projects/bentopdf/docker-compose.yml`
- [ConvertX](https://github.com/quirky1869/arcane/blob/main/projects/convertX/docker-compose.yml): `projects/convertX/docker-compose.yml`

### Operations apps

- [Dozzle](https://github.com/quirky1869/arcane/blob/main/projects/dozzle/docker-compose.yml): `projects/dozzle/docker-compose.yml`
- [Beszel](https://github.com/quirky1869/arcane/blob/main/projects/beszel/docker-compose.yml): `projects/beszel/docker-compose.yml`
- [Grafana](https://github.com/quirky1869/arcane/blob/main/projects/grafana/docker-compose.yml): `projects/grafana/docker-compose.yml`
- [NetBox](https://github.com/quirky1869/arcane/blob/main/projects/netbox/docker-compose.yml): `projects/netbox/docker-compose.yml`
- [Rackula](https://github.com/quirky1869/arcane/blob/main/projects/rackula/docker-compose.yml): `projects/rackula/docker-compose.yml`
- [Scanopy](https://github.com/quirky1869/arcane/blob/main/projects/scanopy/docker-compose.yml): `projects/scanopy/docker-compose.yml`

### Other components

- **Operator**

## Connections

- Operator → Arcane: manages stacks
- Arcane → Docker Engine: controls containers
- Arcane → Project stacks: mounts projects
- Operator → Traefik: starts first
- Traefik → Homepage: routes requests
- Traefik → IT Tools: routes requests
- Traefik → Excalidraw: routes requests
- Traefik → Draw.io: routes requests
- Traefik → BentoPDF: routes requests
- Traefik → ConvertX: routes requests
- Traefik → Dozzle: routes requests
- Traefik → Beszel: routes requests
- Traefik → Grafana: routes requests
- Traefik → NetBox: routes requests
- Traefik → Rackula: routes requests
- Traefik → Scanopy: routes requests
- Operator → Technitium DNS: configures DNS
- Technitium DNS → Traefik: resolves hostnames
- mkcert → Traefik: enables HTTPS
