diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index cdc6e5b..87805e0 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -18,3 +18,27 @@ jobs: echo "Validating documentation markdown syntax..." find docs -name "*.md" -print0 | xargs -0 -n 1 echo "Checked:" echo "All documentation files valid." + + - name: Publish Documentation Bundle to Gitea Packages + run: | + tar -czf naxos-docs-bundle.tar.gz README.md docs + echo "Packaging naxos-docs-bundle.tar.gz to Gitea Packages registry..." + TOKEN="${{ secrets.PACKAGE_TOKEN }}" + if [ -z "$TOKEN" ]; then + TOKEN="${{ secrets.GITEA_TOKEN }}" + fi + RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" -X PUT \ + -H "Authorization: token ${TOKEN}" \ + --upload-file naxos-docs-bundle.tar.gz \ + "${{ github.server_url }}/api/packages/naxos/generic/naxos-docs/1.0.0/naxos-docs-bundle.tar.gz") + STATUS=$(echo "$RESPONSE" | grep "HTTP_STATUS:" | cut -d: -f2) + BODY=$(echo "$RESPONSE" | grep -v "HTTP_STATUS:") + echo "Package upload HTTP status: $STATUS" + if [ "$STATUS" -eq 201 ] || [ "$STATUS" -eq 200 ] || [ "$STATUS" -eq 204 ]; then + echo "Successfully published naxos-docs-bundle.tar.gz to Gitea Packages!" + elif [ "$STATUS" -eq 409 ]; then + echo "Package version 1.0.0 already published in Gitea Packages: $BODY" + else + echo "Failed to publish package to Gitea Packages ($STATUS): $BODY" + exit 1 + fi diff --git a/README.md b/README.md index ba106b6..80a95ae 100644 --- a/README.md +++ b/README.md @@ -11,22 +11,27 @@ Welcome to the comprehensive documentation repository for **NaxOS**, the declara ### 1. Dashboard Overview Sleek glassmorphism interface featuring circular storage capacity gauges, real-time ZFS ARC cache telemetry, active workloads, and safe declarative system rebuild triggers. -![NaxOS Dashboard Overview](docs/images/dashboard-overview.jpg) +![NaxOS Dashboard Overview](docs/images/dashboard-overview.png) -### 2. OpenZFS Storage Management & Foreign Pool Migration Wizard -Declarative OpenZFS pool topology browser, dataset quota manager, snapshot timeline rollback, and the zero-data-loss **Foreign Pool Migration Wizard** (safely importing TrueNAS or `nixos-lukas` pools while preserving Immich photo libraries in `tank/media/photos`). +### 2. OpenZFS Storage Management +Declarative OpenZFS pool topology browser, dataset quota manager, snapshot timeline rollback, and pool health monitoring. -![NaxOS Storage Management](docs/images/storage-management.jpg) +![NaxOS Storage Management](docs/images/storage-management.png) -### 3. Embedded CNCF Perses Native Analytics +### 3. Foreign Pool Migration Wizard +Zero-data-loss **Appliance Setup & Migration Wizard** safely detecting and importing foreign pools from TrueNAS or `nixos-lukas` while preserving Immich photo libraries in `tank/media/photos`. + +![NaxOS Migration Wizard](docs/images/migration-wizard.png) + +### 4. Embedded CNCF Perses Native Analytics CNCF Perses embedded dashboards replacing standalone Grafana for real-time ZFS ARC hit ratios (98.6%), IOPS latency, 10GbE network traffic with BBR congestion control, and CPU distribution. -![NaxOS Perses Analytics](docs/images/perses-analytics.jpg) +![NaxOS Perses Analytics](docs/images/perses-analytics.png) -### 4. App Store & Tri-Tier Workload Runtime Engine +### 5. App Store & Tri-Tier Workload Runtime Engine Curated 1-click self-hosted application catalog with hardware-accelerated Immich (Intel QuickSync QSV / OpenCL), Nextcloud, Jellyfin, and Vaultwarden. Supports runtime toggling between **Native Systemd**, **Rootless Docker**, and **K3s**. -![NaxOS App Store](docs/images/app-store.jpg) +![NaxOS App Store](docs/images/app-store.png) --- diff --git a/docs/architecture/app-engine.md b/docs/architecture/app-engine.md index 1c644fa..261a0a8 100644 --- a/docs/architecture/app-engine.md +++ b/docs/architecture/app-engine.md @@ -2,7 +2,7 @@ NaxOS features a tri-tier runtime engine that selects the best execution strategy for each application: -![NaxOS App Store & Workload Runtimes](../images/app-store.jpg) +![NaxOS App Store & Workload Runtimes](../images/app-store.png) ## 1. Native NixOS Systemd Services - **Best For**: High-throughput services requiring direct hardware device passthrough, minimal RAM overhead, and deep integration with OpenZFS. diff --git a/docs/architecture/overview.md b/docs/architecture/overview.md index 13418ea..f1fd8df 100644 --- a/docs/architecture/overview.md +++ b/docs/architecture/overview.md @@ -13,7 +13,7 @@ NaxOS introduces an opinionated, cloud-native paradigm: 4. **Data Safety First**: Existing OpenZFS pools from legacy systems (such as `nixos-lukas` or TrueNAS) are imported read-safe without formatting, preserving critical application storage such as Immich photo libraries. 5. **Modern Native Observability**: Replaces heavy standalone Grafana instances with embedded CNCF **Perses** dashboards that render natively inside the web UI. -![NaxOS Web Dashboard Overview](../images/dashboard-overview.jpg) +![NaxOS Web Dashboard Overview](../images/dashboard-overview.png) --- diff --git a/docs/architecture/perses-analytics.md b/docs/architecture/perses-analytics.md index 33b1f9e..8cd49f2 100644 --- a/docs/architecture/perses-analytics.md +++ b/docs/architecture/perses-analytics.md @@ -15,4 +15,4 @@ NaxOS takes a pioneering approach by integrating **Perses** (a Cloud Native Comp 3. **Optimized for OpenZFS Metrics**: - Out-of-the-box panels monitor OpenZFS ARC hits, misses, ARC target sizing, IOPS, and disk latencies scraped from Prometheus and Node Exporter. -![Embedded CNCF Perses Analytics](../images/perses-analytics.jpg) +![Embedded CNCF Perses Analytics](../images/perses-analytics.png) diff --git a/docs/architecture/storage-engine.md b/docs/architecture/storage-engine.md index a09ff27..1417d95 100644 --- a/docs/architecture/storage-engine.md +++ b/docs/architecture/storage-engine.md @@ -4,7 +4,7 @@ NaxOS leverages upstream OpenZFS on Linux with specific architectural choices optimized for mixed workloads (streaming media, small-file databases, photo indexing, and Apple Time Machine backups). -![NaxOS OpenZFS Storage Management](../images/storage-management.jpg) +![NaxOS OpenZFS Storage Management](../images/storage-management.png) ### 1. Default Pool Parameters When creating pools through NaxOS, the engine enforces optimal pool attributes: diff --git a/docs/guides/migration-from-nixos-lukas.md b/docs/guides/migration-from-nixos-lukas.md index 9809b97..a995ca3 100644 --- a/docs/guides/migration-from-nixos-lukas.md +++ b/docs/guides/migration-from-nixos-lukas.md @@ -60,7 +60,7 @@ Before shutting down or booting the NaxOS installer on the NAS machine: - `-N` imports the pool **without mounting**, allowing NaxOS to audit and map dataset mountpoints safely. 6. The pool and all sub-datasets (`tank/media/photos`, `tank/backup`, etc.) will appear under **Active Datasets**. -![NaxOS Pool Migration Wizard and Dataset Browser](../images/storage-management.jpg) +![NaxOS Pool Migration Wizard and Dataset Browser](../images/migration-wizard.png) --- diff --git a/docs/images/app-store.jpg b/docs/images/app-store.jpg deleted file mode 100644 index 579e5e4..0000000 Binary files a/docs/images/app-store.jpg and /dev/null differ diff --git a/docs/images/app-store.png b/docs/images/app-store.png new file mode 100644 index 0000000..fb1a1c7 Binary files /dev/null and b/docs/images/app-store.png differ diff --git a/docs/images/dashboard-overview.jpg b/docs/images/dashboard-overview.jpg deleted file mode 100644 index 6a78b4e..0000000 Binary files a/docs/images/dashboard-overview.jpg and /dev/null differ diff --git a/docs/images/dashboard-overview.png b/docs/images/dashboard-overview.png new file mode 100644 index 0000000..e75a722 Binary files /dev/null and b/docs/images/dashboard-overview.png differ diff --git a/docs/images/gitops-sync.png b/docs/images/gitops-sync.png new file mode 100644 index 0000000..23ab18f Binary files /dev/null and b/docs/images/gitops-sync.png differ diff --git a/docs/images/migration-wizard.png b/docs/images/migration-wizard.png new file mode 100644 index 0000000..b22a38e Binary files /dev/null and b/docs/images/migration-wizard.png differ diff --git a/docs/images/perses-analytics.jpg b/docs/images/perses-analytics.jpg deleted file mode 100644 index a50311f..0000000 Binary files a/docs/images/perses-analytics.jpg and /dev/null differ diff --git a/docs/images/perses-analytics.png b/docs/images/perses-analytics.png new file mode 100644 index 0000000..39a411c Binary files /dev/null and b/docs/images/perses-analytics.png differ diff --git a/docs/images/shares-management.png b/docs/images/shares-management.png new file mode 100644 index 0000000..ec4cbe6 Binary files /dev/null and b/docs/images/shares-management.png differ diff --git a/docs/images/storage-management.jpg b/docs/images/storage-management.jpg deleted file mode 100644 index c3fdb4e..0000000 Binary files a/docs/images/storage-management.jpg and /dev/null differ diff --git a/docs/images/storage-management.png b/docs/images/storage-management.png new file mode 100644 index 0000000..45dfe5e Binary files /dev/null and b/docs/images/storage-management.png differ diff --git a/docs/images/system-logs.png b/docs/images/system-logs.png new file mode 100644 index 0000000..068064c Binary files /dev/null and b/docs/images/system-logs.png differ