75 lines
2.8 KiB
Markdown
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.
|