11 KiB
11 KiB
Technology Stack
AtlasOS - Calypso Backup Appliance
Version: 1.0.0-alpha
Last Updated: 2025-01-XX
Overview
This document provides a comprehensive list of all technologies, frameworks, libraries, and tools used in the Calypso backup appliance.
1. Operating System & Base Platform
1.1 Operating System
- Ubuntu Server 24.04 LTS (Primary target)
- Linux Kernel 6.8+ (with ZFS, SCST support)
- systemd - Service management
- journald - System logging
1.2 Base System Tools
- chrony - NTP time synchronization
- ufw - Firewall management
- nftables - Network filtering (alternative)
- udev - Device management
- lsb-release - Linux Standard Base
2. Backend Technology Stack
2.1 Programming Language
- Go 1.22+ (golang)
- Version: 1.22.0 or later
- Architecture: linux-amd64
2.2 Web Framework
- Gin - HTTP web framework
github.com/gin-gonic/gin- RESTful API implementation
- Middleware support
2.3 Database
- PostgreSQL 14+
- Primary database for metadata
- Connection pooling (pgxpool)
- Migration system
2.4 Database Drivers
- pgx/v5 - PostgreSQL driver
github.com/jackc/pgx/v5github.com/jackc/pgx/v5/pgxpool
- lib/pq - PostgreSQL driver (for array types)
github.com/lib/pq
2.5 Authentication & Security
- JWT - JSON Web Tokens
github.com/golang-jwt/jwt/v5
- bcrypt - Password hashing
golang.org/x/crypto/bcrypt
- Argon2 - Password hashing (alternative)
2.6 Configuration Management
- Viper - Configuration management
github.com/spf13/viper
- YAML - Configuration format
2.7 Logging
- Zerolog - Structured logging
github.com/rs/zerolog
- JSON - Log format
2.8 HTTP Client & Utilities
- HTTP Client - Standard library
- Context - Request context management
- Time - Time handling
2.9 Additional Go Libraries
- UUID - UUID generation
github.com/google/uuid
- Errors - Error handling
github.com/pkg/errors
- Sync - Concurrency primitives
golang.org/x/sync/errgroup
3. Frontend Technology Stack
3.1 Core Framework
- React 18 - UI library
- Version: 18.x
- TypeScript support
3.2 Build Tool
- Vite - Build tool and dev server
- Fast HMR (Hot Module Replacement)
- Optimized production builds
3.3 Programming Language
- TypeScript - Type-safe JavaScript
- Type checking
- Modern ES6+ features
3.4 Routing
- React Router DOM - Client-side routing
react-router-dom- Version: 6.x
3.5 State Management
- Zustand - Lightweight state management
zustand- Global state (auth, UI state)
3.6 Data Fetching
- TanStack Query (React Query) - Server state management
@tanstack/react-query- Caching, refetching, mutations
3.7 HTTP Client
- Axios - HTTP client
axios- Request/response interceptors
3.8 Styling
- TailwindCSS - Utility-first CSS framework
tailwindcss- PostCSS integration
- Dark theme support
3.9 Icons
- Lucide React - Icon library
lucide-react- Modern icon set
3.10 UI Components
- shadcn/ui - UI component library (planned)
- Custom Components - Built with TailwindCSS
3.11 Charts & Visualization
- Recharts - Chart library
recharts- Line, bar, pie charts
3.12 Notifications
- Sonner - Toast notifications
sonner- Success, error, warning toasts
4. Storage Technologies
4.1 File System
- ZFS - Zettabyte File System
zfsutils-linuxzfs-dkms- Pool and dataset management
- Snapshots and replication
4.2 Block Storage
- LVM2 - Logical Volume Manager
- Volume group management
- Thin provisioning
4.3 File Systems
- XFS - High-performance filesystem (primary)
- ext4 - Alternative filesystem
4.4 Disk Management
- parted - Partition management
- gdisk - GPT partition editor
- smartmontools - SMART disk monitoring
- nvme-cli - NVMe device management
5. Network & File Sharing
5.1 File Sharing Protocols
-
NFS - Network File System
nfs-kernel-servernfs-common- NFSv4 support
-
Samba - SMB/CIFS protocol
sambasamba-common-bin- Windows file sharing compatibility
5.2 iSCSI
- SCST - SCSI Target Subsystem
- Kernel module
iscsi-scstscstadmin- Management tool
5.3 Network Tools
- open-iscsi - iSCSI initiator
- iscsiadm - iSCSI administration
6. Backup & Tape Technologies
6.1 Backup Software
-
Bacula - Backup software
bacula-commonbacula-sd- Storage daemonbacula-clientbacula-console- Management console
-
Bareos - Bacula fork (alternative)
6.2 Virtual Tape Library
- MHVTL - Virtual Tape Library
mhvtlmhvtl-utilsvtlcmd- Management tool
6.3 Physical Tape
- lsscsi - List SCSI devices
- sg3-utils - SCSI generic utilities
- mt-st - Magnetic tape utilities
- mtx - Media changer control
7. Security & Antivirus
7.1 Antivirus
- ClamAV - Antivirus engine
clamavclamav-daemonclamav-freshclam- Virus definition updatesclamav-unofficial-sigs- Unofficial signatures
8. Object Storage
8.1 S3-Compatible Storage
- MinIO - Object storage (planned/integration)
- S3-compatible API
- Bucket management
9. Development Tools
9.1 Build Tools
- Make - Build automation
- Go Build - Go compiler
- npm/pnpm - Node.js package manager
9.2 Version Control
- Git - Version control system
9.3 Code Quality
- gofmt - Go code formatter
- goimports - Go import organizer
- golint - Go linter (optional)
- go vet - Go static analysis
9.4 Frontend Tools
- Prettier - Code formatter
- ESLint - JavaScript/TypeScript linter
- TypeScript Compiler - Type checking
10. System Services
10.1 Service Management
- systemd - Service manager
- journalctl - Log viewing
10.2 Reverse Proxy (Optional)
- Nginx - Web server and reverse proxy
- Caddy - Web server with automatic HTTPS
11. Monitoring & Observability
11.1 Metrics Collection
- Custom Metrics Service - Built-in metrics
- System Metrics - CPU, memory, disk, network
11.2 Logging
- Structured Logging - JSON format
- Audit Logging - Database-backed audit trail
11.3 Health Checks
- Health Endpoint -
/api/v1/health - Service Status - Component health monitoring
12. Database Technologies
12.1 Primary Database
- PostgreSQL 14+
- Metadata storage
- User management
- Audit logs
- Task tracking
- Alert management
12.2 Database Tools
- psql - PostgreSQL client
- pg_dump - Database backup
- pg_restore - Database restore
13. Web Technologies
13.1 Protocols
- HTTP/1.1 - Web protocol
- HTTPS - Secure HTTP (with TLS)
- WebSocket - Real-time communication (planned)
13.2 API
- RESTful API - Resource-based API
- JSON - Data interchange format
14. Container & Virtualization (Future)
14.1 Container Technologies (Not in V1)
- Docker - Containerization (future)
- Kubernetes - Orchestration (future)
15. Package Management
15.1 Backend
- Go Modules - Dependency management
go.modgo.sum
15.2 Frontend
- npm - Node.js package manager
- pnpm - Fast, disk space efficient package manager
16. Testing Tools (Development)
16.1 Backend Testing
- Go Testing - Built-in testing framework
- Testify - Testing toolkit (if used)
16.2 Frontend Testing
- Vitest - Unit testing (with Vite)
- React Testing Library - Component testing
17. Documentation Tools
17.1 Documentation
- Markdown - Documentation format
- Mermaid - Diagram generation (in docs)
18. Security Tools
18.1 Encryption
- TLS/SSL - Transport layer security
- bcrypt - Password hashing
- Argon2 - Password hashing (alternative)
18.2 Access Control
- JWT - Token-based authentication
- RBAC - Role-Based Access Control
- Permission System - Resource-based permissions
19. Version Information
19.1 Backend Dependencies
See backend/go.mod for complete list of Go dependencies.
19.2 Frontend Dependencies
See frontend/package.json for complete list of npm dependencies.
20. External Integrations
20.1 System Integrations
- ZFS Commands -
zpool,zfs - SCST Commands -
scstadmin - Bacula Commands -
bconsole - MHVTL Commands -
vtlcmd - Systemd Commands -
systemctl
20.2 File System Integrations
- NFS Exports -
/etc/exports - Samba Config -
/etc/samba/smb.conf - ClamAV Config -
/etc/clamav/
21. Build & Deployment
21.1 Build Process
- Go Build - Compile Go binary
- Vite Build - Build frontend assets
- Makefile - Build automation
21.2 Deployment
- Systemd Services - Service deployment
- Installer Scripts - Automated installation
- Configuration Management - YAML-based config
Summary
Core Stack
- Backend: Go 1.22+ + Gin + PostgreSQL
- Frontend: React 18 + TypeScript + Vite + TailwindCSS
- Storage: ZFS + LVM2 + XFS
- File Sharing: NFS + Samba
- iSCSI: SCST
- Backup: Bacula/Bareos
- Tape: MHVTL + Physical tape tools
- Antivirus: ClamAV
- Security: JWT + bcrypt + RBAC
Technology Categories
- Languages: Go, TypeScript, JavaScript, SQL, Bash
- Frameworks: Gin, React, TailwindCSS
- Databases: PostgreSQL
- Storage: ZFS, LVM2, XFS
- Networking: NFS, SMB/CIFS, iSCSI
- Security: JWT, bcrypt, ClamAV
- Tools: Git, Make, systemd, journald
Version Matrix
| Component | Version | Purpose |
|---|---|---|
| Go | 1.22+ | Backend language |
| Node.js | 20.x LTS | Frontend runtime |
| React | 18.x | Frontend framework |
| PostgreSQL | 14+ | Database |
| ZFS | Latest | Storage filesystem |
| SCST | Latest | iSCSI target |
| Bacula | Latest | Backup software |
| ClamAV | Latest | Antivirus |
| NFS | Latest | Network file sharing |
| Samba | Latest | SMB/CIFS file sharing |
Dependencies Count
- Backend Go Dependencies: ~30+ packages
- Frontend npm Dependencies: ~300+ packages
- System Packages: ~50+ packages
License Information
Most components use open-source licenses:
- Go: BSD-style license
- React: MIT License
- PostgreSQL: PostgreSQL License
- ZFS: CDDL License
- ClamAV: GPL License
- Samba: GPL License
References
- Backend dependencies:
backend/go.mod - Frontend dependencies:
frontend/package.json - System requirements:
scripts/install-requirements.sh - Architecture:
docs/alpha/Calypso_System_Architecture.md
Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | 2025-01-XX | Development Team | Initial technology stack documentation |