AtlasOS
AtlasOS is an appliance-style storage controller build by Adastra
v1 Focus
- ZFS storage engine
- SMB / NFS / iSCSI (ZVOL)
- Virtual Tape Library (VTL) with mhvtl
- Auto snapshots (sanoid)
- RBAC + audit
- TUI (Bubble Tea) + Web GUI (HTMX)
- Prometheus metrics
This repository contains the management plane and appliance tooling.
Quick Installation
Standard Installation (with internet)
sudo ./installer/install.sh
Airgap Installation (offline)
# Step 1: Download bundle (on internet-connected system)
sudo ./installer/bundle-downloader.sh ./atlas-bundle
# Step 2: Transfer bundle to airgap system
# Step 3: Install on airgap system
sudo ./installer/install.sh --offline-bundle /path/to/atlas-bundle
See installer/README.md and docs/INSTALLATION.md for detailed instructions.
Features
Storage Management
- ZFS: Pool, dataset, and ZVOL management with health monitoring
- SMB/CIFS: Windows file sharing with permission management
- NFS: Network file sharing with client access control
- iSCSI: Block storage with target and LUN management
Virtual Tape Library (VTL)
- Media Changers: Create and manage virtual tape libraries
- Tape Drives: Configure virtual drives (LTO-5 through LTO-8)
- Tape Cartridges: Create and manage virtual tapes
- Tape Operations: Load, eject, and manage tape media
- Multi-Vendor Support: IBM, HP, Quantum, Tandberg, Overland
- Automatic Service Management: Auto-restart mhvtl after configuration changes
Security & Access Control
- RBAC: Role-based access control (Administrator, Operator, Viewer)
- Audit Logging: Immutable audit trail for all operations
- Authentication: JWT-based authentication
Monitoring
- Prometheus Metrics: System and storage metrics
- Health Monitoring: Pool health and capacity tracking
- Job Management: Track long-running operations
Installation Directory
Atlas is installed to /opt/atlas by default. The installer script will:
- Install all required dependencies (ZFS, SMB, NFS, iSCSI, mhvtl)
- Build Atlas binaries
- Set up systemd services
- Configure directories and permissions
Pushing Changes to Repository
Use the provided script to commit and push changes:
./scripts/push-to-repo.sh "Your commit message"
Or skip version update:
./scripts/push-to-repo.sh "Your commit message" --skip-version
Description
Languages
Go
61.6%
HTML
28.2%
Shell
10.2%