Decky/README.md
Elijah ee2ef03982
Some checks are pending
Validate Decky / web-client (push) Waiting to run
Add automatic background refresh
2026-07-20 09:00:29 -07:00

75 lines
2.8 KiB
Markdown

# Decky
Decky is a focused cross-platform desktop client for viewing and editing boards
from a Nextcloud Deck instance.
## Current application
The active application lives in `app/` and uses:
- Tauri 2 for the small native desktop shell;
- Svelte 5 and TypeScript for the interface;
- the operating system webview on Windows, macOS, and Linux;
- the native credential store on each platform (Windows Credential Manager,
macOS Keychain, or Linux Secret Service);
- Tauri's Rust HTTP client so Nextcloud requests are not blocked by browser CORS.
Implemented functionality includes:
- app-password authentication and automatic API-path discovery;
- active-board filtering and saved board selection;
- board creation, renaming, recoloring, and deletion;
- stack creation, renaming, reordering, and deletion;
- idle-aware background synchronization of boards, stacks, and cards;
- horizontal and vertical layouts saved independently per board;
- card creation, editing, deletion, due date, description, and color controls;
- a directly visible completion checkmark that synchronizes Deck's `done` value
and applies the configured active/completed color;
- preserved full-card update payloads and the tested Deck cross-stack movement
compatibility fallback;
- responsive/collapsible navigation and card search.
The earlier .NET/WinUI projects remain in `src/` and `tests/` temporarily as a
reference for the compatibility probe and original API test cases. They are no
longer the primary application.
## Development
Install Node.js, Rust stable, the platform-specific Tauri prerequisites, and
then run:
```powershell
cd app
npm install
npm run check
npm test
npm run tauri dev
```
Build a release executable with:
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\Prepare-Release.ps1 -Version 0.3.0 -Notes "Release notes"
```
This produces a normal per-user Windows setup executable plus the cryptographic
signature and metadata used by Decky's in-app updater.
Cross-platform artifacts must be compiled on their target operating system.
Use macOS for `.app`/DMG builds, Windows for MSI/NSIS builds, and Linux for the
desired Linux packages.
## Security
Decky only accepts HTTPS servers, except for `localhost` during development.
The app password is never stored in local storage or the JSON/settings model.
When “Save securely on this device” is selected it is saved through the native
OS credential service.
## Updates
Installed copies update from signed Forgejo Release artifacts, never with `git pull`.
The updater is available from Settings and reads stable metadata from the
Forgejo repository. The Unraid Forgejo runner validates source changes; this
Windows machine builds and signs the installer. See `app/UPDATES.md` for the
complete release procedure and signing-key backup.