Update WIP backend diagram

This commit is contained in:
Gabe Kangas 2023-02-23 12:35:55 -08:00
parent 38b8fd0065
commit 034e2a61bc
No known key found for this signature in database
GPG Key ID: 4345B2060657F330

View File

@ -47,21 +47,21 @@ subgraph VideoPipeline[Video Pipeline]
RTMPService[fa:fa-video RTMP Service]
end
subgraph ChatService[fa:fa-comment Chat Service]
subgraph ChatService[fa:fa-comment Chat\nService]
end
subgraph Dependencies
OutboundWebhooks[Outbound]
App{Application}
App{AppController}
ChatService--->App
Webhooks--->App
ActivityPubOutboundHandlers[fa:fa-hashtag ActivityPub\nOutbound]--->App
ConfigRepository(fa:fa-hard-drive Config Repository)--->App
UserRepository(fa:fa-hard-drive User Repository)--->App
APRepository(fa:fa-hard-drive ActivityPub Repository)--->App
NotificationsRepository(fa:fa-hard-drive Notifications Repository)--->App
ChatRepository(fa:fa-hard-drive Chat Repository)
ConfigRepository(fa:fa-hard-drive Config\nRepository)--->App
UserRepository(fa:fa-hard-drive User\nRepository)--->App
NotificationsRepository(fa:fa-hard-drive Notifications\nRepository)--->App
ChatRepository(fa:fa-hard-drive Chat\nRepository)
APRepository(fa:fa-hard-drive ActivityPub\nRepository)
Database(fa:fa-hard-drive Database)--->ConfigRepository
Database--->UserRepository
@ -70,33 +70,30 @@ subgraph Dependencies
ChatRepository-->ChatService
ApplicationState(fa:fa-list Application State)--->App
GeoIP(fa:fa-globe GeoIP Lookup)--->App
ApplicationState(fa:fa-list Application\nState)--->App
GeoIP(fa:fa-globe GeoIP\nLookup)--->App
Statistics(fa:fa-list Statistics)--->App
OutboundWebhooks[Outbound\nWebhooks]--->App
end
subgraph VideoStorageProviders[Video Storage Providers]
LocalStorage((fa:fa-hard-drive Local Storage))
S3Storage((fa:fa-hard-drive S3 Storage))
LocalStorage((fa:fa-hard-drive Local\nStorage))
S3Storage((fa:fa-hard-drive S3\nStorage))
end
subgraph ActivityPub
ActivityPubInboundHandlers[fa:fa-hashtag Inbound]
ActivityPubOutboundHandlers[fa:fa-hashtag Outbound]
end
subgraph Authentication
subgraph Authentication[Chat Authentication]
IndieAuth[fa:fa-key IndieAuth]
FediAuth[fa:fa-key FediAuth]
end
subgraph Notifications
subgraph Notifications[External Notifications]
DiscordNotifier[fa:fa-comment Discord]
BrowserNotifier[fa:fa-browser Browser]
end
subgraph WebServer[Web Server]
ActivityPubHandlers[fa:fa-file ActivityPub Handlers]
ActivityPubHandlers[fa:fa-file ActivityPub\nHandlers]
subgraph WebAssets[Web Assets]
EmbeddedStaticFiles((fa:fa-file Embedded\nStatic Assets))
@ -106,31 +103,31 @@ subgraph WebServer[Web Server]
end
subgraph HTTPHandlers[fa:fa-browser HTTP Handlers]
AdminAPIs[Admin APIs]
ThirdPartyAPIs[3rd Party APIs]
AdminAPIs[Admin\nAPIs]
ThirdPartyAPIs[3rd Party\nAPIs]
WebSocket[WebSocket]
subgraph ChatAPIs[Chat APIs]
ChatUserRegistration[Chat User Registration]
subgraph ChatAPIs[Chat\nAPIs]
ChatUserRegistration[Chat User\nRegistration]
Emoji[Emojis]
subgraph ChatAuthAPIs[Chat Authentication]
subgraph ChatAuthAPIs[Chat\nAuthentication]
FediAuth
IndieAuth
end
end
subgraph VideoAPIs[fa:fa-video Video APIs]
ViewerPing[Viewer Ping]
PlaybackMetrics[Playback health metrics]
ViewerPing[Viewer\nPing]
PlaybackMetrics[Playback\nHealth Metrics]
end
ActivityPubHandlers
ApplicationConfig[Application Config]
ApplicationStatus[Application Status]
Directory[Directory API]
ApplicationConfig[Application\nConfig]
ApplicationStatus[Application\nStatus]
Directory[Directory\nAPI]
Followers[Followers]
end
end
subgraph Streamer
BroadcastingSoftware>fa:fa-video BroadcastingSoftware]
BroadcastingSoftware>fa:fa-video Broadcasting\nSoftware]
end
%% All the services and packages require access
@ -139,25 +136,21 @@ App-.->HTTPHandlers
App-.->VideoPipeline
App-.->ActivityPub
App-.->Authentication
App-.Stream went\nonline.->Notifications
App-.->DirectoryNotifier[Directory Notifier]
App-.->Notifications
App-.->DirectoryNotifier[Owncast\nDirectory]
LocalStorage--HLS-->OnDiskStaticFiles
RTMPService>RTMP Ingest]--RTMP-->VideoTranscoder
VideoTranscoder--HLS-->VideoStorageProviders
%% Viewers
VideoPlayer-->VideoStorageProviders
WebBrowser-->WebAssets
%% Streamers
BroadcastingSoftware--RTMP-->RTMPService
%% Style the nodes
%% Define reusable styles for node types
classDef bigtext font-weight:bold,font-size:20px
classDef bigtext font-weight:bold,font-size:40px
classDef repository fill:#4F625B,color:#fff
classDef webservice fill:#6082B6,color:#fff
classDef rtmp fill:#608200, color:#fff
@ -191,5 +184,5 @@ class LocalStorage storage
class S3Storage storage
%% Customize the theme styles
%%{init: {'theme':'base', 'themeVariables': {'darkMode': true, 'lineColor': '#c3dafe', 'tertiaryTextColor': 'white', 'clusterBkg': '#2d3748', 'primaryTextColor': '#39373d', "edgeLabelBackground": "white", "fontFamily": "monospace"}}}%%
%%{init: {'theme':'base', 'themeVariables': {'darkMode': true, 'lineColor': '#c3dafe', 'tertiaryTextColor': 'white', 'clusterBkg': '#2d3748', 'primaryTextColor': '#39373d', "edgeLabelBackground": "white", "fontFamily": "monospace", "fontSize": "30px"}}}%%
```