Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
- [インストールパッケージ](#インストールパッケージ)
- [パッケージマネージャー](#パッケージマネージャー)
- [Docker ホスティング](#docker-ホスティング)
- [Kubernetes ホスティング](#kubernetes-ホスティング)
- [Unraid ホスティング](#unraid-ホスティング)
- [TrueNAS ホスティング](#truenas-ホスティング)
- [テストチャンネル](#テストチャンネル)
Expand Down Expand Up @@ -292,6 +293,35 @@ NGINXリバースプロキシを使用してポート6806を隠します。注

</details>

### Kubernetes ホスティング

<details>
<summary>Kubernetes デプロイメント</summary>

[HelmForge SiYuan チャート](https://github.com/helmforgedev/charts/tree/main/charts/siyuan) は HelmForge コミュニティが保守しており、公式の `b3log/siyuan` イメージを使用します。SiYuan 公式のチャートではありません。チャートに関する問題は [HelmForge](https://github.com/helmforgedev/charts/issues) に報告してください。

Helm、kubectl、およびデフォルトの StorageClass で 10Gi の ReadWriteOnce ボリュームを動的に確保できる Kubernetes クラスターを用意して、次を実行します:

```bash
helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install siyuan helmforge/siyuan --namespace siyuan --create-namespace --wait
kubectl -n siyuan get secret siyuan-siyuan-auth -o go-template='{{index .data "access-code" | base64decode}}{{"\n"}}'
kubectl -n siyuan port-forward service/siyuan-siyuan 6806:6806
```

<http://localhost:6806> を開き、生成されたアクセス認証コードを入力します。表示されたコードはパスワードとして保護してください。API トークンとは異なる認証情報です。上記のリソース名は、チャートのデフォルト設定とリリース名 `siyuan` を前提としています。

リモートアクセスには、専用の HTTPS ホスト名と、`/ws` の WebSocket 接続を中継できる Ingress コントローラーを使用し、URL の書き換えは行わないでください。`ingress` を設定し、`networkPolicy.ingressFrom` でコントローラーの名前空間からの通信を許可します。デフォルトのポリシーでは、同じ名前空間からの受信と DNS への送信のみが許可されます。クラウド同期などの外部サービスには、明示的な送信ルールが必要です。TLS、既存の Secret、ストレージの設定は、[チャートガイドと本番環境の設定例](https://helmforge.dev/docs/charts/siyuan)を参照してください。

- **ワークスペースに書き込むインスタンスは 1 つだけ:** レプリカ数を増やしたり、同じワークスペースを別の実行中インスタンスにマウントしたりしないでください。ReadWriteMany ストレージでも同様です。チャートは `Recreate` を使用し、古いインスタンスの停止後に新しいインスタンスを起動するため、アップグレード中はサービスが停止します。
- **永続化:** ワークスペース全体を `/siyuan/workspace` にマウントします。チャートが作成した PVC はアンインストール時にデフォルトで保持されますが、名前空間や PVC を削除するとデータが失われる可能性があります。保持または復元した PVC は `persistence.existingClaim` で再利用します。
- **バックアップとアップグレード:** 書き込みインスタンスを正常に停止してからワークスペース全体をバックアップするか、アプリケーションの整合性を保証するバックアップ手順を使用してください。使用中の SQLite インデックスをコピーするだけでは不十分です。認証用 Secret、暗号鍵、暗号化ノートブックの復旧パスワードを安全に保管し、別の PVC への復元をテストしてください。アップグレード前にバックアップを取得し、ストレージ形式の変更を確認してください。Helm のロールバックではデータの移行は元に戻りません。

Docker ホスティングの制限も適用されます。ブラウザーでのみ利用でき、デスクトップおよびモバイルアプリからの接続、PDF・HTML・Word へのエクスポート、Markdown ファイルのインポートはサポートされません。

</details>

### Unraid ホスティング

<details>
Expand Down
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
- [Installation Package](#installation-package)
- [Package Manager](#package-manager)
- [Docker Hosting](#docker-hosting)
- [Kubernetes Hosting](#kubernetes-hosting)
- [Unraid Hosting](#unraid-hosting)
- [TrueNAS Hosting](#truenas-hosting)
- [Test Channels](#test-channels)
Expand Down Expand Up @@ -298,6 +299,35 @@ Use an NGINX reverse proxy to hide port 6806. Please note:

</details>

### Kubernetes Hosting

<details>
<summary>Kubernetes Deployment</summary>

The [HelmForge SiYuan chart](https://github.com/helmforgedev/charts/tree/main/charts/siyuan) is community-maintained by HelmForge, uses the official `b3log/siyuan` image, and is not an official SiYuan chart. Please report chart issues to [HelmForge](https://github.com/helmforgedev/charts/issues).

Prepare Helm, kubectl, and a Kubernetes cluster with a default StorageClass that can provision a 10Gi ReadWriteOnce volume, then run the following commands:

```bash
helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install siyuan helmforge/siyuan --namespace siyuan --create-namespace --wait
kubectl -n siyuan get secret siyuan-siyuan-auth -o go-template='{{index .data "access-code" | base64decode}}{{"\n"}}'
kubectl -n siyuan port-forward service/siyuan-siyuan 6806:6806
```

Open <http://localhost:6806> and enter the generated access code. Treat the displayed code as a password; it is distinct from the API token. The names above assume the default chart values and release name `siyuan`.

For remote access, use a dedicated HTTPS hostname and an Ingress controller that proxies WebSockets on `/ws`, without URL rewriting. Configure `ingress` and allow the controller's namespace through `networkPolicy.ingressFrom`; the default policy allows same-namespace ingress and DNS egress only. Add explicit egress rules for cloud sync or other external services. See the [chart guide and production example](https://helmforge.dev/docs/charts/siyuan) for TLS, existing Secrets, and storage configuration.

- **One workspace, one writer:** Never scale replicas or mount the same workspace in another running instance, even with ReadWriteMany storage. The chart uses `Recreate`, so upgrades stop the old writer before starting the new one and cause downtime.
- **Persistence:** The complete workspace is mounted at `/siyuan/workspace`. The chart retains its generated PVC on uninstall by default; deleting the namespace or PVC can still destroy data. Reuse a retained or restored claim with `persistence.existingClaim`.
- **Backups and upgrades:** Gracefully stop the writer before backing up the complete workspace, or use an application-consistent backup procedure. A copy of the live SQLite index alone is insufficient. Securely preserve authentication Secrets, encryption keys, and encrypted-notebook recovery passwords, and test restores into a separate PVC. Back up before upgrades and review storage-format changes: Helm rollback does not undo data migrations.

The Docker hosting limitations also apply: browser use only, no desktop or mobile application connections, no PDF/HTML/Word export, and no Markdown file import.

</details>

### Unraid Hosting

<details>
Expand Down
30 changes: 30 additions & 0 deletions README.tr.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
- [Kurulum Paketi](#kurulum-paketi)
- [Paket Yöneticisi](#paket-yöneticisi)
- [Docker Barındırma](#docker-barındırma)
- [Kubernetes Barındırma](#kubernetes-barındırma)
- [Unraid Barındırma](#unraid-barındırma)
- [TrueNAS Barındırma](#truenas-barındırma)
- [Test Kanalları](#test-kanalları)
Expand Down Expand Up @@ -293,6 +294,35 @@ Port 6806’yı gizlemek için NGINX ters proxy (reverse proxy) kullan. Dikkat e

</details>

### Kubernetes Barındırma

<details>
<summary>Kubernetes Dağıtımı</summary>

[HelmForge SiYuan chart'ı](https://github.com/helmforgedev/charts/tree/main/charts/siyuan), HelmForge topluluğu tarafından sürdürülür ve resmi `b3log/siyuan` imajını kullanır; resmi bir SiYuan chart'ı değildir. Chart ile ilgili sorunları lütfen [HelmForge'a](https://github.com/helmforgedev/charts/issues) bildir.

Helm, kubectl ve varsayılan StorageClass aracılığıyla 10Gi ReadWriteOnce birimi oluşturabilen bir Kubernetes kümesi hazır olduğunda şu komutları çalıştır:

```bash
helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install siyuan helmforge/siyuan --namespace siyuan --create-namespace --wait
kubectl -n siyuan get secret siyuan-siyuan-auth -o go-template='{{index .data "access-code" | base64decode}}{{"\n"}}'
kubectl -n siyuan port-forward service/siyuan-siyuan 6806:6806
```

<http://localhost:6806> adresini aç ve oluşturulan erişim kodunu gir. Ekranda gösterilen kodu parola gibi koru; bu kod API token'ından farklıdır. Yukarıdaki kaynak adları, varsayılan chart ayarlarını ve `siyuan` sürüm adını temel alır.

Uzaktan erişim için özel bir HTTPS alan adı ve `/ws` yolundaki WebSocket bağlantılarını iletebilen bir Ingress denetleyicisi kullan; URL yeniden yazımı yapma. `ingress` ayarlarını yapılandır ve `networkPolicy.ingressFrom` üzerinden denetleyicinin ad alanından gelen trafiğe izin ver. Varsayılan politika yalnızca aynı ad alanından gelen trafiğe ve DNS çıkışına izin verir. Bulut eşitleme gibi harici hizmetler için açık çıkış kuralları ekle. TLS, mevcut Secret kaynakları ve depolama ayarları için [chart kılavuzuna ve üretim örneğine](https://helmforge.dev/docs/charts/siyuan) bak.

- **Her çalışma alanına yalnızca bir uygulama örneği yazmalı:** Kopya sayısını artırma veya aynı çalışma alanını çalışan başka bir örneğe bağlama; ReadWriteMany depolama da bunu güvenli hâle getirmez. Chart, `Recreate` stratejisiyle yeni örneği başlatmadan önce eskisini durdurur; bu nedenle yükseltmeler sırasında hizmet kesintisi olur.
- **Kalıcı depolama:** Çalışma alanının tamamı `/siyuan/workspace` konumuna bağlanır. Chart kaldırıldığında oluşturduğu PVC varsayılan olarak korunur; ancak ad alanının veya PVC'nin silinmesi veri kaybına yol açabilir. Korunan veya geri yüklenen bir PVC'yi `persistence.existingClaim` ile yeniden kullan.
- **Yedekleme ve yükseltmeler:** Çalışma alanının tamamını yedeklemeden önce yazan örneği düzgün şekilde durdur veya uygulama tutarlılığını sağlayan bir yedekleme yöntemi kullan. Kullanımdaki SQLite indeksini tek başına kopyalamak yeterli değildir. Kimlik doğrulama Secret kaynaklarını, şifreleme anahtarlarını ve şifreli not defteri kurtarma parolalarını güvenle sakla; ayrı bir PVC'ye geri yüklemeyi test et. Yükseltmeden önce yedek al ve depolama biçimi değişikliklerini incele: Helm geri alma işlemi veri geçişlerini geri döndürmez.

Docker barındırma kısıtlamaları burada da geçerlidir: yalnızca tarayıcıdan kullanım desteklenir; masaüstü ve mobil uygulama bağlantıları, PDF/HTML/Word dışa aktarma ve Markdown dosyası içe aktarma desteklenmez.

</details>

### Unraid Barındırma

<details>
Expand Down
30 changes: 30 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
- [安装包](#安装包)
- [包管理器](#包管理器)
- [Docker 部署](#docker-部署)
- [Kubernetes 部署](#kubernetes-部署)
- [Unraid 部署](#unraid-部署)
- [TrueNAS 部署](#truenas-部署)
- [宝塔面板部署](#宝塔面板部署)
Expand Down Expand Up @@ -296,6 +297,35 @@ chown -R 1001:1002 /siyuan/workspace

</details>

### Kubernetes 部署

<details>
<summary>Kubernetes 部署文档</summary>

[HelmForge 思源 Chart](https://github.com/helmforgedev/charts/tree/main/charts/siyuan) 由 HelmForge 社区维护,使用官方 `b3log/siyuan` 镜像,并非思源官方 Chart。Chart 相关问题请反馈至 [HelmForge](https://github.com/helmforgedev/charts/issues)。

准备好 Helm、kubectl,以及默认 StorageClass 能够动态创建 10Gi ReadWriteOnce 存储卷的 Kubernetes 集群后,执行以下命令:

```bash
helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install siyuan helmforge/siyuan --namespace siyuan --create-namespace --wait
kubectl -n siyuan get secret siyuan-siyuan-auth -o go-template='{{index .data "access-code" | base64decode}}{{"\n"}}'
kubectl -n siyuan port-forward service/siyuan-siyuan 6806:6806
```

打开 <http://localhost:6806>,输入生成的访问授权码。请像密码一样妥善保管该授权码;它与 API Token 不同。以上资源名称以 Chart 默认配置和 Helm 实例名称 `siyuan` 为前提。

远程访问时,请使用独立的 HTTPS 域名,以及支持代理 `/ws` WebSocket 连接的 Ingress 控制器,不要进行 URL 重写。配置 `ingress`,并通过 `networkPolicy.ingressFrom` 允许控制器所在命名空间的流量;默认策略仅允许同命名空间的入站流量和 DNS 出站流量。云端同步等外部服务需要显式配置出站规则。TLS、现有 Secret 和存储配置请参阅 [Chart 指南及生产环境示例](https://helmforge.dev/docs/charts/siyuan)。

- **一个工作区只能有一个写入实例:** 不要增加副本数,也不要将同一工作区挂载到另一个运行中的实例,即使使用 ReadWriteMany 存储也不例外。Chart 使用 `Recreate` 策略,升级时会先停止旧实例,再启动新实例,因此会有服务中断。
- **持久化:** 完整工作区挂载在 `/siyuan/workspace`。默认情况下,卸载 Chart 会保留其创建的 PVC,但删除命名空间或 PVC 仍可能导致数据丢失。通过 `persistence.existingClaim` 复用保留或恢复后的存储卷声明。
- **备份与升级:** 备份完整工作区前,请正常停止写入实例,或使用能够保证应用一致性的备份流程。仅复制运行中的 SQLite 索引文件无法保证备份完整且一致。请妥善保管保存访问授权码的 Secret、加密密钥和加密笔记本恢复密码,并在独立 PVC 上测试恢复。升级前先备份,并确认新版本是否涉及存储格式变更:Helm 回滚不会撤销数据迁移。

Docker 部署的限制同样适用:仅支持浏览器访问,不支持桌面端和移动端应用连接,不支持导出 PDF、HTML 和 Word 格式,也不支持导入 Markdown 文件。

</details>

### Unraid 部署

<details>
Expand Down