Decky/README.md

71 lines
2.5 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;
- 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.2.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 release artifacts, never with `git pull`.
The updater is available from Settings and reads stable metadata from the
Forgejo repository. See `app/UPDATES.md` for signing-key backup, release tags,
Forgejo Actions secrets, and the manual release fallback.