Architecture
Adding a bit to the Remote Falcon architecture diagram from here, we have Cloudflared and MinIO.
All web traffic goes through Cloudflared directly into NGINX.
Then we also have MinIO to provide object storage. The control-panel connects directly to MinIO and MinIO is connected to NGINX to allow for images to be viewable when used on the viewer page.
cloudflared-remotefalcon flowchart
---
config:
layout: fixed
---
flowchart LR
%% RF containers
control_panel([remote-falcon-control-panel])
viewer([remote-falcon-viewer])
plugins_api([remote-falcon-plugins-api])
external_api([remote-falcon-external-api])
ui([remote-falcon-ui])
%% Non-RF containers
nginx([nginx])
cloudflared([cloudflared])
mongo([MongoDB])
minio([MinIO])
fpp(["FPP/xSchedule"])
%% Connections based on depends_on and service usage
control_panel --> mongo
control_panel --> minio
viewer --> mongo
plugins_api --> mongo
external_api --> mongo
external_api --> viewer
ui --> control_panel
ui --> viewer
nginx --> control_panel
nginx --> viewer
nginx --> plugins_api
nginx --> external_api
nginx --> ui
nginx --> minio
cloudflared --> nginx
fpp --> plugins_api
click control_panel href "containers#control-panel" "Control Panel Container"
click viewer href "containers#viewer" "Viewer Container"
click plugins_api href "containers#plugins-api" "Plugins API Container"
click external_api href "containers#external-api" "External API Container"
click ui href "containers#ui" "UI Container"
click nginx href "containers#nginx" "NGINX Container"
click cloudflared href "containers#cloudflared" "Cloudflared Container"
click minio href "containers#minio" "MinIO Container"
click mongo href "containers#mongo" "MongoDB Container"