You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -25,9 +29,9 @@ English | [简体中文](README.zh-CN.md)
25
29
26
30
<br>
27
31
28
-
ChatCrystal collects conversations from AI coding tools, distills them into structured notes with LLMs, and builds a local searchable knowledge base from your real problem-solving history.
32
+
ChatCrystal is a local-first AI PKM app for developers who solve real problems with Claude Code, Cursor, Codex CLI, Trae, and GitHub Copilot.
29
33
30
-
Supported sources: Claude Code, Cursor, Codex CLI, Trae, and GitHub Copilot.
34
+
It turns scattered AI coding conversations into structured notes, semantic search, a tag knowledge graph, Markdown exports, and MCP memory your agents can reuse. If this fits your workflow, a star helps more builders find a private, local-first way to keep their AI work memory.
31
35
32
36
## Quick Start
33
37
@@ -47,51 +51,7 @@ Then open http://localhost:3721 in your browser.
47
51
48
52
### Docker Cloud
49
53
50
-
The default Compose deployment runs only the ChatCrystal service. It stores data in the `chatcrystal-data` volume mounted at `/data` inside the container.
The default `docker-compose.yml` pulls `ghcr.io/zengliangyi/chatcrystal:latest` from GitHub Container Registry. Set `CHATCRYSTAL_IMAGE_TAG` to pin a published version. To build from source instead, run `docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build`.
59
-
60
-
To update an existing Docker deployment, run `docker compose pull && docker compose up -d`. Maintainers only: after the first GHCR publish, make the `ghcr.io/zengliangyi/chatcrystal` package public in GitHub Packages; the release workflow verifies anonymous pull access before passing.
61
-
62
-
Compose binds ChatCrystal to `0.0.0.0:3721` by default so other devices can reach the cloud core through the host IP. Set `CHATCRYSTAL_HOST_PORT` to change the host port, or set `BIND_ADDRESS=127.0.0.1` when a local-only reverse proxy fronts it. For public cloud access, an HTTPS reverse proxy is recommended for safer token transport.
63
-
64
-
On Windows Docker Desktop, a published port may still need extra host networking configuration before it is reachable through the host LAN IP. For cloud-mode testing, verify `http://<host-ip>:<host-port>/api/health` from the client device first; if it cannot connect, configure Windows port forwarding/firewall rules or deploy the cloud core on a real remote host.
65
-
66
-
On first start without `CHATCRYSTAL_API_TOKEN`, open the Web UI and enter the setup code printed in container logs or stored at `/data/setup-code`, then choose one shared API token for your devices.
67
-
68
-
To rotate or reset the Docker cloud token:
69
-
70
-
```bash
71
-
# If you still know the current token, rotate it online.
If your deployment sets `CHATCRYSTAL_API_TOKEN`, that environment variable is the active token source. Change it in your `.env` or Compose environment and recreate the container with `docker compose up -d --force-recreate`.
82
-
83
-
To use an existing Ollama or external API, configure provider URLs in the Web UI or environment. In Docker, `localhost` means inside the container; use `CHATCRYSTAL_DOCKER_LLM_BASE_URL` and `CHATCRYSTAL_DOCKER_EMBEDDING_BASE_URL` for Compose-time provider URL overrides. Docker Desktop can reach host Ollama at `http://host.docker.internal:11434`, or you can use a remote HTTPS/OpenAI-compatible API.
84
-
85
-
### Import from a Device into the Cloud Instance
86
-
87
-
Install or run the CLI on the device that has Claude Code, Cursor, Codex CLI, Trae, or GitHub Copilot history:
The CLI scans local histories, parses them locally, and uploads normalized conversations to the cloud. The cloud never scans your local filesystem. Imported conversations are not summarized automatically; use the Web UI or `crystal summarize --all` when you are ready. HTTPS is recommended for cloud access, but HTTP works when that is the deployment you choose.
54
+
Prefer self-hosting ChatCrystal for multiple devices? See [Docker Cloud Deployment](#docker-cloud-deployment) after the product overview.
95
55
96
56
## What It Does
97
57
@@ -174,8 +134,57 @@ Development server ports:
174
134
175
135
See [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for architecture, testing, build, and release details.
176
136
177
-
## Wechat
178
-
Wechat: Yizel1
137
+
## Docker Cloud Deployment
138
+
139
+
The default Compose deployment runs only the ChatCrystal service. It stores data in the `chatcrystal-data` volume mounted at `/data` inside the container.
The default `docker-compose.yml` pulls `ghcr.io/zengliangyi/chatcrystal:latest` from GitHub Container Registry. Set `CHATCRYSTAL_IMAGE_TAG` to pin a published version. To build from source instead, run `docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build`.
148
+
149
+
To update an existing Docker deployment, run `docker compose pull && docker compose up -d`. Maintainers only: after the first GHCR publish, make the `ghcr.io/zengliangyi/chatcrystal` package public in GitHub Packages; the release workflow verifies anonymous pull access before passing.
150
+
151
+
Compose binds ChatCrystal to `0.0.0.0:3721` by default so other devices can reach the cloud core through the host IP. Set `CHATCRYSTAL_HOST_PORT` to change the host port, or set `BIND_ADDRESS=127.0.0.1` when a local-only reverse proxy fronts it. For public cloud access, an HTTPS reverse proxy is recommended for safer token transport.
152
+
153
+
On Windows Docker Desktop, a published port may still need extra host networking configuration before it is reachable through the host LAN IP. For cloud-mode testing, verify `http://<host-ip>:<host-port>/api/health` from the client device first; if it cannot connect, configure Windows port forwarding/firewall rules or deploy the cloud core on a real remote host.
154
+
155
+
On first start without `CHATCRYSTAL_API_TOKEN`, open the Web UI and enter the setup code printed in container logs or stored at `/data/setup-code`, then choose one shared API token for your devices.
156
+
157
+
To rotate or reset the Docker cloud token:
158
+
159
+
```bash
160
+
# If you still know the current token, rotate it online.
If your deployment sets `CHATCRYSTAL_API_TOKEN`, that environment variable is the active token source. Change it in your `.env` or Compose environment and recreate the container with `docker compose up -d --force-recreate`.
171
+
172
+
To use an existing Ollama or external API, configure provider URLs in the Web UI or environment. In Docker, `localhost` means inside the container; use `CHATCRYSTAL_DOCKER_LLM_BASE_URL` and `CHATCRYSTAL_DOCKER_EMBEDDING_BASE_URL` for Compose-time provider URL overrides. Docker Desktop can reach host Ollama at `http://host.docker.internal:11434`, or you can use a remote HTTPS/OpenAI-compatible API.
173
+
174
+
### Import from a Device into the Cloud Instance
175
+
176
+
Install or run the CLI on the device that has Claude Code, Cursor, Codex CLI, Trae, or GitHub Copilot history:
The CLI scans local histories, parses them locally, and uploads normalized conversations to the cloud. The cloud never scans your local filesystem. Imported conversations are not summarized automatically; use the Web UI or `crystal summarize --all` when you are ready. HTTPS is recommended for cloud access, but HTTP works when that is the deployment you choose.
184
+
185
+
## Contact Us
186
+
187
+
<imgsrc="docs/wechat.png"alt="WeChat QR code"width="220" />
在 Windows Docker Desktop 上,published port 可能仍需要额外宿主机网络配置,才能通过宿主机局域网 IP 访问。云端模式测试时,请先在客户端设备上验证 `http://<host-ip>:<host-port>/api/health` 是否能连通;如果不能连通,需要配置 Windows 端口转发/防火墙规则,或把云端核心部署到真正的远程主机。
65
-
66
-
首次启动且没有设置 `CHATCRYSTAL_API_TOKEN` 时,打开 Web UI,输入容器日志或 `/data/setup-code` 中的 setup code,然后设置一个供所有设备共享的 API token。
在 Windows Docker Desktop 上,published port 可能仍需要额外宿主机网络配置,才能通过宿主机局域网 IP 访问。云端模式测试时,请先在客户端设备上验证 `http://<host-ip>:<host-port>/api/health` 是否能连通;如果不能连通,需要配置 Windows 端口转发/防火墙规则,或把云端核心部署到真正的远程主机。
154
+
155
+
首次启动且没有设置 `CHATCRYSTAL_API_TOKEN` 时,打开 Web UI,输入容器日志或 `/data/setup-code` 中的 setup code,然后设置一个供所有设备共享的 API token。
0 commit comments