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
Copy file name to clipboardExpand all lines: README.md
+24-8Lines changed: 24 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,6 +110,8 @@ services:
110
110
- ANTHROPIC_API_KEY=your-key-here
111
111
```
112
112
113
+
In that example, `/home/opencode` is the fixed path **inside** the container. On the host, `./data/opencode` and `./local-cache/opencode` are just example bind-mount paths relative to the folder containing your `docker-compose.yaml`. You can replace them with any host paths you want.
114
+
113
115
**Step 3.** Start it.
114
116
115
117
```bash
@@ -120,6 +122,8 @@ Open http://localhost:4096. You're in.
120
122
121
123
> The shipped `docker-compose.yaml` uses `${ANTHROPIC_API_KEY}` syntax which reads from your shell environment or a `.env` file. Copy `.env.example` to `.env` and fill in your API key.
122
124
125
+
> `./data/opencode` is only an example host path. If your compose file lives at `/opt/holycode`, that same bind mount becomes `/opt/holycode/data/opencode` on the host.
126
+
123
127
> Keep `./local-cache/opencode` on local disk. If this project folder lives on NAS/CIFS/SMB storage, change that cache mount to an absolute local host path instead.
124
128
125
129
<p align="right">
@@ -263,10 +267,14 @@ services:
263
267
- "4096:4096" # OpenCode web UI
264
268
265
269
volumes:
266
-
# --- Persistent state (all OpenCode data under home dir) ---
267
-
- ./data/opencode:/home/opencode # Config, sessions, plugins, all XDG paths
270
+
# --- Main HolyCode data ---
271
+
# Pick any host path you want here. This path maps to /home/opencode in the container.
272
+
# It can live on local disk or network storage.
273
+
- ./data/opencode:/home/opencode
268
274
269
-
# --- Cache path (keep this on local disk; if this folder lives on NAS/CIFS, replace with an absolute local path) ---
275
+
# --- Cache path ---
276
+
# Keep this one on LOCAL disk for plugin/cache reliability.
277
+
# If your main data path lives on NAS/CIFS/SMB, make this a separate local path.
# --- oh-my-openagent (multi-agent orchestration for OpenCode) ---
321
-
# Installs automatically on first boot when enabled
329
+
# Enables the plugin through OpenCode config on container start
322
330
# Toggle on/off with docker compose down && up -d
323
331
# - ENABLE_OH_MY_OPENAGENT=true
324
332
```
@@ -362,6 +370,10 @@ services:
362
370
363
371
> Plugin toggles (`ENABLE_CLAUDE_AUTH`, `ENABLE_OH_MY_OPENAGENT`) take effect on container restart. Set the env var and run `docker compose down && up -d`.
364
372
373
+
> `ENABLE_OH_MY_OPENAGENT=true` enables the plugin through the main OpenCode config at `/home/opencode/.config/opencode/opencode.json`. On the host, that file appears under whatever host path you bind to `/home/opencode`.
374
+
375
+
> This toggle should not be read as “HolyCode will always auto-create a separate plugin-specific config file on the host.” The guaranteed file to check first is `opencode.json` in the OpenCode config directory.
376
+
365
377
> `GIT_USER_NAME` and `GIT_USER_EMAIL` are only applied on first boot. To re-apply, delete the sentinel file and restart: `docker exec holycode rm /home/opencode/.config/opencode/.holycode-bootstrapped` then `docker compose restart`.
Most OpenCode state lives in `./data/opencode`. Plugin cache is mounted separately at `./local-cache/opencode` by default so you can keep that path on local disk.
571
+
Most OpenCode state lives under `/home/opencode` inside the container. On the host, that data appears wherever you bind-mount `/home/opencode`. In the default examples below, the host path is `./data/opencode`, but you can replace it with any path you want.
572
+
573
+
Plugin cache is mounted separately at `./local-cache/opencode` by default so you can keep that cache path on local disk even if your main data path is somewhere else.
\* These `./data/opencode/...` paths are example host paths from the sample compose file. If you bind `/home/opencode` to a different host path, the same subdirectories will appear there instead.
583
+
568
584
Rebuild the container anytime. Run `docker compose pull && docker compose up -d` and your sessions, settings, and configs come back automatically.
569
585
570
586
**SQLite WAL note.** The sessions database uses Write-Ahead Logging. Don't copy the `.db` file while the container is running. Stop the container first if you need to back up or migrate the database file.
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,15 @@ All notable changes to HolyCode will be documented in this file.
4
4
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
6
6
7
-
## [1.0.1] - 03/31/2026
7
+
## [1.0.2] - 04/03/2026
8
+
9
+
### Changed
10
+
11
+
- Clarify that `/home/opencode` is the fixed container path while the host data path depends on the bind mount the user chooses
12
+
- Clarify that main data can live on remote storage while the cache path should remain local
13
+
- Clarify that `ENABLE_OH_MY_OPENAGENT=true` enables the plugin through `opencode.json` without promising a separate plugin-specific config file on the host
0 commit comments