DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Tasks, documents and calendar for your team, in one calm place. Free, open source and self-hosted, with apps for Android, Linux and Windows that work offline.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗English and French, light and dark themes.
Download them from https://looty.untypequicode.fr (or the GitHub releases). Each app asks for the address of your Looty server.
| Platform | Notes |
|---|---|
| Android 8+ | Native Kotlin app, no Google services (UnifiedPush), widget, share target, offline editing, updates inside the app |
| Linux | .deb for Debian 12 / Ubuntu 22.04+ with a signed apt repository (apt upgrade updates it); Nix package (nix run github:untypequicode/looty#looty-desktop) |
| Windows 10/11 | Installer for the current user (unsigned: Windows may warn about an unknown publisher) |
| iPhone / iPad | Open Looty in Safari and add it to the home screen (installable web app) |
The desktop app and the dev shells are prebuilt for x86_64 and aarch64 Linux in the looty Cachix cache, so Nix downloads instead of compiling. The flake declares the cache; Nix only honours that if your user is trusted, so on NixOS add it to your configuration once:
nix.settings = {
extra-substituters = [ "https://looty.cachix.org" ];
extra-trusted-public-keys = [ "looty.cachix.org-1:xEEH96rXQvBMpS4Flzu1yAfe1Wt4Pz2nKssc1ga5eYc=" ];
};
Elsewhere, put the same two lines in /etc/nix/nix.conf. Without this, Nix warns ignoring the client-specified setting 'trusted-public-keys' and builds locally. Then nix run github:untypequicode/looty#looty-desktop.
Looty is three small services plus PostgreSQL, shipped as Docker images (amd64 and arm64):
| Service | Role | Stack |
|---|---|---|
backend | API, files, CalDAV, mail | Rust (axum) |
frontend | Web interface | Nuxt 3 |
collaboration | Real-time document editing | Hocuspocus (Yjs) |
Get the compose file of the latest release and create a .env next to it:
curl -LO https://github.com/untypequicode/looty/releases/latest/download/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/untypequicode/looty/main/.env.example
Edit .env: the domain (APP_DOMAIN, BASE_URL), database password, LOOTY_SECRET_KEY (openssl rand -base64 32) and your OpenID Connect provider (OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET).
docker compose up -d.
The production compose file expects a Traefik reverse proxy to route the domain (labels are in the file); behind another proxy, send /api, /uploads, /pages, /dav and /.well-known/caldav to the backend (8080), /collab to the collaboration service (8082, prefix stripped) and everything else to the frontend (3000). Pin a version with LOOTY_VERSION=<x.y.z>.
Backups: scripts/backup.sh and scripts/restore.sh.
backend/ Rust API (axum, PostgreSQL); release notes in releases.json
frontend/ Nuxt 3 single-page app
collaboration/ Hocuspocus server for real-time documents
desktop/ Tauri v2 app (Linux, Windows) and Debian packaging
android/ Native Android app (Kotlin, Compose)
site/ Download website (Astro + a tiny Rust server)
scripts/ Release, backup and site publishing scripts
A Nix shell provides every toolchain: nix-shell (or nix develop).
docker compose up -d postgres # database
cd backend && cargo run # API on :8080
cd frontend && npm install && npm run dev # web app on :3000
cd collaboration && npm install && node index.js
docker compose up (without Traefik) builds and runs everything from source; add docker-compose.override.yml.example as docker-compose.override.yml to reach it on port 3000 (the frontend also relays the /api/ws and /collab WebSockets, so real-time editing works without a proxy). Checks run by CI: cargo test in backend/, node scripts/check-i18n.mjs (French and English texts match) and npm run build in frontend/. Each app has its own README: desktop/, android/, site/.
Bump the version, add the notes (English and French) to backend/releases.json and merge into main: CI builds and publishes what changed. Details in RELEASING.md.