260131:1706 Update Infrastructure 2
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
> 🌐 **Domain:** `*.np-dms.work` (IP: 159.192.126.103)
|
||||
> 🔒 **Network:** `lcbp3` (Docker External Network)
|
||||
> 📄 **Version:** v1.8.0 (aligned with 01-02-architecture.md)
|
||||
|
||||
dckr_pat_VzAvAsjeHB3TORZ7vX0kSABIeKI
|
||||
---
|
||||
|
||||
## 🏢 Hardware Infrastructure
|
||||
@@ -61,144 +61,15 @@
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Data Flow Architecture
|
||||
## 🔄 Architecture Diagrams
|
||||
|
||||
```
|
||||
┌──────────────┐
|
||||
│ User │
|
||||
└──────┬───────┘
|
||||
│ HTTPS (443)
|
||||
▼
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ QNAP TS-473A │
|
||||
│ ┌─────────────────────────────────────────────────────────┐ │
|
||||
│ │ Nginx Proxy Manager (NPM) │ │
|
||||
│ │ SSL Termination + Round Robin LB │ │
|
||||
│ └───────────────────────┬─────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────▼─────────────────────────────────┐ │
|
||||
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
|
||||
│ │ │ Next.js │───▶│ NestJS │ │ NestJS │ │ │
|
||||
│ │ │ (Frontend) │ │ (Replica 1)│ │ (Replica 2)│ │ │
|
||||
│ │ └──────────────┘ └──────┬───────┘ └──────┬──────┘ │ │
|
||||
│ │ │ │ │ │
|
||||
│ │ ┌────────────────────────┼─────────────────┼ │ │
|
||||
│ │ ▼ ▼ ▼ │ │
|
||||
│ │ ┌──────────┐ ┌────────────┐ ┌─────────────┐ │ │
|
||||
│ │ │ MariaDB │ │ Redis │ │Elasticsearch│ │ │
|
||||
│ │ │(Primary) | │ (Persist.) │ │ (Search) │ │ │
|
||||
│ │ └────┬─────┘ └────────────┘ └─────────────┘ │ │
|
||||
│ └───────┼─────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
└──────────┼───────────────────────────────────────────────────┘
|
||||
│ Local Dump -> Restic Pull (Cross-Server)
|
||||
▼
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ ASUSTOR AS5403T │
|
||||
│ ┌──────────────────────────────────────────────────────────┐│
|
||||
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││
|
||||
│ │ │ Backup │ │ Registry │ │ Uptime │ ││
|
||||
│ │ │ (Restic) │ │ (Docker) │ │ Kuma │ ││
|
||||
│ │ └──────────┘ └──────────┘ └──────────┘ ││
|
||||
│ │ ││
|
||||
│ │ ┌──────────┐ ┌────────────┐ ┌──────────┐ ││
|
||||
│ │ │Prometheus│ ──▶│ Grafana │ │ Loki │ ││
|
||||
│ │ │(Metrics) │ │(Dashboard) │ │ (Logs) │ ││
|
||||
│ │ └──────────┘ └────────────┘ └──────────┘ ││
|
||||
│ │ ││
|
||||
│ │ ┌───────────────────────────────────────────┐ ││
|
||||
│ │ │ NFS / SMB Shared Storage │ ││
|
||||
│ │ │ (Backup Volume) │ ││
|
||||
│ │ └───────────────────────────────────────────┘ ││
|
||||
│ └──────────────────────────────────────────────────────────┘│
|
||||
└──────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Docker Management Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ Portainer (ASUSTOR) │
|
||||
│ https://portainer.np-dms.work │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │
|
||||
│ │ Manage Infra Stack │ │ Remote Docker Endpoint │ │
|
||||
│ │ (Local - ASUSTOR) │ │ (QNAP App Stack) │ │
|
||||
│ ├─────────────────────────────┤ ├─────────────────────────────┤ │
|
||||
│ │ • Registry │ │ • Next.js (Frontend) │ │
|
||||
│ │ • Prometheus │ │ • NestJS (Backend) │ │
|
||||
│ │ • Grafana │ │ • MariaDB │ │
|
||||
│ │ • Uptime Kuma │ │ • Redis │ │
|
||||
│ │ • Loki │ │ • Elasticsearch │ │
|
||||
│ │ • Backup (Restic) │ │ • NPM │ │
|
||||
│ │ • ClamAV │ │ • Gitea │ │
|
||||
│ │ • node-exporter │ │ • n8n │ │
|
||||
│ │ • cAdvisor │ │ • phpMyAdmin │ │
|
||||
│ └─────────────────────────────┘ └─────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Container Station (QNAP): ใช้สำหรับ local UI management เท่านั้น
|
||||
Portainer (ASUSTOR): ใช้เป็น centralized management ทั้ง 2 servers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Security Zones
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ SECURITY ZONES │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 🌐 PUBLIC ZONE │ │
|
||||
│ │ ───────────────────────────────────────────────────────────── │ │
|
||||
│ │ • Nginx Proxy Manager (NPM) │ │
|
||||
│ │ • HTTPS (Port 443 only) │ │
|
||||
│ │ • SSL/TLS Termination │ │
|
||||
│ │ • Rate Limiting │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 📱 APPLICATION ZONE (QNAP - VLAN 10) │ │
|
||||
│ │ ───────────────────────────────────────────────────────────── │ │
|
||||
│ │ • Next.js (Frontend) │ │
|
||||
│ │ • NestJS (Backend API) │ │
|
||||
│ │ • n8n Workflow │ │
|
||||
│ │ • Gitea │ │
|
||||
│ │ • Internal API communication only │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 💾 DATA ZONE (QNAP - Internal Only) │ │
|
||||
│ │ ───────────────────────────────────────────────────────────── │ │
|
||||
│ │ • MariaDB (Primary Database) │ │
|
||||
│ │ • Redis (Cache/Queue) │ │
|
||||
│ │ • Elasticsearch (Search) │ │
|
||||
│ │ • No public access - Backend only │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 🛠️ INFRASTRUCTURE ZONE (ASUSTOR - VLAN 10) │ │
|
||||
│ │ ───────────────────────────────────────────────────────────── │ │
|
||||
│ │ • Backup (Restic/Borg) │ │
|
||||
│ │ • Docker Registry │ │
|
||||
│ │ • Prometheus + Grafana │ │
|
||||
│ │ • Uptime Kuma │ │
|
||||
│ │ • Loki (Logs) │ │
|
||||
│ │ • NFS/SMB Storage │ │
|
||||
│ │ • Access via MGMT VLAN only │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
> 📊 **ดู Diagrams แบบ Interactive (Mermaid) ได้ที่:** [Network_daigram.md](Network_daigram.md)
|
||||
>
|
||||
> เอกสารนี้รวม Diagrams หลักไว้ได้แก่:
|
||||
> - **Data Flow Diagram** - การไหลของข้อมูลระหว่าง Services
|
||||
> - **Docker Management View** - การจัดการ Containers ผ่าน Portainer
|
||||
> - **Security Zones Diagram** - การแบ่ง Security Zones (Public, App, Data, Infra)
|
||||
> - **Network Flow Diagram** - การเชื่อมต่อ VLANs และ Firewall Rules
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user