diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 5c8d802..994b362 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -39,10 +39,25 @@ jobs: npm pack TGZ_FILE=$(ls naxos-api-*.tgz | head -n 1) echo "Packaging $TGZ_FILE to Gitea Packages registry..." - curl -s --fail-with-body -X PUT \ - -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ + 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 "$TGZ_FILE" \ - "${{ github.server_url }}/api/packages/naxos/generic/naxos-api/1.0.0/$TGZ_FILE" || echo "Generic package uploaded or exists" + "${{ github.server_url }}/api/packages/naxos/generic/naxos-api/1.0.0/$TGZ_FILE") + 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 $TGZ_FILE 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 - echo "//git.lholz.de/api/packages/naxos/npm/:_authToken=${{ secrets.GITEA_TOKEN }}" >> ~/.npmrc - npm publish || echo "NPM package published or exists" + echo "//git.lholz.de/api/packages/naxos/npm/:_authToken=${TOKEN}" >> ~/.npmrc + npm publish || echo "NPM package published or exists in registry" diff --git a/README.md b/README.md index 3c3e57b..028e2d4 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,14 @@ The **NaxOS Management Daemon** serves as the core orchestration brain of the NaxOS storage appliance. It bridges web dashboard interactions with underlying declarative NixOS module generation, OpenZFS primitives, GitOps synchronization, and workload lifecycle controls. +## Appliance Interface Showcase + +| Overview & Telemetry | OpenZFS Storage Engine | +| :---: | :---: | +| ![Dashboard Overview](docs/images/dashboard-overview.png) | ![Storage Management](docs/images/storage-management.png) | +| **CNCF Perses Analytics** | **App Store & Runtimes** | +| ![Perses Analytics](docs/images/perses-analytics.png) | ![App Store](docs/images/app-store.png) | + ## Core Capabilities - **Declarative NixOS Compiler**: Translates REST API actions directly into standard NixOS module syntax (`generated-naxos-config.nix`), validated before activating via `nixos-rebuild switch`. 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.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.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.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