📄Encrypted, on-demand documentation backups with Plakar + Cloudflare R2

16 changed · 8 files unchanged (carried over intact from the previous snapshot)

changedgetting-started/installation.md
                      @@ -5,22 +5,24 @@  # Installing Nimbus -![The Nimbus command line](./images/logo.jpg)+![Nimbus syncing across machines](./images/logo.jpg) -> **Beta.** Nimbus 0.1 is an early preview. Commands and flags will change.--Nimbus ships as a single binary. Download it with the install script:+Nimbus 0.5 is still a single binary, now published to Homebrew and a versioned+release feed.  ```bash-curl -fsSL https://get.nimbus.dev/install.sh | sh+brew install nimbus+# or pin a version+curl -fsSL https://get.nimbus.dev/install.sh | sh -s -- --version 0.5.0 ``` -Then confirm it runs:+Check the install:  ```bash nimbus --version-# nimbus 0.1.0 (beta)+# nimbus 0.5.0 ``` -There are no other dependencies. The binary is self-contained.+Upgrading from 0.1? The `sync` command still works, but projects now use a+`nimbus.toml` file. See [Configuration](../guides/configuration/). 
                    
changedgetting-started/quickstart.md
                      @@ -5,23 +5,39 @@  # Quickstart -Nimbus 0.1 syncs a local folder to a destination directory. That is the whole-program for now.--Initialise a project:+In 0.5 a project is described by a `nimbus.toml` file instead of command-line+arguments. Scaffold one:  ```bash nimbus init ``` -This writes a `.nimbus` marker in the current directory. Then run a one-shot-sync:+That writes:++```toml+# nimbus.toml+[project]+name = "docs"++[[source]]+type = "local"+path = "./data"++[destination]+type = "local"+path = "./out"+```++Then sync using the file, with no paths to remember:  ```bash-nimbus sync ./data ./out+nimbus sync ``` -Everything under `./data` is copied to `./out`. Files that already match are-skipped. There is no daemon and no watching yet. You run `nimbus sync` whenever-you want to sync.+You can also push to a **remote** destination once you have added an API key+(see [Security](../guides/security/)): +```bash+nimbus deploy --remote edge-1+```+
                    
changedguides/configuration.md
                      @@ -5,19 +5,34 @@  # Configuration -![A Nimbus worker node](./images/architecture.jpg)+![Nimbus configuration flows into every node](./images/architecture.jpg) -Nimbus 0.1 has no configuration file. Everything is passed on the command line:+Nimbus 0.5 reads `nimbus.toml` from the project root. A fuller example:++```toml+[project]+name = "docs"+concurrency = 4++[[source]]+type = "local"+path = "./data"+exclude = ["*.tmp", ".DS_Store"]++[destination]+type = "remote"+name = "edge-1"++[remote.edge-1]+url = "https://edge-1.nimbus.dev"+```++Any value can be overridden with an environment variable using the `NIMBUS_`+prefix and double underscores for nesting:  ```bash-nimbus sync ./data ./out --exclude "*.tmp" --dry-run+NIMBUS_PROJECT__CONCURRENCY=8 nimbus sync ``` -The available flags are:+Environment variables win over the file, and command-line flags win over both. -- `--exclude <glob>`: skip files matching a glob (repeatable)-- `--dry-run`: print what would change without writing anything-- `--delete`: remove files in the destination that are gone from the source--A config file is planned so you do not have to repeat these on every run.-
                    
changedguides/deployment.md
                      @@ -5,14 +5,29 @@  # Deployment -There is no server to deploy in 0.1. Nimbus runs on your machine as a one-shot-command.+0.5 introduces remote destinations, so "deploy" now means pushing your synced+output to a Nimbus edge node. -If you want it to run on a schedule, wire the binary into `cron`:+Register a remote in `nimbus.toml`, then: -```cron-*/15 * * * * /usr/local/bin/nimbus sync /srv/data /srv/out+```bash+nimbus deploy --remote edge-1 ``` -A long-running service with a proper scheduler is on the roadmap.+Run it from CI by setting the API key in the environment: +```yaml+# .github/workflows/deploy.yml+jobs:+  deploy:+    runs-on: ubuntu-latest+    steps:+      - uses: actions/checkout@v4+      - run: curl -fsSL https://get.nimbus.dev/install.sh | sh+      - run: nimbus deploy --remote edge-1+        env:+          NIMBUS_KEY: ${{ secrets.NIMBUS_KEY }}+```++There is a single node per remote for now. Multi-region rollout lands in 1.0.+
                    
changedguides/security.md
                      @@ -5,18 +5,23 @@  # Security -![Reviewing a sync run](./images/dashboard.jpg)+![The Nimbus deploy log](./images/dashboard.jpg) -Nimbus 0.1 runs entirely on your machine and talks to no network, so there are-no credentials to manage yet.--The one thing to know: `--delete` removes files from the destination. Always try-it with `--dry-run` first:+Remote destinations need an API key. Create one in the dashboard and export it:  ```bash-nimbus sync ./data ./out --delete --dry-run+export NIMBUS_KEY="nk_live_..." ``` -Remote sources and API keys arrive in a later release. This page will grow with-them.+Nimbus reads `NIMBUS_KEY` from the environment. Never put it in+`nimbus.toml`. That file is meant to be committed. +Keys are scoped to a single remote and can be rotated without downtime:++```bash+nimbus keys rotate --remote edge-1+```++For the full history of security-relevant changes, see the+[release changelog (PDF)](../documents/changelog.pdf).+
                    
changedguides/troubleshooting.md
                      @@ -5,18 +5,22 @@  # Troubleshooting -![A sync in progress](./images/flow.jpg)+![Following a sync through the pipeline](./images/flow.jpg) -**Nothing happened.** Make sure you ran `nimbus init` in the project first. The-sync refuses to run without a `.nimbus` marker.--**Some files were skipped.** Nimbus compares size and modification time. Touch a-file or pass `--force` to copy it anyway:+**`no nimbus.toml found`.** 0.5 needs a project file. Run `nimbus init` or point+at one explicitly:  ```bash-nimbus sync ./data ./out --force+nimbus sync --config ./path/to/nimbus.toml ``` -If a sync looks wrong, re-run it with `--dry-run` to see the plan before any-files are written.+**`401 unauthorized` on deploy.** The API key is missing or wrong. Confirm it is+set for the current shell: +```bash+echo "${NIMBUS_KEY:0:6}…"   # nk_liv…+```++**Deploy is slow.** Raise the worker count with `concurrency` in `nimbus.toml`+or `NIMBUS_PROJECT__CONCURRENCY`.+
                    
changedreference/api.md
                      @@ -5,23 +5,19 @@  # API reference -Nimbus 0.1 has no HTTP API. It is a command-line tool only.--If you want to script it, call the binary and check its exit code:+0.5 remotes expose a small management API. Authenticate with your API key as a+bearer token:  ```bash-if nimbus sync ./data ./out --dry-run; then-  echo "in sync"-else-  echo "changes pending"-fi+curl https://edge-1.nimbus.dev/status \+  -H "Authorization: Bearer $NIMBUS_KEY" ``` -Exit codes:+Available endpoints: -- `0`: source and destination already match-- `1`: changes were applied (or would be, with `--dry-run`)-- `2`: an error occurred+- `GET /status`: node health and last deploy time+- `GET /manifest`: the file list currently served by the node -A proper REST API is planned for the 1.0 release.+There is no write API yet. Deploys go through the `nimbus` CLI. A full REST API+(including `POST /run`) arrives in 1.0. 
                    
changedreference/cli.md
                      @@ -5,21 +5,20 @@  # CLI reference -The complete 0.1 command set:- ```text-nimbus init                 mark the current directory as a project-nimbus sync <src> <dst>     copy <src> to <dst>+nimbus init                 scaffold a nimbus.toml+nimbus sync                 sync using nimbus.toml+nimbus deploy --remote <r>  push output to a remote+nimbus keys rotate          rotate a remote's API key nimbus --version            print the version-nimbus --help               show help ``` -## Flags for `sync`+## Global flags -| Flag             | Description                                   |-| ---------------- | --------------------------------------------- |-| `--exclude`      | skip files matching a glob (repeatable)       |-| `--dry-run`      | show the plan without writing                 |-| `--delete`       | delete extra files in the destination         |-| `--force`        | copy even when size and mtime match           |+| Flag           | Description                              |+| -------------- | ---------------------------------------- |+| `--config`     | path to a `nimbus.toml` (default: `./`)  |+| `--remote`     | target remote for `deploy`               |+| `--dry-run`    | show the plan without writing            |+| `--concurrency`| number of parallel workers               | 
                    
changedreference/data/api-endpoints.json
                      @@ -1,11 +1,9 @@ {-  "version": "0.1.0",-  "api": false,-  "note": "Nimbus 0.1 is a CLI only. No HTTP endpoints are exposed.",-  "exitCodes": {-    "0": "source and destination already match",-    "1": "changes applied",-    "2": "error"-  }+  "version": "0.5.0",+  "auth": "bearer",+  "endpoints": [+    { "method": "GET", "path": "/status", "desc": "node health and last deploy time" },+    { "method": "GET", "path": "/manifest", "desc": "files currently served by the node" }+  ] } 
                    
changedreference/data/config-defaults.csv
                      @@ -1,6 +1,8 @@-flag,default,description---exclude,,skip files matching a glob (repeatable)---dry-run,false,show the plan without writing---delete,false,delete extra files in the destination---force,false,copy even when size and mtime match+key,default,description+project.name,,project identifier+project.concurrency,4,number of parallel workers+source.type,local,source kind (local or remote)+source.exclude,,globs to skip+destination.type,local,destination kind (local or remote)+NIMBUS_KEY,,API key for remote destinations (env only) 
                    
changedreferences.md
                      @@ -5,16 +5,21 @@  # References and further reading -Background reading for the 0.1 beta:+- The `nimbus.toml` schema reference+- API keys and how scoping works+- TOML, and why we chose it over YAML for the project file -- The Nimbus design sketch-- Why we compare by size and mtime, not by hashing (yet)-- rsync, and what we borrowed from it+## Spec sheet++The 0.5 spec sheet is captured in the backup and embedded below:++<div class="embed embed-pdf"><object data="./documents/spec-sheet.pdf" type="application/pdf"><a href="./documents/spec-sheet.pdf">Open the Nimbus 0.5 spec sheet (PDF) →</a></object></div>  ## Downloads  - [Spec sheet (PDF)](./documents/spec-sheet.pdf)-- [Default flags (CSV)](./reference/data/config-defaults.csv)+- [Default configuration (CSV)](./reference/data/config-defaults.csv)+- [API endpoints (JSON)](./reference/data/api-endpoints.json) ## Product screens  The Nimbus media kit ships unchanged with every release. These full-resolution
                    
changedtheme.css
                      @@ -1,48 +1,61 @@-/* Nimbus 0.1 docs theme: plain and utilitarian: serif headings, blue links. */+/* Nimbus 0.5 docs theme: system sans, teal accent, boxed images. */ .doc {-  --accent: #1a56db;-  font-family: Georgia, 'Times New Roman', serif;-  line-height: 1.75;-  color: #1b1b1b;+  --accent: #0d9488;+  font-family:+    system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;+  line-height: 1.7;+  color: #1f2937; } .doc h1, .doc h2, .doc h3 {-  font-family: Georgia, 'Times New Roman', serif;+  font-family: inherit;   font-weight: 700;-  color: #111;+  letter-spacing: -0.01em;+  color: #0f766e; } .doc h1 {-  border-bottom: 2px solid #e5e5e5;+  border-bottom: 2px solid #99f6e4;   padding-bottom: 6px;+}+.doc h2 {+  margin-top: 1.8em; } .doc a {   color: var(--accent);-  text-decoration: underline;+  text-decoration: none;+  border-bottom: 1px solid #99f6e4;+}+.doc a:hover {+  border-bottom-color: var(--accent); } .doc code {-  font-family: ui-monospace, Menlo, monospace;-  background: #f2f2f2;-  border-radius: 3px;+  background: #f0fdfa;+  color: #0f766e;+  border-radius: 4px; } .doc pre {-  background: #f6f6f6;-  border: 1px solid #e2e2e2;-  border-radius: 4px;+  background: #0f2b28;+  color: #e6fffb;+  border-radius: 8px;+}+.doc pre code {+  background: none;+  color: inherit; } .doc img {-  border: 1px solid #ddd;+  border: 4px solid #ccfbf1;+  border-radius: 10px;+}+.doc .embed-pdf iframe {+  border: 2px solid #ccfbf1;+  border-radius: 10px;+}+.doc thead th {+  background: #f0fdfa;+  color: #0f766e; } .doc blockquote {-  border-left: 4px solid #1a56db;-  color: #555;-  font-style: italic;-}-.doc th,-.doc td {-  border-color: #ddd;-}-.doc thead th {-  background: #f2f2f2;+  border-left: 3px solid #14b8a6; } 
                    
changedgetting-started/images/logo.jpg

Binary file. The bytes differ between versions (for example an image or PDF that was replaced).

changedguides/images/architecture.jpg

Binary file. The bytes differ between versions (for example an image or PDF that was replaced).

changedguides/images/dashboard.jpg

Binary file. The bytes differ between versions (for example an image or PDF that was replaced).

changedguides/images/flow.jpg

Binary file. The bytes differ between versions (for example an image or PDF that was replaced).