a3acdbe70b
Sweep brand mentions of `DeepSeek TUI` / `deepseek-tui` / bare `deepseek` (the dispatcher binary) across all user-facing docs to the new `codewhale` brand. The DeepSeek **provider** integration is left untouched throughout: env vars (`DEEPSEEK_*`), model IDs (`deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-chat`, `deepseek-reasoner`), the `api.deepseek.com` host, the `~/.deepseek/` config dir, and the `--provider deepseek` argument value all keep the legacy spelling. Anti-scope items deliberately left as the legacy `deepseek-tui`: - Homebrew tap and formula (`Hmbown/homebrew-deepseek-tui`, `brew install deepseek-tui`, `scoop install deepseek-tui`). The tap rename ships separately. - Docker image (`ghcr.io/hmbown/deepseek-tui`). Image-tag rename ships separately. - CNB mirror namespace (`cnb.cool/deepseek-tui.com/DeepSeek-TUI`). Third-party hosted path. - Security contact email (`security@deepseek-tui.com`). - GitHub repo URL (`Hmbown/DeepSeek-TUI`). New artifact: - `docs/REBRAND.md` documents what changed, what didn't, the deprecation window, and migration commands for npm / Cargo / Homebrew / manual installs. CHANGELOG entries: - Root `CHANGELOG.md` and `crates/tui/CHANGELOG.md` both gain a new `[Unreleased]` section describing the rename and the one- release deprecation window. Historical entries are untouched. Issue templates: - `.github/ISSUE_TEMPLATE/bug_report.md` and `feature_request.md` refer to "codewhale" / `codewhale --version` instead of the old brand name in their environment fields. The rebrand sweep was driven by a perl script with bulk patterns (`deepseek-tui` -> `codewhale-tui`, `DeepSeek TUI` -> `codewhale`, bare `deepseek` -> `codewhale` with provider/model/host/env-var/ config-path negative lookbehind/lookahead) followed by targeted reverts for the anti-scope items above. Output was visually reviewed file-by-file before committing. Verified: - `cargo check --workspace --all-targets --locked` — pass. - `cargo test --workspace --all-features --locked` — pass (no test source touched here; suite stayed green to confirm no doc-from-string assertions broke). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
134 lines
3.9 KiB
Markdown
134 lines
3.9 KiB
Markdown
# Docker
|
|
|
|
DeepSeek-TUI publishes a multi-arch Linux image to GitHub Container Registry
|
|
for each release.
|
|
|
|
```bash
|
|
docker pull ghcr.io/hmbown/deepseek-tui:latest
|
|
```
|
|
|
|
## Quick start
|
|
|
|
Run the published image with a Docker-managed data volume:
|
|
|
|
```bash
|
|
docker volume create codewhale-tui-home
|
|
|
|
docker run --rm -it \
|
|
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
|
|
-v codewhale-tui-home:/home/deepseek/.deepseek \
|
|
-v "$PWD:/workspace" \
|
|
-w /workspace \
|
|
ghcr.io/hmbown/deepseek-tui:latest
|
|
```
|
|
|
|
Use a pinned release tag for reproducible installs:
|
|
|
|
```bash
|
|
docker run --rm -it \
|
|
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
|
|
-v codewhale-tui-home:/home/deepseek/.deepseek \
|
|
-v "$PWD:/workspace" \
|
|
-w /workspace \
|
|
ghcr.io/hmbown/deepseek-tui:vX.Y.Z
|
|
```
|
|
|
|
Replace `vX.Y.Z` with a tag from
|
|
[GitHub Releases](https://github.com/Hmbown/DeepSeek-TUI/releases).
|
|
|
|
## Local build
|
|
|
|
Build the image locally from a checkout:
|
|
|
|
```bash
|
|
docker build -t codewhale-tui .
|
|
```
|
|
|
|
Then run it with the same Docker-managed data volume:
|
|
|
|
```bash
|
|
docker run --rm -it \
|
|
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
|
|
-v codewhale-tui-home:/home/deepseek/.deepseek \
|
|
-v "$PWD:/workspace" \
|
|
-w /workspace \
|
|
codewhale-tui
|
|
```
|
|
|
|
Docker Hub publishing is not configured; GHCR is the supported prebuilt image
|
|
registry.
|
|
|
|
## Environment variables
|
|
|
|
| Variable | Required | Description |
|
|
|-----------------------|----------|--------------------------------------------------|
|
|
| `DEEPSEEK_API_KEY` | yes | DeepSeek API key |
|
|
| `DEEPSEEK_BASE_URL` | no | Custom API base URL (e.g. `https://api.deepseek.com`) |
|
|
| `DEEPSEEK_NO_COLOR` | no | Set to `1` to disable terminal colour output |
|
|
|
|
## Volumes
|
|
|
|
Mount `/home/deepseek/.deepseek` to persist sessions, config, skills, memory,
|
|
and the offline queue across container restarts. A Docker-managed named volume
|
|
is the safest default because Docker creates it with ownership the container can
|
|
write:
|
|
|
|
```bash
|
|
-v codewhale-tui-home:/home/deepseek/.deepseek
|
|
```
|
|
|
|
Without this mount the container starts fresh each time.
|
|
|
|
If you bind-mount an existing host directory instead, the image runs as the
|
|
non-root `codewhale` user with UID/GID `1000:1000`. The mounted directory must be
|
|
writable by that user, or startup can fail while creating runtime directories
|
|
under `.deepseek/tasks`. On Linux hosts, either use the named volume above or
|
|
prepare the bind mount explicitly:
|
|
|
|
```bash
|
|
mkdir -p ~/.deepseek
|
|
sudo chown -R 1000:1000 ~/.deepseek
|
|
|
|
docker run --rm -it \
|
|
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
|
|
-v ~/.deepseek:/home/deepseek/.deepseek \
|
|
ghcr.io/hmbown/deepseek-tui:latest
|
|
```
|
|
|
|
That `chown` changes ownership of the host `~/.deepseek` directory. Skip it if
|
|
you do not want the container UID to own your local config, and use a named
|
|
volume instead.
|
|
|
|
## Non-interactive / pipeline usage
|
|
|
|
When stdin is not a TTY, `codewhale` drops to the dispatcher's one-shot mode
|
|
(`codewhale -c "…"`). Pipe a prompt on stdin:
|
|
|
|
```bash
|
|
echo "Explain the Cargo.toml in structured English." | \
|
|
docker run --rm -i -e DEEPSEEK_API_KEY ghcr.io/hmbown/deepseek-tui:latest
|
|
```
|
|
|
|
## Building locally
|
|
|
|
```bash
|
|
# Single platform (your host architecture)
|
|
docker build -t codewhale-tui .
|
|
|
|
# Multi-platform (requires a builder with emulation)
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm64 -t codewhale-tui .
|
|
```
|
|
|
|
## Devcontainer
|
|
|
|
The repository includes a [`.devcontainer/devcontainer.json`](../.devcontainer/devcontainer.json)
|
|
configuration for VS Code / GitHub Codespaces. It pre-installs the Rust toolchain,
|
|
rust-analyzer, and the `codewhale` binary. Open the repo in a devcontainer to get a
|
|
ready-to-use development environment.
|
|
|
|
## Release status
|
|
|
|
Docker image publishing is part of the release gate. The image is published to
|
|
GHCR for `linux/amd64` and `linux/arm64` with semver tags plus `latest`.
|