mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-21 10:50:10 +00:00
docs: add mermaid architecture diagrams to readme files
Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com> Signed-off-by: Simon L. <szaimen@e.mail.de>
This commit is contained in:
committed by
Simon L.
parent
da88c7d25b
commit
5cf4580a86
@@ -4,6 +4,61 @@ This directory features containers that are built for AIO which allows to add ad
|
|||||||
## Disclaimers
|
## Disclaimers
|
||||||
All containers that are in this directory are community maintained so the responsibility is on the community to keep them updated and secure. There is no guarantee that this will be the case in the future.
|
All containers that are in this directory are community maintained so the responsibility is on the community to keep them updated and secure. There is no guarantee that this will be the case in the future.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
%% ── Styles ───────────────────────────────────────────────────────────────────
|
||||||
|
classDef community fill:#FDEBD0,stroke:#E67E22,color:#222
|
||||||
|
classDef group fill:#FEF9E7,stroke:#F39C12,color:#333
|
||||||
|
|
||||||
|
subgraph COMM_AI["🤖 AI & Language"]
|
||||||
|
LAI(["🧠 Local AI\nPrivate AI assistant"]):::community
|
||||||
|
LT(["✏️ LanguageTool\nSpell & grammar check"]):::community
|
||||||
|
LTRANS(["🌐 LibreTranslate\nTranslation engine"]):::community
|
||||||
|
FACE(["🙂 FaceRecognition\nPhoto AI processor"]):::community
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph COMM_BACKUP["💾 Backup & Storage"]
|
||||||
|
BV(["📦 Borgbackup Viewer\nBrowse backups"]):::community
|
||||||
|
CALB(["📅 CalCardBackup\nCalendar/Contacts backup"]):::community
|
||||||
|
MINIO(["🗃️ MinIO\nS3-compatible storage"]):::community
|
||||||
|
SMB(["📂 SMB Server\nWindows file sharing"]):::community
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph COMM_EXTRA["🌟 Extra Services"]
|
||||||
|
HA(["🏠 Home Assistant\nHome automation"]):::community
|
||||||
|
STLW(["📧 Stalwart\nMail server"]):::community
|
||||||
|
NOCO(["🗂️ NocoDB\nNo-code database"]):::community
|
||||||
|
JSER(["🎯 Jellyseerr\nMedia request manager"]):::community
|
||||||
|
NOTIF(["📣 Notifications\nExternal push notify"]):::community
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph COMM_MEDIA["🎬 Media"]
|
||||||
|
PLEX(["🎞️ Plex\nMedia Server"]):::community
|
||||||
|
JELLY(["🎬 Jellyfin\nMedia Server"]):::community
|
||||||
|
DLNA(["📡 DLNA\nMedia Streaming"]):::community
|
||||||
|
MEMTR(["📸 Memories\nVideo Transcoder"]):::community
|
||||||
|
MKV(["💿 MakeMKV\nBlu-ray / DVD rip"]):::community
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph COMM_MONITOR["📊 Monitoring & Infra"]
|
||||||
|
GLAN(["📈 Glances\nSystem monitoring"]):::community
|
||||||
|
EXP(["📊 Nextcloud Exporter\nPrometheus metrics"]):::community
|
||||||
|
SCRU(["💽 Scrutiny\nDisk health (S.M.A.R.T.)"]):::community
|
||||||
|
CMGMT(["🐳 Container Mgmt\nDocker web console"]):::community
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph COMM_SEC["🔒 Security & Network"]
|
||||||
|
F2B(["🚫 Fail2ban\nBrute-force protection"]):::community
|
||||||
|
PIH(["🕳️ Pi-hole\nAd & DNS blocker"]):::community
|
||||||
|
VW(["🔐 Vaultwarden\nPassword Manager"]):::community
|
||||||
|
LDAP(["👥 LLDAP\nLight LDAP / Users"]):::community
|
||||||
|
CADDY(["🌐 Caddy\nReverse Proxy + Geoblocking"]):::community
|
||||||
|
NPMPLUS(["🌐 NPMplus\nNginx Proxy Manager"]):::community
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
## How to use this?
|
## How to use this?
|
||||||
Starting with v11 of AIO, the management of Community Containers is done via the AIO interface (it is the last section in the AIO interface, so only visible if you scroll down).
|
Starting with v11 of AIO, the management of Community Containers is done via the AIO interface (it is the last section in the AIO interface, so only visible if you scroll down).
|
||||||
⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop! **Hint:** If the containers where running already, in order to actually start the added container, you need to click on `Stop containers` and the `Update and start containers` in order to actually start it.
|
⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop! **Hint:** If the containers where running already, in order to actually start the added container, you need to click on `Stop containers` and the `Update and start containers` in order to actually start it.
|
||||||
|
|||||||
64
readme.md
64
readme.md
@@ -87,6 +87,70 @@ Included are:
|
|||||||
|---|---|
|
|---|---|
|
||||||
|  |  |
|
|  |  |
|
||||||
|
|
||||||
|
## Architecture overview
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
%% ── Styles ───────────────────────────────────────────────────────────────────
|
||||||
|
classDef user fill:#FFF3CD,stroke:#F0AD4E,color:#333
|
||||||
|
classDef master fill:#E8D5F5,stroke:#9B59B6,color:#222
|
||||||
|
classDef core fill:#D6EAF8,stroke:#2E86C1,color:#222
|
||||||
|
classDef opt fill:#D5F5E3,stroke:#27AE60,color:#222
|
||||||
|
classDef community fill:#FDEBD0,stroke:#E67E22,color:#222
|
||||||
|
classDef access fill:#EAFAF1,stroke:#1E8449,color:#222
|
||||||
|
|
||||||
|
%% ── Top row: people ─────────────────────────────────────────────────────────
|
||||||
|
YOU(["🧑💻 Admin\n(You)"]):::user
|
||||||
|
ENDUSER(["🧑🤝🧑 Users\n(family / team)"]):::user
|
||||||
|
|
||||||
|
%% ── Everything that runs inside AIO ─────────────────────────────────────────
|
||||||
|
subgraph AIO[" 🐳 Nextcloud AIO "]
|
||||||
|
MC(["🧠 Mastercontainer\n─────────────────────────\n▸ AIO interface :8080 / :8443\n▸ Manages & updates containers\n▸ Handles backups"]):::master
|
||||||
|
|
||||||
|
subgraph CORE[" 📦 Core Stack (auto-started) "]
|
||||||
|
PROXY(["🔀 Apache\nProxy & HTTPS"]):::core
|
||||||
|
NC(["☁️ Nextcloud\nApp Server"]):::core
|
||||||
|
DB(["🗄️ PostgreSQL\nDatabase"]):::core
|
||||||
|
CACHE(["⚡ Redis\nCache"]):::core
|
||||||
|
PUSH(["🔔 Notify Push\nReal-time sync"]):::core
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph OPT[" 🧩 Optional Built-in Containers (enable in AIO interface) "]
|
||||||
|
COLLA(["📄 Nextcloud Office"]):::opt
|
||||||
|
OO(["📄 OnlyOffice\nDocument Server"]):::opt
|
||||||
|
TALK(["🎙️ Talk\nVideo & Voice calls"]):::opt
|
||||||
|
TALKREC(["🎬 Talk Recording"]):::opt
|
||||||
|
FTS(["🔎 Full-text Search\n(Elasticsearch)"]):::opt
|
||||||
|
IMAG(["🖼️ Imaginary\nImage previews"]):::opt
|
||||||
|
CLAM(["🦠 ClamAV\nAntivirus"]):::opt
|
||||||
|
WB(["🖊️ Whiteboard"]):::opt
|
||||||
|
end
|
||||||
|
|
||||||
|
COMM(["🌍 Community Containers\n──────────────────────\n30+ optional add-ons\nSee community-containers/"]):::community
|
||||||
|
click COMM "https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers" "Browse community containers"
|
||||||
|
end
|
||||||
|
|
||||||
|
%% ── Result node (outside AIO) ────────────────────────────────────────────────
|
||||||
|
NC_URL(["🌐 https://your-domain.com\n✅ Nextcloud — ready to use!"]):::access
|
||||||
|
|
||||||
|
%% ── Flows ────────────────────────────────────────────────────────────────────
|
||||||
|
YOU -->|"① open :8080 or :8443 in browser"| MC
|
||||||
|
MC -->|"② auto-starts & wires up"| CORE
|
||||||
|
MC -. "③ enable in AIO interface" .-> OPT
|
||||||
|
MC -. "④ add via AIO interface" .-> COMM
|
||||||
|
|
||||||
|
PROXY --> NC
|
||||||
|
NC --- DB
|
||||||
|
NC --- CACHE
|
||||||
|
NC --- PUSH
|
||||||
|
OPT -->|"integrate with"| NC
|
||||||
|
COMM -.->|"integrate with"| NC
|
||||||
|
|
||||||
|
CORE -->|"⑤ stack is ready!"| NC_URL
|
||||||
|
ENDUSER -->|"⑥ browser / app"| NC_URL
|
||||||
|
YOU -->|"⑥ use normally"| NC_URL
|
||||||
|
```
|
||||||
|
|
||||||
## How to use this?
|
## How to use this?
|
||||||
|
|
||||||
The steps below are written for Linux. For platform-specific guidance see:
|
The steps below are written for Linux. For platform-specific guidance see:
|
||||||
|
|||||||
Reference in New Issue
Block a user