Node Specifications and Roles
Docker Swarm cluster consists of five nodes with distinct hardware profiles and strategic role assignments:
Manager Node: p0 (Beelink SER5)
-
CPU: 16 cores (x86_64 architecture)
-
Memory: 28.31 GiB
-
Role: Swarm Leader and Primary Manager
-
Operating System: Ubuntu 24.04.3 LTS (Noble Numbat)
-
Kernel: Linux 6.8.0-84-generic
-
Primary Responsibilities:
- Swarm management and orchestration
- Certificate authority for swarm TLS
- High-resource services (databases, authentication)
- Storage-intensive applications
Manager Node: p4 (Unraid VM)
-
CPU: 12 cores (x86_64 architecture)
-
Memory: 55 GiB
-
Role: Swarm Secondary Manager
-
Operating System: Pop!_OS 22.04 LTS
-
Kernel: 6.16.3-76061603-generic
-
Primary Responsibilities:
- Backup Swarm management and orchestration
- High-resource services (databases, authentication)
- Storage-intensive applications
Worker Nodes: p1, p2, p3 (Raspberry Pi 5)
-
CPU: 4 cores each (aarch64 architecture)
-
Memory:
- p1: 7.874 GiB
- p2: 15.84 GiB
- p3: 15.84 GiB
-
Role: Worker nodes for distributed workloads
-
Architecture: ARM64
-
Primary Responsibilities:
- Application workloads
- Distributed service replicas
- Load balancing across multiple instances
Storage Architecture and NVMe Configuration
The cluster implements a centralized storage strategy:
Primary Storage Location:/mnt/swarm-data/
- All persistent data consolidated on the manager node
- Bind mounts used for direct filesystem access
- Organized by service namespace for clarity
Storage Breakdown by Service:
/mnt/swarm-data/
├── AI
├── archived
├── authentik
├── backups
├── bookstack
├── dev-tracker
├── duplicati
├── emby
├── filebrowser
├── gitea
├── gotify
├── Hardware-INFO
├── homarr
├── jellyseerr
├── mariadb
├── n8n
├── Notifiarr
├── ollama
├── openwebui
├── owncloud
├── paperless
├── portainer
├── postgres
├── prowlarr
├── radarr
├── sabnzbd
├── sonarr
├── traefik
├── uptime-kuma
├── webfiles
└── webservers