# aruncs1005/spark architecture

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

- Interactive diagram: https://gitdiagram.com/aruncs1005/spark
- Repository: https://github.com/aruncs1005/spark

## Overview

This repository is a snapshot of a self-hosted home-server setup: CasaOS configuration alongside media, file-sharing, music-grabbing, VPN, and proxy services. The tree and sampled files show service configuration and persisted state, but no README or application source establishing runtime call paths. The graph therefore maps the deployed components without inventing request or data-flow edges.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Server platform"]
  node_casaos["CasaOS configuration"]
end

subgraph group_media["Media services"]
  node_jellyfin["Jellyfin"]
  node_jellyfindb[("Jellyfin database<br/>[jellyfin.db]")]
  node_jellyfinconfig["Jellyfin settings"]
  node_jellyfinmetadata["Media metadata"]
end

subgraph group_apps["Hosted apps"]
  node_musicgrabber["Music Grabber<br/>[compose.yaml]"]
  node_musicdb[("Music Grabber database<br/>[music_grabber.db]")]
  node_seafile["Seafile<br/>[seafile-server.yml]"]
end

subgraph group_network["Network access"]
  node_zerotier["ZeroTier"]
  node_cloudflared["Cloudflare Tunnel config<br/>[config.yml]"]
  node_nginx["Nginx configuration<br/>[spark.conf]"]
end

click node_casaos "https://github.com/aruncs1005/spark/tree/main/etc/casaos"
click node_jellyfin "https://github.com/aruncs1005/spark/tree/main/docker/jellyfin"
click node_jellyfindb "https://github.com/aruncs1005/spark/blob/main/docker/jellyfin/data/jellyfin.db"
click node_jellyfinconfig "https://github.com/aruncs1005/spark/tree/main/docker/jellyfin/config"
click node_jellyfinmetadata "https://github.com/aruncs1005/spark/tree/main/docker/jellyfin/metadata"
click node_musicgrabber "https://github.com/aruncs1005/spark/blob/main/apps/musicgrabber/compose.yaml"
click node_musicdb "https://github.com/aruncs1005/spark/blob/main/apps/musicgrabber/data/music_grabber.db"
click node_seafile "https://github.com/aruncs1005/spark/blob/main/apps/seafile/seafile-server.yml"
click node_zerotier "https://github.com/aruncs1005/spark/tree/main/apps/zerotier"
click node_cloudflared "https://github.com/aruncs1005/spark/blob/main/etc/cloudflared/config.yml"
click node_nginx "https://github.com/aruncs1005/spark/blob/main/etc/nginx/conf.d/spark.conf"

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_casaos toneBlue
class node_jellyfin,node_jellyfindb,node_jellyfinconfig,node_jellyfinmetadata toneAmber
class node_musicgrabber,node_musicdb,node_seafile toneMint
class node_zerotier,node_cloudflared,node_nginx toneRose
```

## Components

### Server platform

- [CasaOS configuration](https://github.com/aruncs1005/spark/tree/main/etc/casaos): `etc/casaos`

### Media services

- [Jellyfin](https://github.com/aruncs1005/spark/tree/main/docker/jellyfin): `docker/jellyfin`
- [Jellyfin database](https://github.com/aruncs1005/spark/blob/main/docker/jellyfin/data/jellyfin.db): `docker/jellyfin/data/jellyfin.db`
- [Jellyfin settings](https://github.com/aruncs1005/spark/tree/main/docker/jellyfin/config): `docker/jellyfin/config`
- [Media metadata](https://github.com/aruncs1005/spark/tree/main/docker/jellyfin/metadata): `docker/jellyfin/metadata`

### Hosted apps

- [Music Grabber](https://github.com/aruncs1005/spark/blob/main/apps/musicgrabber/compose.yaml): `apps/musicgrabber/compose.yaml`
- [Music Grabber database](https://github.com/aruncs1005/spark/blob/main/apps/musicgrabber/data/music_grabber.db): `apps/musicgrabber/data/music_grabber.db`
- [Seafile](https://github.com/aruncs1005/spark/blob/main/apps/seafile/seafile-server.yml): `apps/seafile/seafile-server.yml`

### Network access

- [ZeroTier](https://github.com/aruncs1005/spark/tree/main/apps/zerotier): `apps/zerotier`
- [Cloudflare Tunnel config](https://github.com/aruncs1005/spark/blob/main/etc/cloudflared/config.yml): `etc/cloudflared/config.yml`
- [Nginx configuration](https://github.com/aruncs1005/spark/blob/main/etc/nginx/conf.d/spark.conf): `etc/nginx/conf.d/spark.conf`
