Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ Open `http://127.0.0.1:4173` for a browser preview with sample data. Desktop ope
| | |
| ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| 📖 **[Wiki: how to use Command Center](https://github.com/Commanderx-code/command-center/wiki)** | A step-by-step guide to every page and feature, plus troubleshooting. |
| 📚 **[Documentation index](docs/README.md)** | Every reference doc in one place. |
| 📥 [Installation](docs/installation.md) | Packages, requirements, checksums, and source builds. |
| 🧭 [User guide](docs/user-guide.md) | Features, integrations, command behavior, and local data. |
| 🧑‍💻 [Development](docs/development.md) | Repository layout, checks, and Toolbox updates. |
Expand Down
66 changes: 66 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<div align="center">

<img src="../src-tauri/icons/command-center.svg" alt="Command Center icon" width="72" />

# Command Center documentation

Reference docs for installing, using, and developing Command Center.<br />
Looking for a step-by-step walkthrough? Read the **[📖 Wiki guide](https://github.com/Commanderx-code/command-center/wiki)**.

<sub>[🏠 Back to the README](../README.md)</sub>

</div>

## 👤 Using Command Center

<table>
<tr>
<td width="50%" valign="top">
<h3>📦 <a href="installation.md">Installation</a></h3>
Release packages, requirements, checksum and provenance verification, and building from source.
</td>
<td width="50%" valign="top">
<h3>🧭 <a href="user-guide.md">User guide</a></h3>
Features, connecting your setup, how commands run, local data, and every page in detail.
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h3>🔁 <a href="operations.md">Workflows and profiles</a></h3>
Maintenance recipes, machine profiles, personal Toolbox folders, recovery tests, and notifications.
</td>
<td width="50%" valign="top">
<h3>🚚 <a href="setup-and-workspaces.md">Setup and workspaces</a></h3>
Setup bundles between machines, the first-run wizard, project workspaces, and keyboard navigation.
</td>
</tr>
</table>

## 🛠️ Building and releasing

<table>
<tr>
<td width="50%" valign="top">
<h3>🛠️ <a href="development.md">Development</a></h3>
Architecture, local checks, updating Commander Toolbox, packaging, the wiki, and screenshots.
</td>
<td width="50%" valign="top">
<h3>🚀 <a href="releases.md">Releases and updates</a></h3>
Source updates and rollback, preparing a release, packaging CI, and the AUR package.
</td>
</tr>
</table>

## 🗂️ Also in this folder

| Path | What it is |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| 📝 [`release-notes.md`](release-notes.md) | Notes for the current release. `npm run release:draft` uses them as the GitHub release text. |
| 📖 [`wiki/`](wiki/) | Source of the [GitHub wiki](https://github.com/Commanderx-code/command-center/wiki), published by the `Publish wiki` workflow. |
| 🖼️ [`images/`](images/) | Screenshots used by the README and wiki. |
| 🗄️ [`history/`](history/) | Historical development notes. They describe earlier versions and may no longer match the app. |

<div align="center">
<br />
<sub>See also: <a href="../CHANGELOG.md">📝 Changelog</a> · <a href="../CONTRIBUTING.md">🤝 Contributing</a> · <a href="../SECURITY.md">🔐 Security</a> · <a href="../THIRD_PARTY.md">🧾 Third-party notices</a></sub>
</div>
19 changes: 14 additions & 5 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Development
# 🛠️ Development

[← Command Center](../README.md) · [Installation](installation.md) · [Contributing](../CONTRIBUTING.md)
<sub>[🏠 README](../README.md) &nbsp;·&nbsp; [📚 Docs](README.md) &nbsp;·&nbsp; [📦 Installation](installation.md) &nbsp;·&nbsp; [🤝 Contributing](../CONTRIBUTING.md)</sub>

> _Architecture, checks, Toolbox updates, packaging, and docs._

## Architecture

Expand Down Expand Up @@ -39,7 +41,8 @@ The **Security audit** workflow runs `cargo audit --file src-tauri/Cargo.lock` a

Workflow actions are pinned to full commit SHAs, with the version in a trailing comment. Dependabot (`.github/dependabot.yml`) opens grouped weekly updates for Actions, npm, and Cargo; review an Action update's release before merging it. The Commander Toolbox pin is excluded; update it with `scripts/pin-toolbox.mjs`.

Tests do not push real repositories, run personal backups, activate Home Manager, or execute real Toolbox installers. UI changes should also be checked visually in the browser preview and, for native behavior, in the desktop app.
> [!NOTE]
> Tests do not push real repositories, run personal backups, activate Home Manager, or execute real Toolbox installers. UI changes should also be checked visually in the browser preview and, for native behavior, in the desktop app.

## Updating Commander Toolbox

Expand All @@ -61,11 +64,17 @@ npm run desktop:package

Tauri writes `.deb` and `.rpm` packages under `src-tauri/target/release/bundle/`. Keep versions aligned in `package.json`, `package-lock.json`, `src-tauri/Cargo.toml`, `src-tauri/Cargo.lock`, and `src-tauri/tauri.conf.json` when preparing a version bump.

Release packages come from CI, which builds on Ubuntu 22.04 and declares a glibc 2.35 floor. A local `desktop:package` build on a newer distribution links against its newer glibc, so `scripts/verify-packages.py` correctly rejects it as a release candidate. See [Releases](releases.md#package-validation-and-distribution-ci).
> [!IMPORTANT]
> Release packages come from CI, which builds on Ubuntu 22.04 and declares a glibc 2.35 floor. A local `desktop:package` build on a newer distribution links against its newer glibc, so `scripts/verify-packages.py` correctly rejects it as a release candidate. See [Releases](releases.md#package-validation-and-distribution-ci).

## Wiki

The [GitHub wiki](https://github.com/Commanderx-code/command-center/wiki) is published from `docs/wiki/`. Edit the pages there and open a pull request; after it merges, the `Publish wiki` workflow copies them to the wiki. Edits made directly in the wiki are overwritten the next time that page changes here. Page links use wiki names such as `[Settings](Settings)`, so they only resolve on the wiki itself. `Home.md`, `_Sidebar.md`, and `_Footer.md` are the landing page, sidebar, and footer.
The [GitHub wiki](https://github.com/Commanderx-code/command-center/wiki) is published from `docs/wiki/`. Edit the pages there and open a pull request; after it merges, the `Publish wiki` workflow copies them to the wiki.

> [!WARNING]
> Edits made directly in the wiki are overwritten the next time that page changes here.

Page links use wiki names such as `[Settings](Settings)`, so they only resolve on the wiki itself. `Home.md`, `_Sidebar.md`, and `_Footer.md` are the landing page, sidebar, and footer.

## Documentation screenshots

Expand Down
3 changes: 2 additions & 1 deletion docs/history/SETTINGS-UPDATE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
> Historical development notes. These describe an earlier version and may no longer match the app. See the [current user guide](../user-guide.md) for supported behavior.
> [!WARNING]
> **Historical development notes.** These describe an earlier version and may no longer match the app. See the [current user guide](../user-guide.md) for supported behavior.

# Basic settings update

Expand Down
5 changes: 4 additions & 1 deletion docs/history/UI-POLISH.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
> Historical development notes. These describe an earlier version and may no longer match the app. See the [current user guide](../user-guide.md) for supported behavior.
> [!WARNING]
> **Historical development notes.** These describe an earlier version and may no longer match the app. See the [current user guide](../user-guide.md) for supported behavior.

# Settings and UI polish

Expand All @@ -7,6 +8,7 @@ Existing settings are migrated through defaults; editor, terminal, and scan
folder choices are retained.

New preferences in Settings:

- Theme: Dark, Light, or System (follows desktop color scheme).
- Text size: Standard or Larger.
- Repository layout: Cards or List.
Expand All @@ -26,6 +28,7 @@ Search shortcut: Ctrl+K (Cmd+K in a browser on macOS); Escape clears search.
Errors remain visible until dismissed or replaced by a later notification.

Validation:

- `node --test tests/*.test.mjs` — preferences migration, normalization,
simultaneous status badges, error-state filtering, and stable sorting.
- `npm run check` and `npm run build`.
Expand Down
23 changes: 16 additions & 7 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# Installation
# 📦 Installation

[← Command Center](../README.md) · [User guide](user-guide.md) · [Development](development.md)
<sub>[🏠 README](../README.md) &nbsp;·&nbsp; [📚 Docs](README.md) &nbsp;·&nbsp; [🧭 User guide](user-guide.md) &nbsp;·&nbsp; [🛠️ Development](development.md)</sub>

> _Release packages, verification, and building from source._

## Release packages

Download a package and `SHA256SUMS` from the [GitHub releases page](https://github.com/Commanderx-code/command-center/releases/latest).

Packages target **Linux x86_64 / amd64** and require **GTK 3, WebKitGTK 4.1, and glibc 2.35 or newer** from 0.6.0 (0.5.x packages require glibc 2.39). Packages declare these dependencies. Both packages are built once on Ubuntu 22.04, then installed and launched on Ubuntu 22.04, Debian 12, Ubuntu 24.04, and Fedora 43. See the release notes for the workflow run. ARM, Windows, and macOS packages are not currently published.
> [!IMPORTANT]
> Packages target **Linux x86_64 / amd64** and require **GTK 3, WebKitGTK 4.1, and glibc 2.35 or newer** from 0.6.0 (0.5.x packages require glibc 2.39). Packages declare these dependencies. Both packages are built once on Ubuntu 22.04, then installed and launched on Ubuntu 22.04, Debian 12, Ubuntu 24.04, and Fedora 43. See the release notes for the workflow run. ARM, Windows, and macOS packages are not currently published.

To verify a downloaded package, put it and `SHA256SUMS` in the same directory and run:

Expand Down Expand Up @@ -42,9 +45,13 @@ On Arch or an Arch-based system such as Garuda (0.6.0 and later):
sudo pacman -U ./command-center-0.7.1-1-x86_64.pkg.tar.zst
```

The Arch package is built from the release tag with `packaging/aur/PKGBUILD` in a clean Arch container and tracks current Arch libraries; update your system before installing it. To build it yourself instead, run `makepkg -si` from a copy of `packaging/aur/`.
> [!TIP]
> The Arch package is built from the release tag with `packaging/aur/PKGBUILD` in a clean Arch container and tracks current Arch libraries; update your system before installing it. To build it yourself instead, run `makepkg -si` from a copy of `packaging/aur/`.

Launch **Command Center** from your application menu.

Launch **Command Center** from your application menu. Run the app as your normal user, without `sudo`.
> [!WARNING]
> Run the app as your normal user, without `sudo`.

## From source on Arch/Garuda

Expand Down Expand Up @@ -88,12 +95,14 @@ The per-user installer writes `~/.local/bin/command-center`, an icon, and a desk
| `npm run desktop:install` | Release executable and per-user application-menu entry. |
| `npm run desktop:package` | `.deb` and `.rpm` files in `src-tauri/target/release/bundle/`. |

The browser preview uses sample repositories and configurations. It cannot run Git operations, access backups, launch applications, or save real configuration files. Source changes rebuild automatically; refresh the browser to load them.
> [!NOTE]
> The browser preview uses sample repositories and configurations. It cannot run Git operations, access backups, launch applications, or save real configuration files. Source changes rebuild automatically; refresh the browser to load them.

## Connect integrations

After installation, open **Settings → System integrations**. Command Center can detect an existing dotfiles machine configuration, backup helpers, and Ghostty/Fastfetch source paths. Review the detected paths and save your settings.

Git, Home Manager, Restic, Ghostty, Fastfetch, and backup helpers are used when installed and configured. They are not all required to open the app. See the [user guide](user-guide.md#connect-your-setup) for each integration.

File restores require **Restic 0.17 or newer** for its no-overwrite protection; Command Center checks support before preparing a restore. Some distributions ship an older Restic independently of Command Center.
> [!NOTE]
> File restores require **Restic 0.17 or newer** for its no-overwrite protection; Command Center checks support before preparing a restore. Some distributions ship an older Restic independently of Command Center.
18 changes: 14 additions & 4 deletions docs/operations.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Workflows, profiles, and recovery verification
# 🔁 Workflows, profiles, and recovery verification

[← Command Center](../README.md) · [User guide](user-guide.md)
<sub>[🏠 README](../README.md) &nbsp;·&nbsp; [📚 Docs](README.md) &nbsp;·&nbsp; [🧭 User guide](user-guide.md)</sub>

> _Maintenance recipes, machine profiles, personal tools, recovery tests, and notifications._

## Maintenance workflows

Expand All @@ -16,7 +18,12 @@ The weekly maintenance example checks local backup-drive readiness, runs the per

A machine profile is a named, ordered setup recipe for a workstation, laptop, or new install. Add repository clones, Toolbox installers, configuration operations, and other steps through the same editor. Set a profile-specific dotfiles checkout and Home Manager flake profile, or leave them blank to use Settings. These overrides apply only to that profile's reviewed commands.

**Review profile** shows whether each command can be prepared on the current machine. Optional path checks show **Present · inspect before skipping** when a file or directory exists. Presence does not establish that the right version or content is installed. **Skip inspected step** requires confirmation. Missing prerequisites can be satisfied by earlier steps; the app rechecks each command immediately before execution.
**Review profile** shows whether each command can be prepared on the current machine. Optional path checks show **Present · inspect before skipping** when a file or directory exists.

> [!CAUTION]
> Presence does not establish that the right version or content is installed.

**Skip inspected step** requires confirmation. Missing prerequisites can be satisfied by earlier steps; the app rechecks each command immediately before execution.

Profiles operate on the local computer. They do not connect to remote machines, automatically replace configuration files, or bypass Toolbox installer prompts. Clone destinations must be new directories. Recipes and personal tools live in `operations.json`. In 0.5.0, [setup bundles](setup-and-workspaces.md) include them; preference-only Settings exports still do not.

Expand Down Expand Up @@ -44,7 +51,10 @@ The prerequisite field checks whether the executable is available. It does not i

The test uses `restic dump` to restore the selected file into a temporary directory, compares its SHA-256 against the saved baseline, and removes its temporary copy on normal completion. It never overwrites the original. A mismatch or missing file fails visibly in Activity. Abrupt process termination or power loss can leave a temporary copy for normal system temporary-file cleanup.

Recent recovery results include the baseline ID, result, and timestamp. The baseline selector maps IDs to recorded files and dates. Results follow Activity's 100-job retention. Success proves recovery of that selected file from that snapshot using the current credentials; it does not certify all snapshots, all files, or a bootable system restore. A file changed after recording may legitimately mismatch another snapshot.
Recent recovery results include the baseline ID, result, and timestamp. The baseline selector maps IDs to recorded files and dates. Results follow Activity's 100-job retention.

> [!NOTE]
> Success proves recovery of that selected file from that snapshot using the current credentials; it does not certify all snapshots, all files, or a bootable system restore. A file changed after recording may legitimately mismatch another snapshot.

## Change timeline

Expand Down
Loading
Loading