From 6b49bc311fa3180b8a7d6e958e842f1cae4db0a4 Mon Sep 17 00:00:00 2001 From: Weynand Kuijpers Date: Mon, 27 Oct 2025 15:41:45 +0400 Subject: [PATCH] Updated text. --- requirements.md | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/requirements.md b/requirements.md index 074068d..b57b2ac 100644 --- a/requirements.md +++ b/requirements.md @@ -35,14 +35,14 @@ The product targets small-to-medium organizations or edge deployments requiring #### 2.3.1 Hardware Requirements (Per Node) | Component | Minimum Specification | Recommended | |-----------------|----------------------------------------|-------------| -| CPU | 4-core ARM64/x86_64 (e.g., Raspberry Pi 5 or Intel NUC) | 8-core | +| CPU | 4-core ARM64/x86_64 | 8-core | | RAM | 8 GB | 16 GB | | Storage | 128 GB NVMe SSD (for OS) + 1 TB HDD/SSD (for data) | 256 GB SSD + 2 TB NVMe | | Network | 1 Gbps Ethernet, Wi-Fi 6 optional | 10 Gbps | | Power | Standard 5V/12V DC, UPS recommended | Redundant PSU | -- **Total Cluster**: 3 identical nodes; minimum aggregate: 12 cores, 24 GB RAM, 3 TB storage. -- **Redundancy**: RAID-1 mirroring across nodes for critical data; power/network failover via k3s. +- **Total Cluster**: 2 identical nodes; minimum aggregate: 12 cores, 24 GB RAM, 3 TB storage. One mode powerfull node on which the local AI model can run and paraphrasing and summarization. +- **Redundancy**: Seaweed FS provides erasure coding based datasecurity across nodes for critical data; power/network failover via k3s. #### 2.3.2 Software Requirements - **OS**: ThreeFold zero-OS v3.x (container-native, minimal footprint). @@ -65,8 +65,8 @@ The product targets small-to-medium organizations or edge deployments requiring - **Performance**: <5s file upload (1 GB), <2s video join time, 99.9% uptime. - **Security**: TLS 1.3 everywhere; E2EE for Matrix/LiveKit; RBAC via k3s. - **Scalability**: Horizontal scaling to 5 nodes; storage auto-expansion via SeaweedFS. -- **Reliability**: Triple replication for data; self-healing via k3s. -- **Compliance**: Data stored locally; audit logs for all services. +- **Reliability**: Erasue coding based storage for data; self-healing via k3s. +- **Compliance**: Data stored locally; audit logs for all services. Optional blockchain to record log entries. ## 3. Functional Specification @@ -75,11 +75,11 @@ The cluster provides a unified platform for collaboration, with redundancy ensur | Feature ID | Feature Name | Description | Priority | |------------|---------------------------|-----------------------------------------------------------------------------|----------| -| F-01 | Redundant File Storage | Files stored via SeaweedFS with 3x replication; accessible via Nextcloud UI. | High | +| F-01 | Redundant File Storage | Files stored via SeaweedFS; accessible via Nextcloud UI. | High | | F-02 | File Management | CRUD operations (create, read, update, delete) files/folders; sharing links. | High | -| F-03 | Instant Messaging | Matrix-based chat rooms, 1:1 messaging, file attachments; bridges to email/Slack. | Medium | +| F-03 | Instant Messaging | Matrix-based chat rooms, 1:1 messaging, file attachments; bridges to other mail and instant messaging services (TBD). | Medium | | F-04 | Video Conferencing | LiveKit rooms for audio/video calls; screen sharing; recording (local only). | High | -| F-05 | AI Paraphrasing | Post-conference: Transcribe audio → Paraphrase/summarize → Store metadata locally. | Medium | +| F-05 | AI Paraphrasing | Post-conference: Transcribe audio → Paraphrase/summarize → Store metadata locally. | High | | F-06 | Secure Node Connectivity | Mycelium overlay for inter-node traffic; auto-discovery on ThreeFold Grid. | High | | F-07 | Admin Dashboard | k3s-integrated UI for monitoring pods, storage usage, and logs. | Low | @@ -113,16 +113,16 @@ The cluster provides a unified platform for collaboration, with redundancy ensur ## 4. Technical Specification ### 4.1 Architecture Overview -- **Topology**: 3-node k3s cluster (1 master, 2 workers) with etcd embedded for HA. +- **Topology**: 3-node k3s cluster (1 master, 2 workers) with etcd (TBD) embedded for HA. - **Layers**: - **OS Layer**: zero-OS (immutable, container-only; no systemd). - - **Orchestration Layer**: k3s with Flannel CNI. + - **Orchestration Layer**: k3s. - **Storage Layer**: SeaweedFS master + volume servers (1 per node). - - **Network Layer**: Mycelium for secure tunnels (WireGuard-based). + - **Network Layer**: Mycelium for secure communication. - **Application Layer**: Helm-deployed charts for Nextcloud, Synapse, LiveKit, AI. - **Diagram Description** (Textual; visualize as a layered stack): ``` - [Users (Web/Mobile)] --> [Mycelium VPN] --> [k3s Ingress (Traefik)] + [Users (Web/Mobile)] --> [Mycelium] --> [k3s Ingress (Traefik)] | [Node 1 (Master)] -- [Node 2 (Worker)] -- [Node 3 (Worker)] | | | @@ -137,9 +137,7 @@ The cluster provides a unified platform for collaboration, with redundancy ensur ### 4.2 Component Details #### 4.2.1 Orchestration (k3s) -- Installation: `curl -sfL https://get.k3s.io | sh -` on zero-OS (adapted for ARM64). -- HA: Server flag on master; agent join on workers. -- StorageClass: Local-path for ephemeral; SeaweedFS CSI driver for persistent. +- myceliumcloud install? #### 4.2.2 Storage (SeaweedFS) - Deployment: StatefulSet with 1 master pod (replicated) + 3 volume pods. @@ -160,14 +158,13 @@ The cluster provides a unified platform for collaboration, with redundancy ensur - Security: Automatic key exchange; traffic encrypted at L4. ### 4.3 Deployment Procedures + +All presented deployment processes have not been tested. WIP. 1. **Node Provisioning**: - - Acquire 3 nodes on ThreeFold Grid; flash zero-OS. - - Configure Mycelium: `zos network mycelium join `. - + - Acquire 3 nodes on premise and connect them on ThreeFold Grid; boot zero-OS. + 2. **k3s Installation**: - - On master: Install k3s server. - - On workers: Install k3s agent with token. - + - deploy mycelium cloud install over the 3 nodes, similar to how the https://myceliumcloud.tf/ 3. **Storage Setup**: - Deploy SeaweedFS Helm chart: `helm install seaweedfs seaweedfs/seaweedfs --set volume.replicas=3`.