DSH-Arch-Setup/README.md
Шурупов Илья Викторович cf9443753e Add one-command Arch DSH setup
Package the portable DSH profiles, local plugins, desktop integration, Firefox wrapper, and ownership-aware installer lifecycle. Bundle checksum-pinned OpenVSCode, editor extensions, translation assets, and cloudflared so unreliable upstream artifact downloads cannot break a clean installation.
2026-09-12 19:13:36 +03:00

94 lines
3.7 KiB
Markdown

# DSH Arch Setup
One-command installation of a customized DeepSeek Harness environment on x86-64 Arch Linux.
## Install
```bash
git clone https://git.ilusha-basic.online/ilusha/DSH-Arch-Setup.git
cd DSH-Arch-Setup
./install.sh
```
The installer may request `sudo` once to install missing Arch packages. It then:
- installs `@deepseek-ai/dsh@0.1.1-rc.2` under `~/.local`;
- links every repository-owned plugin into `~/.dsh/plugins`;
- installs all external Web-profile plugins from the committed pnpm lockfile;
- installs checksum-pinned cloudflared 2026.8.3 locally instead of running its unpinned network postinstall;
- verifies and extracts the bundled OpenVSCode Server 1.109.5 runtime without starting it;
- checksum-verifies and installs the bundled local VSIX artifacts listed in `manifests/vscode-extension-artifacts.tsv`;
- applies narrow compatibility patches required by `dsh-touched-git`;
- installs the Firefox app profile, launcher, desktop entry, and icons;
- installs and starts `dsh-web.service` as a systemd user service.
Open **DSH** from the desktop application menu or run:
```bash
dsh-app
```
Provider credentials are intentionally not included. Configure accounts on first launch. Sublime Merge is optional; install it separately if you want the `dsh-open-in-smerge` action.
### Installer options
```bash
./install.sh --skip-system-packages
./install.sh --skip-network --no-start
```
The second form is intended for local layout tests; it does not install DSH packages, editor components, or start the service.
## Update
```bash
git pull --ff-only
./install.sh
```
The installer is idempotent. Before replacing a path it does not already manage, it moves the old path under `~/.local/state/dsh-arch-setup/backups/`.
## Validate
```bash
./test/run.sh
```
Tests use temporary homes and never start or stop the live DSH service.
## Uninstall
```bash
./uninstall.sh
```
The uninstaller stops the user service, removes unchanged managed files and exact repository links, restores backups, and removes generated installations only when they did not predate the first setup run. Credentials, sessions, attachments, settings, and user-modified files are preserved.
## Included local plugins
- `dsh-compact-sidebar`
- `dsh-fleet-control`
- `dsh-fullwidth`
- `dsh-header-menu`
- `dsh-open-in-smerge`
- `dsh-project-tree`
- `dsh-sidebar-match-bg`
- `dsh-touched-git`
- `dsh-ui-tweaks`
- `dsh-web-hotkeys`
External DSH plugins are declared in `profile/web/package.json` and pinned by `profile/web/pnpm-lock.yaml`. `dsh-ui-translate@0.4.0` is vendored with its MIT license and notices because its upstream Git package cannot build on a clean install; the remaining external plugins are downloaded by pnpm. OpenVSCode extensions are bundled as license-retaining VSIX files and checksum-pinned in `manifests/vscode-extension-artifacts.tsv`, avoiding Open VSX availability during installation. Upstream extension sources and licenses are listed in `THIRD_PARTY_EXTENSIONS.md`; bundled binary provenance is in `THIRD_PARTY_BINARIES.md`.
## Deliberately excluded
The repository never contains:
- DSH credentials, OAuth state, sessions, attachments, or caches;
- Firefox cookies, logins, history, session state, or generated preferences;
- repository-path history from Sublime Merge integration;
- OpenVSCode editor state or downloaded `node_modules`;
- machine-specific PID files, logs, backups, or window geometry.
## Browser limitations
OpenVSCode runs as a web application. Firefox retains hard-reserved shortcuts such as `Ctrl+W`, `Ctrl+T`, and `Ctrl+L`. The included dedicated profile enables web shortcut handling and the Firefox context-menu mouse-up workaround, but Chromium remains more compatible with VS Code Web input handling.