Initial commit: Nexus NIIX website with Svelte + Alpine.JS + picoCSS
🚀 Website Stack: - SvelteKit for static site generation - Alpine.JS for interactivity - PicoCSS for lightweight styling 📁 Features: - Home page with hero and feature cards - Documentation system with markdown support - Responsive navigation - Dark mode by default 🔧 Configuration: - Cloudflare Pages deployment workflow - Wrangler.toml for Pages config - GitHub Actions for CI/CD 📝 Content: - Placeholder documentation in static/docs/ - Ready for content migration from nexus-forge 📦 Tech Stack: - Node.js >= 18.0.0 - Vite for building - Zero external runtime dependencies
This commit is contained in:
commit
f30be085ff
|
|
@ -0,0 +1,46 @@
|
|||
name: Deploy to Cloudflare Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: '.svelte-kit/output/client'
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
node_modules
|
||||
.svelte-kit
|
||||
build
|
||||
.output
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
dist
|
||||
.DS_Store
|
||||
*.log
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
# Nexus NIIX Website
|
||||
|
||||
Official website for Nexus NIIX - Sovereign Technology for the Future.
|
||||
|
||||
## Stack
|
||||
|
||||
- **SvelteKit** - Static site generation
|
||||
- **Alpine.JS** - Client-side interactivity
|
||||
- **PicoCSS** - Lightweight CSS framework
|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js >= 18.0.0
|
||||
- npm or pnpm
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
git clone https://git.sovereign-society.org/nexus/nexus-niix-website.git
|
||||
cd nexus-niix-website
|
||||
npm install
|
||||
```
|
||||
|
||||
### Development Server
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Open http://localhost:5173 in your browser.
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Preview
|
||||
|
||||
```bash
|
||||
npm run preview
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
nexus-niix-website/
|
||||
├── src/
|
||||
│ ├── routes/ # SvelteKit routes
|
||||
│ │ ├── +layout.svelte
|
||||
│ │ ├── +page.svelte
|
||||
│ │ └── docs/
|
||||
│ ├── lib/ # Shared components
|
||||
│ └── app.html # HTML template
|
||||
├── static/
|
||||
│ ├── docs/ # Documentation markdown files
|
||||
│ ├── pico.css # PicoCSS styles
|
||||
│ └── alpine.js # Alpine.js library
|
||||
├── package.json
|
||||
├── svelte.config.js
|
||||
├── vite.config.js
|
||||
└── wrangler.toml # Cloudflare Pages config
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
Documentation is written in Markdown and located in `static/docs/`.
|
||||
|
||||
To add a new doc:
|
||||
1. Create a `.md` file in `static/docs/`
|
||||
2. Add it to the navigation in `src/routes/docs/+page.svelte`
|
||||
3. The page will be automatically available at `/docs/your-file-name`
|
||||
|
||||
## Deployment
|
||||
|
||||
### Cloudflare Pages (Automatic)
|
||||
|
||||
Push to `main` branch triggers automatic deployment to Cloudflare Pages.
|
||||
|
||||
Manual deployment:
|
||||
```bash
|
||||
npm run build
|
||||
npx wrangler pages deploy .svelte-kit/output/client
|
||||
```
|
||||
|
||||
### Manual Build
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
# Output is in .svelte-kit/output/client
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project is part of the Nexus Organization and is licensed under the **LSL-1.0** (Libertaria Source License 1.0).
|
||||
|
||||
See [LICENSE](https://git.sovereign-society.org/nexus/nexus/-/raw/main/LICENSE) for details.
|
||||
|
||||
## Links
|
||||
|
||||
- **Repository**: https://git.sovereign-society.org/nexus/nexus-niix-website
|
||||
- **Issues**: https://git.sovereign-society.org/nexus/nexus-niix-website/-/issues
|
||||
- **Organization**: https://git.sovereign-society.org/nexus
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "nexus-niix-website",
|
||||
"version": "0.1.0",
|
||||
"description": "Nexus NIIX Official Website - Svelte + Alpine.JS + picoCSS",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"alpinejs": "^3.13.3",
|
||||
"marked": "^11.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^3.1.1",
|
||||
"@sveltejs/kit": "^2.4.3",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.1",
|
||||
"picocolors": "^1.0.0",
|
||||
"picocss": "^1.0.1",
|
||||
"svelte": "^4.2.8",
|
||||
"vite": "^5.0.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content="Nexus NIIX - Sovereign Technology for the Future" />
|
||||
<title>Nexus NIIX</title>
|
||||
<!-- PicoCSS for styling -->
|
||||
<link rel="stylesheet" href="%sveltekit.assets%/pico.css" />
|
||||
<!-- Alpine.JS for interactivity -->
|
||||
<script defer src="%sveltekit.assets%/alpine.js" ></script>
|
||||
<!-- Custom styles -->
|
||||
<style>
|
||||
:root {
|
||||
--primary: #6366f1;
|
||||
--primary-hover: #4f46e5;
|
||||
--background: #0f172a;
|
||||
--background-alt: #1e293b;
|
||||
--text: #e2e8f0;
|
||||
--text-muted: #94a3b8;
|
||||
--border: #334155;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--background);
|
||||
color: var(--text);
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
}
|
||||
|
||||
.hero {
|
||||
background: linear-gradient(135deg, var(--background-alt) 0%, var(--background) 100%);
|
||||
padding: 4rem 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 3rem;
|
||||
font-weight: 800;
|
||||
margin-bottom: 1rem;
|
||||
background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
|
||||
.hero p {
|
||||
font-size: 1.25rem;
|
||||
color: var(--text-muted);
|
||||
max-width: 600px;
|
||||
margin: 0 auto 2rem;
|
||||
}
|
||||
|
||||
.nav-bar {
|
||||
background: var(--background-alt);
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 1rem;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.nav-bar nav {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.nav-bar a {
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
|
||||
.nav-bar a:hover {
|
||||
background: var(--border);
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem 1rem;
|
||||
}
|
||||
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 1.5rem;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: var(--background-alt);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 1rem;
|
||||
padding: 1.5rem;
|
||||
transition: transform 0.2s, border-color 0.2s;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
transform: translateY(-2px);
|
||||
border-color: var(--primary);
|
||||
}
|
||||
|
||||
.card h3 {
|
||||
margin-bottom: 0.5rem;
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.card p {
|
||||
color: var(--text-muted);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
footer {
|
||||
background: var(--background-alt);
|
||||
border-top: 1px solid var(--border);
|
||||
padding: 2rem 1rem;
|
||||
text-align: center;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
article {
|
||||
background: var(--background-alt);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 1rem;
|
||||
padding: 2rem;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
article h1 {
|
||||
font-size: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
article code {
|
||||
background: var(--background);
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
article pre {
|
||||
background: var(--background);
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
padding: 0.75rem 1.5rem;
|
||||
border-radius: 0.5rem;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
background: var(--primary-hover);
|
||||
}
|
||||
|
||||
.btn-outline {
|
||||
background: transparent;
|
||||
border: 2px solid var(--primary);
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.btn-outline:hover {
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
}
|
||||
</style>
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">%sveltekit.body%</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<script>
|
||||
import { page } from '$app/stores';
|
||||
|
||||
const navItems = [
|
||||
{ href: '/', label: 'Home' },
|
||||
{ href: '/docs', label: 'Docs' },
|
||||
{ href: '/download', label: 'Download' },
|
||||
{ href: '/community', label: 'Community' }
|
||||
];
|
||||
</script>
|
||||
|
||||
<div class="nav-bar">
|
||||
<nav>
|
||||
<a href="/" style="font-weight: bold; font-size: 1.25rem;">
|
||||
⚡ Nexus NIIX
|
||||
</a>
|
||||
<div>
|
||||
{#each navItems as item}
|
||||
<a
|
||||
href={item.href}
|
||||
class:aria-current={$page.url.pathname === item.href}
|
||||
>
|
||||
{item.label}
|
||||
</a>
|
||||
{/each}
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<slot />
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2026 Nexus Organization.
|
||||
<a href="https://git.sovereign-society.org/nexus" style="color: var(--primary);">
|
||||
Open Source
|
||||
</a>
|
||||
•
|
||||
<a href="/docs/legal" style="color: var(--text-muted);">
|
||||
License
|
||||
</a>
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<style>
|
||||
a[aria-current="page"] {
|
||||
background: var(--border);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
<script>
|
||||
const features = [
|
||||
{
|
||||
icon: '🔐',
|
||||
title: 'Sovereign by Design',
|
||||
description: 'No external dependencies, no vendor lock-in. Your data, your rules, your keys.'
|
||||
},
|
||||
{
|
||||
icon: '🌐',
|
||||
title: 'Mesh Networking',
|
||||
description: 'Decentralized peer-to-peer communication without central points of failure.'
|
||||
},
|
||||
{
|
||||
icon: '📦',
|
||||
title: 'Content Addressed',
|
||||
description: 'Every piece of data has a cryptographic identity. Verify, deduplicate, trust.'
|
||||
},
|
||||
{
|
||||
icon: '⚡',
|
||||
title: 'High Performance',
|
||||
description: 'Native Zig implementation optimized for speed and minimal footprint.'
|
||||
},
|
||||
{
|
||||
icon: '🔧',
|
||||
title: 'Modular Baukasten',
|
||||
description: 'Compile only what you need. From IoT sensors to home servers to cloud nodes.'
|
||||
},
|
||||
{
|
||||
icon: '🌱',
|
||||
title: 'Sustainable',
|
||||
description: 'Kinetic Credits economics reward contribution. No charity, engineered reciprocity.'
|
||||
}
|
||||
];
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Nexus NIIX - Sovereign Technology for the Future</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="hero">
|
||||
<h1>Nexus NIIX</h1>
|
||||
<p>
|
||||
Sovereign technology for the future.
|
||||
Decentralized, content-addressed, community-powered.
|
||||
</p>
|
||||
<div>
|
||||
<a href="/download" class="btn">Get Started</a>
|
||||
<a href="/docs" class="btn btn-outline" style="margin-left: 1rem;">Read Docs</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<section>
|
||||
<h2 style="text-align: center; margin-bottom: 2rem;">Why Nexus NIIX?</h2>
|
||||
<div class="grid">
|
||||
{#each features as feature}
|
||||
<article class="card">
|
||||
<h3>{feature.icon} {feature.title}</h3>
|
||||
<p>{feature.description}</p>
|
||||
</article>
|
||||
{/each}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section style="margin-top: 4rem;">
|
||||
<h2 style="text-align: center; margin-bottom: 2rem;">The Ecosystem</h2>
|
||||
<div class="grid">
|
||||
<article class="card">
|
||||
<h3>📦 NexFS</h3>
|
||||
<p>Native Zig flash filesystem. From IoT sensors to Chapter nodes.</p>
|
||||
<a href="/docs/nexfs" style="color: var(--primary);">Learn more →</a>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>🔧 Rumpk</h3>
|
||||
<p>Runtime package manager. Secure, signed, content-addressed packages.</p>
|
||||
<a href="/docs/rumpk" style="color: var(--primary);">Learn more →</a>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>📦 Nip</h3>
|
||||
<p>Package format with dependency resolution and cryptographic verification.</p>
|
||||
<a href="/docs/nip" style="color: var(--primary);">Learn more →</a>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>🌐 Nexus</h3>
|
||||
<p>Core utilities and orchestration for sovereign systems.</p>
|
||||
<a href="/docs/nexus" style="color: var(--primary);">Learn more →</a>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section style="margin-top: 4rem; text-align: center;">
|
||||
<h2>Ready to go sovereign?</h2>
|
||||
<p style="color: var(--text-muted); margin-bottom: 2rem;">
|
||||
Join thousands of developers building the decentralized future.
|
||||
</p>
|
||||
<a href="/download" class="btn">Download NexusOS</a>
|
||||
</section>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,230 @@
|
|||
<script>
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
let content = '';
|
||||
let loading = true;
|
||||
let error = null;
|
||||
|
||||
// Alpine.JS component for doc navigation
|
||||
const docNavigation = {
|
||||
sidebarOpen: false,
|
||||
activeSection: 'getting-started',
|
||||
|
||||
sections: [
|
||||
{ id: 'getting-started', label: 'Getting Started' },
|
||||
{ id: 'installation', label: 'Installation' },
|
||||
{ id: 'configuration', label: 'Configuration' },
|
||||
{ id: 'usage', label: 'Usage' },
|
||||
{ id: 'architecture', label: 'Architecture' },
|
||||
{ id: 'api', label: 'API Reference' }
|
||||
],
|
||||
|
||||
toggleSidebar() {
|
||||
this.sidebarOpen = !this.sidebarOpen;
|
||||
},
|
||||
|
||||
scrollToSection(id) {
|
||||
const element = document.getElementById(`section-${id}`);
|
||||
if (element) {
|
||||
element.scrollIntoView({ behavior: 'smooth' });
|
||||
this.sidebarOpen = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
async function loadDoc() {
|
||||
loading = true;
|
||||
try {
|
||||
const response = await fetch('/docs/index.md');
|
||||
if (response.ok) {
|
||||
content = await response.text();
|
||||
} else {
|
||||
content = '# Documentation\n\nWelcome to Nexus NIIX documentation.\n\nSelect a topic from the sidebar to get started.';
|
||||
}
|
||||
} catch (e) {
|
||||
error = e.message;
|
||||
content = '# Error\n\nFailed to load documentation.';
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
loadDoc();
|
||||
});
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Documentation - Nexus NIIX</title>
|
||||
</svelte:head>
|
||||
|
||||
<div
|
||||
class="docs-container"
|
||||
x-data={JSON.stringify(docNavigation)}
|
||||
>
|
||||
<!-- Mobile sidebar toggle -->
|
||||
<button
|
||||
class="sidebar-toggle"
|
||||
@click="toggleSidebar()"
|
||||
aria-label="Toggle sidebar"
|
||||
>
|
||||
☰
|
||||
</button>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<aside class="sidebar" :class="{ open: sidebarOpen }">
|
||||
<h3>Documentation</h3>
|
||||
<nav>
|
||||
{#each docNavigation.sections as section}
|
||||
<button
|
||||
@click="scrollToSection('{section.id}')"
|
||||
:class="{ active: activeSection === '{section.id}' }"
|
||||
>
|
||||
{section.label}
|
||||
</button>
|
||||
{/each}
|
||||
</nav>
|
||||
|
||||
<div class="sidebar-footer">
|
||||
<a href="https://git.sovereign-society.org/nexus" target="_blank">
|
||||
Git Repository
|
||||
</a>
|
||||
<a href="https://git.sovereign-society.org/nexus/nexus/-/issues" target="_blank">
|
||||
Report Issue
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<!-- Main content -->
|
||||
<main class="docs-content">
|
||||
{#if loading}
|
||||
<div class="loading">
|
||||
<p>Loading documentation...</p>
|
||||
</div>
|
||||
{:else if error}
|
||||
<div class="error">
|
||||
<p>Error: {error}</p>
|
||||
</div>
|
||||
{:else}
|
||||
<article>
|
||||
{@html content}
|
||||
</article>
|
||||
{/if}
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.docs-container {
|
||||
display: flex;
|
||||
min-height: calc(100vh - 60px);
|
||||
}
|
||||
|
||||
.sidebar-toggle {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
left: 1rem;
|
||||
z-index: 1000;
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.5rem 0.75rem;
|
||||
border-radius: 0.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 280px;
|
||||
background: var(--background-alt);
|
||||
border-right: 1px solid var(--border);
|
||||
padding: 1.5rem;
|
||||
position: sticky;
|
||||
top: 60px;
|
||||
height: calc(100vh - 60px);
|
||||
overflow-y: auto;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.sidebar h3 {
|
||||
margin-bottom: 1rem;
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.sidebar nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
|
||||
.sidebar button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: var(--text);
|
||||
text-align: left;
|
||||
padding: 0.5rem 0.75rem;
|
||||
border-radius: 0.375rem;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
|
||||
.sidebar button:hover {
|
||||
background: var(--border);
|
||||
}
|
||||
|
||||
.sidebar button.active {
|
||||
background: var(--primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.sidebar-footer {
|
||||
margin-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
border-top: 1px solid var(--border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.sidebar-footer a {
|
||||
color: var(--text-muted);
|
||||
font-size: 0.875rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sidebar-footer a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.docs-content {
|
||||
flex: 1;
|
||||
padding: 2rem;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
.loading, .error {
|
||||
text-align: center;
|
||||
padding: 4rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.sidebar-toggle {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
position: fixed;
|
||||
left: -280px;
|
||||
z-index: 1001;
|
||||
transition: left 0.3s;
|
||||
}
|
||||
|
||||
.sidebar.open {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.docs-content {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,148 @@
|
|||
# Nexus NIIX Documentation
|
||||
|
||||
Welcome to the Nexus NIIX documentation. Here you'll find everything you need to understand and use our sovereign technology stack.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Install NexusOS
|
||||
git clone https://git.sovereign-society.org/nexus/nexus.git
|
||||
cd nexus
|
||||
./bootstrap.sh
|
||||
```
|
||||
|
||||
### Your First Project
|
||||
|
||||
```bash
|
||||
# Create a new sovereign project
|
||||
nexus new my-app
|
||||
cd my-app
|
||||
nexus run
|
||||
```
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Sovereign by Design
|
||||
|
||||
Nexus NIIX is built around the principle of **user sovereignty**:
|
||||
- No external dependencies
|
||||
- No vendor lock-in
|
||||
- Full cryptographic verification
|
||||
- Your keys, your data
|
||||
|
||||
### Content-Addressed Storage
|
||||
|
||||
Every piece of data in Nexus NIIX has a cryptographic identity:
|
||||
- **Integrity**: Verify data hasn't been tampered with
|
||||
- **Deduplication**: Automatically detect identical content
|
||||
- **Referencing**: Use content hashes as permanent URLs
|
||||
|
||||
### Mesh Networking
|
||||
|
||||
Decentralized peer-to-peer communication without central points of failure.
|
||||
|
||||
## Ecosystem
|
||||
|
||||
### NexFS
|
||||
|
||||
Native Zig flash filesystem optimized for:
|
||||
- IoT sensors (nexfs-core: ~40KB)
|
||||
- Personal devices (nexfs-sovereign: ~120KB)
|
||||
- Home servers (nexfs-mesh: ~200KB)
|
||||
|
||||
### Rumpk
|
||||
|
||||
Runtime package manager with:
|
||||
- Cryptographic signing
|
||||
- Content-addressed storage
|
||||
- Dependency resolution
|
||||
- Secure execution
|
||||
|
||||
### Nip
|
||||
|
||||
Package format specification:
|
||||
- Dependency declarations
|
||||
- Version constraints
|
||||
- Cryptographic manifests
|
||||
- Distribution-agnostic
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Nexus NIIX Stack │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Application Layer (Your Code) │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Rumpk (Package Manager) │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Nip (Package Format) │
|
||||
├─────────────────────────────────────────┤
|
||||
│ NexFS (Filesystem) │
|
||||
├─────────────────────────────────────────┤
|
||||
│ Hardware (Flash, Memory, CPU) │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### System Requirements
|
||||
|
||||
- **Minimum**: 1GB RAM, 10GB storage
|
||||
- **Recommended**: 2GB RAM, 50GB storage
|
||||
- **Supported**: x86_64, ARM64, RISC-V
|
||||
|
||||
### Environment Variables
|
||||
|
||||
```bash
|
||||
NEXUS_HOME=~/.nexus
|
||||
NEXUS_DATA=/data/nexus
|
||||
NEXUS_LOG_LEVEL=info
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
### Core CLI Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `nexus init` | Initialize new project |
|
||||
| `nexus build` | Build project |
|
||||
| `nexus run` | Run development server |
|
||||
| `nexus deploy` | Deploy to production |
|
||||
| `nexus update` | Update Nexus NIIX |
|
||||
| `nexus doctor` | System diagnostics |
|
||||
|
||||
### Programmatic API
|
||||
|
||||
```javascript
|
||||
import { Nexus } from '@nexus/core';
|
||||
|
||||
const nexus = new Nexus({
|
||||
home: '~/.nexus',
|
||||
data: '/data/nexus'
|
||||
});
|
||||
|
||||
// Create a new project
|
||||
await nexus.create('my-app');
|
||||
|
||||
// Install a package
|
||||
await nexus.install('rumpk');
|
||||
|
||||
// Run a command
|
||||
await nexus.run('echo "Hello, Sovereign!"');
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
- **Git Repository**: https://git.sovereign-society.org/nexus
|
||||
- **Issue Tracker**: https://git.sovereign-society.org/nexus/nexus/-/issues
|
||||
- **Community**: https://git.sovereign-society.org/nexus/community
|
||||
|
||||
## License
|
||||
|
||||
Nexus NIIX is licensed under the **LSL-1.0** (Libertaria Source License 1.0).
|
||||
|
||||
See [LICENSE](https://git.sovereign-society.org/nexus/nexus/-/raw/main/LICENSE) for details.
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,13 @@
|
|||
import adapter from '@sveltejs/adapter-auto';
|
||||
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
const config = {
|
||||
kit: {
|
||||
adapter: adapter(),
|
||||
prerender: {
|
||||
entries: ['*']
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default config;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import { defineConfig } from 'vite';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [sveltekit()],
|
||||
build: {
|
||||
target: 'esnext'
|
||||
},
|
||||
optimizeDeps: {
|
||||
include: ['alpinejs', 'marked']
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
name = "nexus-niix-website"
|
||||
compatibility_date = "2024-01-01"
|
||||
|
||||
[site]
|
||||
bucket = ".svelte-kit/output/client"
|
||||
Loading…
Reference in New Issue