# pushitcake/beacon-panel architecture

> Architecture diagram of the GitHub repository pushitcake/beacon-panel, 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/pushitcake/beacon-panel
- Repository: https://github.com/pushitcake/beacon-panel

## Overview

Beacon Panel is a Pterodactyl-derived game-server management panel with Beacon-specific catalog and content-management features. Users access server administration and operations through web and API endpoints; Beacon clients can search provider content, inspect installations, and request asynchronous mutations, while catalog provisioning creates servers. The tree also shows account/authentication, scheduling, backups, and server-management subsystems. Sampled source confirms route registration, content search/provider use, and parts of the mutation workflow; other legacy subsystem wiring is represented at a coarse level because its implementation was not sampled.

Main entry points: [`app/Providers/RouteServiceProvider.php`](https://github.com/pushitcake/beacon-panel/blob/main/app/Providers/RouteServiceProvider.php) (Web routes), [`app/Http/Controllers/Api/Client/Servers/BeaconContentController.php`](https://github.com/pushitcake/beacon-panel/blob/main/app/Http/Controllers/Api/Client/Servers/BeaconContentController.php) (Content endpoints), [`app/Models/Server.php`](https://github.com/pushitcake/beacon-panel/blob/main/app/Models/Server.php) (Server state), [`app/Http/Controllers/Api/Beacon`](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Beacon) (Beacon endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and APIs"]
  node_web_routes["Web routes"]
  node_auth["Authentication"]
  node_admin_api["Admin endpoints"]
  node_client_api["Client endpoints"]
  node_app_api["Application API"]
  node_remote_api["Remote API"]
end

subgraph group_servers["Server Management"]
  node_server_admin["Server administration"]
  node_provisioning["Server provisioning"]
  node_server_model[("Server state<br/>[Server.php]")]
  node_server_ops["Server operations"]
  node_schedules["Scheduled tasks<br/>[RunTaskJob.php]"]
  node_backups[("Backup storage<br/>[BackupManager.php]")]
end

subgraph group_beacon["Beacon Features"]
  node_beacon_api["Beacon endpoints"]
  node_catalog[("Server catalog")]
  node_catalog_job["Catalog creation job"]
  node_content_api["Content endpoints"]
  node_provider["Modrinth provider"]
  node_content_planner["Dependency planning"]
  node_content_mutation["Mutation preparation"]
  node_content_ops["Content operations"]
  node_install_job["Content install job"]
  node_content_state[("Installation state")]
  node_content_service["Content provider service"]
end

subgraph group_runtime["Runtime Services"]
  node_minecraft["Minecraft properties"]
  node_database[("Panel database<br/>[Model.php]")]
end

node_user(("Panel user"))
node_wings{{"Wings daemon"}}

node_user -->|"sends requests"| node_web_routes
node_web_routes -->|"routes auth"| node_auth
node_web_routes -->|"routes admin"| node_admin_api
node_web_routes -->|"routes client"| node_client_api
node_web_routes -->|"routes application"| node_app_api
node_web_routes -->|"routes Beacon"| node_beacon_api
node_web_routes -->|"routes remote"| node_remote_api
node_admin_api -->|"manages servers"| node_server_admin
node_server_admin -->|"updates state"| node_server_model
node_beacon_api -->|"serves catalog"| node_catalog
node_beacon_api -->|"queues creation"| node_catalog_job
node_catalog_job -->|"creates server"| node_provisioning
node_provisioning -->|"persists server"| node_server_model
node_content_api -->|"searches versions"| node_provider
node_content_api -->|"plans dependencies"| node_content_planner
node_content_api -->|"prepares mutation"| node_content_mutation
node_content_api -->|"reads installations"| node_content_state
node_content_api -->|"starts operation"| node_content_ops
node_content_ops -->|"dispatches job"| node_install_job
node_content_service -.->|"registers provider"| node_provider
node_remote_api -->|"serves daemon requests"| node_wings
node_server_ops -->|"controls server"| node_wings
node_schedules -->|"runs task"| node_wings
node_backups -->|"stores metadata"| node_database
node_server_model -->|"persists state"| node_database
node_content_state -->|"persists installs"| node_database
node_minecraft -->|"uses server data"| node_server_model

click node_web_routes "https://github.com/pushitcake/beacon-panel/blob/main/app/Providers/RouteServiceProvider.php"
click node_auth "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Auth"
click node_admin_api "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Admin"
click node_client_api "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Client"
click node_app_api "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Application"
click node_remote_api "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Remote"
click node_server_admin "https://github.com/pushitcake/beacon-panel/blob/main/app/Http/Controllers/Admin/ServersController.php"
click node_server_model "https://github.com/pushitcake/beacon-panel/blob/main/app/Models/Server.php"
click node_schedules "https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Schedule/RunTaskJob.php"
click node_backups "https://github.com/pushitcake/beacon-panel/blob/main/app/Extensions/Backups/BackupManager.php"
click node_beacon_api "https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Beacon"
click node_catalog "https://github.com/pushitcake/beacon-panel/blob/main/app/Models/BeaconCatalogApplication.php"
click node_catalog_job "https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Beacon/CreateCatalogServerJob.php"
click node_content_api "https://github.com/pushitcake/beacon-panel/blob/main/app/Http/Controllers/Api/Client/Servers/BeaconContentController.php"
click node_provider "https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/Providers/ModrinthProvider.php"
click node_content_planner "https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/DependencyPlanner.php"
click node_content_mutation "https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/PrepareContentMutationService.php"
click node_install_job "https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Beacon/InstallContentJob.php"
click node_content_state "https://github.com/pushitcake/beacon-panel/blob/main/app/Models/BeaconContentInstallation.php"
click node_content_service "https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/ContentServiceProvider.php"
click node_database "https://github.com/pushitcake/beacon-panel/blob/main/app/Models/Model.php"

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_web_routes,node_auth,node_admin_api,node_client_api,node_app_api,node_remote_api,node_user toneBlue
class node_server_admin,node_provisioning,node_server_model,node_server_ops,node_schedules,node_backups toneAmber
class node_beacon_api,node_catalog,node_catalog_job,node_content_api,node_provider,node_content_planner,node_content_mutation,node_content_ops,node_install_job,node_content_state,node_content_service toneMint
class node_minecraft,node_database toneRose
class node_wings toneIndigo
```

## Components

### Access and APIs

- [Web routes](https://github.com/pushitcake/beacon-panel/blob/main/app/Providers/RouteServiceProvider.php): `app/Providers/RouteServiceProvider.php`
- [Authentication](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Auth): `app/Http/Controllers/Auth`
- [Admin endpoints](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Admin): `app/Http/Controllers/Admin`
- [Client endpoints](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Client): `app/Http/Controllers/Api/Client`
- [Application API](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Application): `app/Http/Controllers/Api/Application`
- [Remote API](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Remote): `app/Http/Controllers/Api/Remote`

### Server Management

- [Server administration](https://github.com/pushitcake/beacon-panel/blob/main/app/Http/Controllers/Admin/ServersController.php): `app/Http/Controllers/Admin/ServersController.php`
- **Server provisioning**
- [Server state](https://github.com/pushitcake/beacon-panel/blob/main/app/Models/Server.php): `app/Models/Server.php`
- **Server operations**
- [Scheduled tasks](https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Schedule/RunTaskJob.php): `app/Jobs/Schedule/RunTaskJob.php`
- [Backup storage](https://github.com/pushitcake/beacon-panel/blob/main/app/Extensions/Backups/BackupManager.php): `app/Extensions/Backups/BackupManager.php`

### Beacon Features

- [Beacon endpoints](https://github.com/pushitcake/beacon-panel/tree/main/app/Http/Controllers/Api/Beacon): `app/Http/Controllers/Api/Beacon`
- [Server catalog](https://github.com/pushitcake/beacon-panel/blob/main/app/Models/BeaconCatalogApplication.php): `app/Models/BeaconCatalogApplication.php`
- [Catalog creation job](https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Beacon/CreateCatalogServerJob.php): `app/Jobs/Beacon/CreateCatalogServerJob.php`
- [Content endpoints](https://github.com/pushitcake/beacon-panel/blob/main/app/Http/Controllers/Api/Client/Servers/BeaconContentController.php): `app/Http/Controllers/Api/Client/Servers/BeaconContentController.php`
- [Modrinth provider](https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/Providers/ModrinthProvider.php): `app/Beacon/Content/Providers/ModrinthProvider.php`
- [Dependency planning](https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/DependencyPlanner.php): `app/Beacon/Content/DependencyPlanner.php`
- [Mutation preparation](https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/PrepareContentMutationService.php): `app/Beacon/Content/PrepareContentMutationService.php`
- **Content operations**
- [Content install job](https://github.com/pushitcake/beacon-panel/blob/main/app/Jobs/Beacon/InstallContentJob.php): `app/Jobs/Beacon/InstallContentJob.php`
- [Installation state](https://github.com/pushitcake/beacon-panel/blob/main/app/Models/BeaconContentInstallation.php): `app/Models/BeaconContentInstallation.php`
- [Content provider service](https://github.com/pushitcake/beacon-panel/blob/main/app/Beacon/Content/ContentServiceProvider.php): `app/Beacon/Content/ContentServiceProvider.php`

### Runtime Services

- **Minecraft properties**
- [Panel database](https://github.com/pushitcake/beacon-panel/blob/main/app/Models/Model.php): `app/Models/Model.php`

### Other components

- **Panel user**
- **Wings daemon**

## Connections

- Panel user → Web routes: sends requests
- Web routes → Authentication: routes auth
- Web routes → Admin endpoints: routes admin
- Web routes → Client endpoints: routes client
- Web routes → Application API: routes application
- Web routes → Beacon endpoints: routes Beacon
- Web routes → Remote API: routes remote
- Admin endpoints → Server administration: manages servers
- Server administration → Server state: updates state
- Beacon endpoints → Server catalog: serves catalog
- Beacon endpoints → Catalog creation job: queues creation
- Catalog creation job → Server provisioning: creates server
- Server provisioning → Server state: persists server
- Content endpoints → Modrinth provider: searches versions
- Content endpoints → Dependency planning: plans dependencies
- Content endpoints → Mutation preparation: prepares mutation
- Content endpoints → Installation state: reads installations
- Content endpoints → Content operations: starts operation
- Content operations → Content install job: dispatches job
- Content provider service → Modrinth provider: registers provider
- Remote API → Wings daemon: serves daemon requests
- Server operations → Wings daemon: controls server
- Scheduled tasks → Wings daemon: runs task
- Backup storage → Panel database: stores metadata
- Server state → Panel database: persists state
- Installation state → Panel database: persists installs
- Minecraft properties → Server state: uses server data
