DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
자체 포함 단일 파일 시작 페이지로, 자체 호스팅 서비스에 100% 로컬 오프라인 작동, 자동 Home/Away 감지 지원
A self-contained, single-file start page for your self-hosted services. 100% local, works fully offline, with auto Home / Away detection.
생산성TypeScript · CSSGitHub @BrainInBlack온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Phosphor / CRT-styled homelab dashboard - one self-contained, offline HTML file.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Phosphor / CRT-styled homelab dashboard. Ships as one self-contained
CRTL.html - fonts and curated icons are baked in, so it has no runtime
dependencies and works fully offline. Open it in a browser and you're done.
No tracking, no analytics, no telemetry. On a normal load the only network calls are the Home/Away and health probes you configure - fonts and curated icons are bundled, so nothing is fetched from a CDN. Three opt-in features do reach the network, and the UI says so:
svg:...) and any non-curated Bootstrap icon are fetched once
from a public CDN (api.iconify.design / unpkg) when you save the entry, then
embedded into your config.api.github.com (AES-encrypted payload).api.github.com for the latest
release - when you press Check now in Help, or once a day if you turn on
Check on startup there.Two colour themes, each with a light and a dark mode. Pick the theme under the gear -> Theme; the sun / moon button (bottom-right) flips light and dark within it. Both choices are remembered per device and never synced.
CRTL comes in two forms, built from the same source:
CRTL.html) - the downloadable single file. Open it via
file:// or serve it over plain http://. Full features, including
automatic Home / Away detection and per-service health dots. Best on desktop..html. Android can use either (the local file works
but is fiddly to open; the hosted build is easier).The trade-off on the hosted build: it's served over https://, and browsers
block an https:// page from probing your http:// LAN (mixed content). So by
default the hosted build turns Home / Away into a manual toggle and shows
health dots only for https services. You can restore automatic detection with a
small beacon - see
Home and Away on the hosted version.
The bottom-right gear -> Help shows which build you're running and its version.
Any modern browser - Chrome, Firefox, Safari, or Edge. Nothing to install; the
local build runs straight from file://. Encrypted sync uses the Web Crypto API,
which needs a secure context - the local file (file://) and any https:// page
both qualify.
CRTL.html from the
latest release and
open it via file://, or set it as your homepage / new-tab page.
iPhone / iPad: a downloaded file won't open in Safari - use the hosted web
build instead.Your config lives in localStorage (and the gist, if you turn on sync). The
built-in defaults are only a first-run seed.
Open an entry in the editor to set its icon. Two sets are available:
bi:name
(browse names at icons.getbootstrap.com).svg:name for a
Simple Icons glyph, e.g. svg:proxmox or
svg:jellyfin.The common Bootstrap icons are baked into the file and render offline. Any other icon - a brand glyph, or a Bootstrap icon outside the curated set - is fetched once from a public CDN when you save the entry, then embedded into your config so it keeps working offline afterwards. This is one of the two features that reach the network, and only on save.
By default your config lives only in this browser. Optional encrypted GitHub-gist sync shares it across machines. The gist payload is AES-encrypted in your browser before upload, so GitHub only ever stores ciphertext - only your machines hold the key.
To turn it on (gear -> Global options -> Encrypted gist sync):
gist scope, and paste it into GitHub token.To add another machine, Copy the Setup blob on the first machine and paste it into the Setup blob box on the second, then click Import. The blob carries the token, gist id, and key; the second machine imports the gist and stays in sync.
A couple of things to know:
gist scope - it can read and write all your gists, not
just this one - and it's stored locally in plaintext next to the encryption key
(the setup blob holds both too). Only enable sync on machines you trust.No GitHub? Gear -> Global options -> Encrypted backup exports your config as
a passphrase-encrypted file (crtl-backup-YYYY-MM-DD.json) you can import on
another machine - or keep as a plain backup. Nothing leaves your device; the file
is AES-encrypted with a key derived from your passphrase (PBKDF2), so it's safe
to park on a USB stick or a cloud drive.
bi:/svg: ids after import, so non-curated ones fetch once from the
CDN, exactly as on save.file:// and https://, not
from a page served over plain http://.On the hosted (https://) build, automatic Home / Away detection is off, because
browsers won't let an https:// page probe your http:// LAN. To bring it back,
give the page one endpoint it can reach over https - a "beacon" that only
resolves on your home network. Home, the probe succeeds (Home); away, it
fails (Away).
You need a hostname served over trusted https that only routes on your LAN. The
cleanest setup:
home-ping.yourdomain.com.A record at a private LAN IP (e.g. 192.168.1.2).
Off your network that address is unroutable, so the probe fails - exactly the
"Away" signal you want. No split-horizon DNS needed.*.yourdomain.com wildcard covers it.home-ping.yourdomain.com, forward it to something that is
always up (the NPM admin page, your router, a NAS), then under SSL
request/assign the DNS-01 wildcard certificate and enable Force SSL.https://home-ping.yourdomain.com to your Home probes.That's it - the hosted build now auto-detects. Your existing http:// probes can
stay in the list; the hosted build simply ignores them (it can't reach them over
https) while the local file still uses them. Per-service http health dots
remain hidden on the hosted build - the beacon only drives Home / Away.
For Away-mode link reordering and dimming, a URL is considered internal if its hostname:
.home or .local10.x, 192.168.x, 172.16-31.x)Loopback (127.x / localhost) is treated as always-reachable, not
internal.
fetch(url, { mode: 'no-cors' }). The response is
opaque, but the fetch resolves on any HTTP response and rejects on
network-layer failure. That's enough to tell whether a host is reachable.Cross-Origin-Resource-Policy: same-origin, which blocks opaque fetches
from file:// and makes them probe as down. Turn off that entry's health
check if it bothers you.file:// (or plain http://). The probes are http:// requests
to LAN IPs; on a page served over https:// browsers block them as mixed
content, so everything reads as down / Away.Bug reports and PRs welcome. See CONTRIBUTING.md for building from source, and docs/ARCHITECTURE.md for how it all fits together. Found a security issue? See the security policy - please report it privately, not as a public issue.
MIT + Commons Clause (c) 2026 BrainInBlack - free to use (including inside a company), modify, and share; you just may not sell it. See the Commons Clause for what "sell" means.