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
@@ -119,6 +120,8 @@ Open http://localhost:4096. You're in.
119
120
120
121
> 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.
121
122
123
+
> 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.
All OpenCode state lives in a single bind mount at `./data/opencode`. The container is stateless. The bind mount holds everything that matters.
559
+
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.
Rebuild the container anytime. Run `docker compose pull && docker compose up -d` and your sessions, settings, and configs come back automatically.
562
569
563
570
**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.
564
571
572
+
**Network storage note.** If `./data/opencode` is on a CIFS/SMB network mount (NAS, Synology, TrueNAS), you need two mount options:
573
+
- `nobrl`— SQLite WAL mode requires this (byte-range locking workaround)
574
+
- `mfsymlinks`— plugin installation requires this (symlink support for node_modules)
575
+
576
+
Keep `./local-cache/opencode` on local disk. If your whole HolyCode folder lives on network storage, change that cache mount to an absolute local host path such as `/var/lib/holycode-cache/opencode:/home/opencode/.cache/opencode`.
577
+
578
+
See the Troubleshooting section below.
579
+
565
580
<p align="right">
566
581
<a href="#top">back to top</a>
567
582
</p>
@@ -703,6 +718,42 @@ security_opt:
703
718
704
719
</details>
705
720
721
+
<details>
722
+
<summary><strong>SQLite WAL or plugins fail on CIFS/SMB network mounts (NAS)</strong></summary>
723
+
724
+
If your `./data/opencode` directory lives on a CIFS/SMB network share (e.g. NAS, Synology, TrueNAS), OpenCode may fail with:
725
+
726
+
```
727
+
Failed to run the query 'PRAGMA journal_mode = WAL'
728
+
```
729
+
730
+
OpenCode uses SQLite with Write-Ahead Logging (WAL) for its sessions database. WAL requires byte-range locking, which CIFS/SMB doesn't support by default.
731
+
732
+
HolyCode detects this at startup and prints a warning with the fix instructions.
733
+
734
+
**Fix:** Add `nobrl,mfsymlinks` to your CIFS mount options in `/etc/fstab`:
Restart HolyCode: `docker compose up -d --force-recreate`
752
+
753
+
If you are using the default HolyCode Compose files, the cache mount is `./local-cache/opencode:/home/opencode/.cache/opencode`. Keep that path on local disk. If your entire HolyCode folder lives on network storage, replace it with an absolute local host path.
Den Container jederzeit neu erstellen. `docker compose pull && docker compose up -d` ausführen und Sitzungen, Einstellungen und Konfigurationen kommen automatisch zurück.
557
565
558
566
**SQLite WAL-Hinweis.** Die Sitzungsdatenbank verwendet Write-Ahead Logging. Die `.db`-Datei nicht kopieren, während der Container läuft. Den Container zuerst stoppen, wenn die Datenbankdatei gesichert oder migriert werden muss.
559
567
568
+
**Netzwerkspeicher-Hinweis.** Wenn sich `./data/opencode` auf einem CIFS/SMB-Netzwerk-Mount (NAS, Synology, TrueNAS) befindet, kann der SQLite WAL-Modus fehlschlagen, da SMB standardmäßig kein Byte-Range-Locking unterstützt. HolyCode erkennt dies beim Start und gibt eine Warnung mit dem Fix aus. Siehe den Abschnitt Fehlerbehebung unten.
569
+
560
570
<palign="right">
561
571
<ahref="#top">nach oben</a>
562
572
</p>
@@ -698,6 +708,40 @@ security_opt:
698
708
699
709
</details>
700
710
711
+
<details>
712
+
<summary><strong>SQLite WAL schlägt auf CIFS/SMB-Netzwerk-Mounts fehl (NAS)</strong></summary>
713
+
714
+
Wenn sich das Verzeichnis `./data/opencode` auf einer CIFS/SMB-Netzwerkfreigabe befindet, schlägt OpenCode
715
+
möglicherweise mit folgendem Fehler fehl:
716
+
717
+
```
718
+
Failed to run the query 'PRAGMA journal_mode = WAL'
719
+
```
720
+
721
+
OpenCode verwendet SQLite mit Write-Ahead Logging (WAL) für die Sitzungsdatenbank.
722
+
WAL erfordert Byte-Range-Locking, das CIFS/SMB standardmäßig nicht unterstützt. HolyCode erkennt dies beim Start.
723
+
724
+
**Fix:** Fügen Sie `nobrl,mfsymlinks` zu den CIFS-Mount-Optionen in `/etc/fstab` hinzu:
|`./local-cache/opencode`|`/home/opencode/.cache/opencode`| node_modules de plugins, dependencias instaladas automáticamente |
555
563
556
564
Reconstruye el contenedor cuando quieras. Ejecuta `docker compose pull && docker compose up -d` y tus sesiones, ajustes y configuraciones vuelven automáticamente.
557
565
558
566
**Nota sobre SQLite WAL.** La base de datos de sesiones usa Write-Ahead Logging. No copies el archivo `.db` mientras el contenedor esté en ejecución. Detén el contenedor primero si necesitas hacer copia de seguridad o migrar el archivo de base de datos.
559
567
568
+
**Nota sobre almacenamiento en red.** Si `./data/opencode` está en un montaje de red CIFS/SMB (NAS, Synology, TrueNAS), el modo WAL de SQLite puede fallar porque SMB no soporta bloqueo de rango de bytes por defecto. HolyCode detecta esto al inicio y muestra una advertencia con la solución. Consulta la sección de Solución de problemas a continuación.
569
+
560
570
<palign="right">
561
571
<ahref="#top">volver arriba</a>
562
572
</p>
@@ -698,6 +708,40 @@ security_opt:
698
708
699
709
</details>
700
710
711
+
<details>
712
+
<summary><strong>El modo WAL de SQLite falla en montajes de red CIFS/SMB (NAS)</strong></summary>
713
+
714
+
Si tu directorio `./data/opencode` está en un recurso compartido de red CIFS/SMB (p. ej. NAS, Synology, TrueNAS), OpenCode puede fallar con:
715
+
716
+
```
717
+
Failed to run the query 'PRAGMA journal_mode = WAL'
718
+
```
719
+
720
+
OpenCode usa SQLite con Write-Ahead Logging (WAL) para su base de datos de sesiones. WAL requiere bloqueo de rango de bytes, lo cual CIFS/SMB no soporta por defecto.
721
+
722
+
HolyCode detecta esto al inicio y muestra una advertencia con las instrucciones de solución.
723
+
724
+
**Solución:** Añade `nobrl,mfsymlinks` a las opciones de montaje CIFS en `/etc/fstab`:
0 commit comments