Files
naxos-os/README.md
T
2026-09-04 13:44:20 +02:00

82 lines
4.0 KiB
Markdown

<p align="center">
<img src="docs/images/logo.svg" alt="NaxOS Logo" width="140" height="140" />
</p>
<h1 align="center">NaxOS Core</h1>
<p align="center">
<b>Declarative, Appliance-Like NixOS- & OpenZFS-Based Network Attached Storage</b>
<br />
Built on NixOS 26.05 & OpenZFS with GitOps-Driven Management
</p>
<p align="center">
<a href="https://git.lholz.de/naxos/naxos-os/actions"><img src="https://git.lholz.de/naxos/naxos-os/actions/workflows/test-modules.yaml/badge.svg" alt="Gitea Actions" /></a>
<a href="https://git.lholz.de/naxos/-/packages"><img src="https://img.shields.io/badge/package-gitea%20registry-blue.svg" alt="Gitea Packages" /></a>
<a href="https://git.lholz.de/naxos/naxos-os"><img src="https://img.shields.io/badge/nixos-26.05-5277C3.svg?logo=nixos&logoColor=white" alt="NixOS 26.05" /></a>
</p>
---
**NaxOS** is a declarative, appliance-like Network Attached Storage (NAS) operating system built on top of **NixOS 26.05** and **OpenZFS**.
## Appliance Interface Preview
| Overview Dashboard | OpenZFS Storage Engine |
| :---: | :---: |
| ![Dashboard Overview](docs/images/dashboard-overview.png) | ![Storage Management](docs/images/storage-management.png) |
| **Live System & Storage Telemetry** | **App Store & Runtime** |
| ![Live System & Storage Telemetry](docs/images/system-telemetry.png) | ![App Store](docs/images/app-store.png) |
## Architecture & Features
- **Declarative NixOS Foundation**: Complete system state defined as code, from kernel sysctl parameters to users and storage configurations.
- **GitOps-Driven Rebuilds**: Automated `nixos-rebuild switch` with dry-build safety checks, canary testing, and instant rollback.
- **Native OpenZFS Management**:
- Declarative pools (mirror, raidz1, raidz2, stripe)
- Declarative datasets with per-dataset quotas, compression (`lz4`, `zstd`), and recordsize tuning
- First-class zero-data-loss import of existing pools (e.g. from TrueNAS or raw NixOS setups like `nixos-lukas`)
- Automated scrub, TRIM, and snapshot lifecycle policies (hourly, daily, weekly, monthly)
- **Multi-Protocol File Shares**:
- **Samba**: Preconfigured with macOS Time Machine support (`vfs_fruit`), POSIX ACL propagation, and fine-grained share permissions.
- **NFS**: High-throughput NFS exports with CIDR client filters.
- **Multi-Tier Workload & App Engine**:
- Native NixOS systemd services (e.g. Immich with Intel QuickSync / OpenCL hardware transcoding)
- Docker Compose with ZFS copy-on-write storage driver
- Optional lightweight K3s cluster integration
- **Seamless Native Observability**:
- Seamlessly integrated live telemetry and OpenZFS performance metrics
- Prometheus TSDB and Node Exporter embedded into the core appliance
- **Streamlined Bootable ISO**:
- Interactive CLI / TUI wizard (`naxos-installer`) for rapid bare-metal installation and pool import.
## Repository Structure
```
naxos-os/
├── flake.nix # Flake exports (modules, configurations, ISO builder)
├── modules/ # NaxOS module definitions
│ ├── core/ # System base, users, gitops, self-update
│ ├── storage/ # ZFS pool/dataset management & migration
│ ├── shares/ # Samba (SMB) and NFS file shares
│ ├── services/ # App engine runtime & application catalog
│ ├── monitoring/ # Prometheus & Perses analytics engine
│ ├── api/ # Management daemon systemd service
│ └── ui/ # Web dashboard Nginx reverse proxy service
├── profiles/ # Hardware & appliance base profiles
├── iso/ # Bootable installer ISO & scripts
└── .gitea/workflows/ # Gitea Actions CI/CD workflows
```
## Quick Start
### Building the Installation ISO
```bash
nix build .#iso
```
### Testing System Evaluation
```bash
nix flake check
nix eval .#nixosConfigurations.naxos.config.system.build.toplevel.drvPath
```