セルフホスト型サービス
documenso/documenso avatar
documenso/documenso

Documensoを読む:セルフホスト可能な文書署名基盤の構成

オープンソースの DocuSign の代替手段。

スター 15,033フォーク 3,213TypeScriptAGPL-3.0

ひと目でわかる

これは何?
Documensoは、DocuSignの代替を目指すTypeScript製のオープンソース文書署名ツールです。セルフホスト、PDF処理、ローカル開発、貢献モデル、AGPL-3.0の条件をREADMEから確認します。
誰に向いている?
Documensoは、署名処理のコードを読める状態に置き、自分の環境で運用したい組織に向きます。READMEはNode.js 22以上、Postgres、Dockerを使う開発手順、公式コンテナ、PDF署名や支払いを含む構成を示していますが、法的な署名要件、運用時の可用性、秘密情報の管理、各地域の規制適合を保証していません。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に TypeScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

信頼をセルフホストとコード閲覧で組み立てる

Documensoは、自身をオープンソースのDocuSign代替品と説明しています。READMEは、デジタル署名を速く簡単にしたいという需要を認めながら、署名のたびに署名ツールの提供者が新しい当事者として加わる点を問題設定にしています。Documensoが示す答えは、利用者が自分でセルフホストし、内部の動きをレビューできるようにすることです。目指すのは、文書署名を支えるオープンな信頼基盤です。この説明はプロジェクトの姿勢を示すもので、署名の法的効力や組織のコンプライアンスを自動的に満たすという意味ではありません。誰が署名者を招待し、いつ文書を固定し、どの監査証跡を残し、署名後のPDFをどこへ保管するかは利用者側の設計です。セルフホストの自由度を採用理由にする場合も、管理者権限、バックアップ、メール配送、外部公開の範囲を先に定義する必要があります。

PDF署名を支えるTypeScriptスタック

READMEが挙げる技術スタックは、アプリケーションの画面から文書処理、請求、テストまでを横断しています。言語はTypeScriptで、React Router v7をフレームワーク、Honoをサーバー、PrismaをORMとして使います。UIにはTailwind CSS、shadcn/ui、Radix UI、メールにはreact-email、国際化にはLingui、APIにはtRPCが置かれています。PDF署名に@libpdf/core、閲覧にpdf.js、操作に@cantoo/pdf-lib、支払いにStripe、整形とLintにBiome、E2EテストにPlaywrightを使う構成です。これらはREADMEに記載された採用技術であり、各機能の法的要件やセキュリティ評価の結果ではありません。PDFの表示と署名の処理を分けているため、ブラウザ側の見え方、サーバー側の生成、保存したファイルの完全性を別々に検証する必要があります。決済やメールを外部サービスへつなぐ場合は、環境変数、Webhook、失敗時の再送、個人情報の保存期間も個別に決めるべきです。

ローカル開発クイックスタートの前提

開発者向けのREADMEは、Node.js v22以上、Postgres SQLデータベース、任意のDockerを要件として挙げています。Dockerとdocker-composeがあることを前提に、リポジトリをフォークしてクローンし、.env.exampleを.envへコピーします。その後npm run dxでPostgresデータベースとInbucketメールサーバーをコンテナ起動し、npm run devで開発サーバーを動かします。短縮形としてnpm run dも案内されています。アプリの入口はlocalhost:3000、受信メール画面はlocalhost:9000、データベース接続ポートは54320、S3ストレージのダッシュボードはlocalhost:9001です。これは開発用の構成であり、公開運用の推奨設定ではありません。メールをローカルのInbucketへ流す設計は、開発中に招待や署名通知を確認しやすくしますが、本物の送信サービスの遅延や認証を再現するとは限りません。設定を変えるときは、利用サービス、ポート、データ保存先、初期化の順を記録し、開発データを本番の資格情報と混ぜないことが大切です。

セルフホストの配布経路

Documensoは公式DockerイメージをDockerHubとGitHub Container Registryで公開しています。READMEにはDocker、Docker Compose、Railway、Kubernetes、手動デプロイへの導線があり、Railway、Render、Koyeb、Elestioのワンクリック展開も候補として示されています。ただし、各サービスの詳細な要件や運用設定はリンク先のセルフホスティング文書に委ねられています。GitpodのワークスペースとVS Code DevContainerも案内され、開発環境を作る選択肢は広い構成です。運用で重視すべきなのは、アプリ本体を起動できるかだけではありません。Postgresのバックアップと復元、署名済みファイルの保存、メールの配送、暗号鍵やセッションの管理、外部からのアクセス制御をまとめて確認します。READMEにあるワンクリックという表現は導入の入口を示すだけで、組織のネットワークや監査要件を満たす構成を自動生成するわけではありません。まず隔離した環境で署名からダウンロードまでを通し、データがどこに残るかを確認してから公開範囲を決めるべきです。

外部プルリクエストを止める貢献モデル

READMEは、少数の信頼できる貢献者を除き、外部からのプルリクエストを受け付けていないと明記しています。バグ報告や機能提案は、詳細なIssueを開くことが推奨されています。一方、コードはオープンソースのままで、読む、監査する、実行する、フォークすることはできます。これは、ソースを確認できる透明性と、上流へ変更を戻す手順が同じではないことを示します。利用者が独自に修正した場合は、変更箇所、元の版、セキュリティ影響、上流の更新との関係を自分で管理する必要があります。READMEには、外部プルリクエストを一時停止した理由を説明する記事、貢献ガイド、行動規範へのリンクがあります。問題を報告するときは、署名文書を公開せず、再現用の最小データ、版、ログ、環境を切り分けます。採用チームは、上流のIssueだけで自分の修正が維持されると考えず、フォークの保守担当と更新の判断基準を決めておくのが現実的です。

セキュリティ報告とAGPL-3.0

脆弱性が疑われる場合、READMEはSecurity Policyを通じて報告し、GitHub Security Advisoriesによる非公開報告を優先するよう案内しています。署名サービスは文書と個人情報を扱うため、通常の機能Issueへ秘密を含むログやファイルを貼らない運用が必要です。ライセンスはAGPL-3.0で、READMEの説明ではネットワークサーバーソフトウェアを想定したコピーレフトです。改変版をサーバーとして提供する場合、その利用者へ対応するソースを提供する義務が生じ得るため、セルフホストやサービス提供の形態を含めて法務と確認する必要があります。AGPL-3.0は、アプリケーションの安全性、署名の有効性、保守契約、可用性を保証するものではありません。リリース履歴にはv2.17.0などが記録されていますが、更新時にはDBスキーマ、PDF処理、メール、外部決済、権限を含む回帰確認を行います。Documensoはコードを監査可能にしたい組織へ合う一方、信頼をセルフホストへ移す分だけ、インフラ、セキュリティ、ライセンスの責任も引き受ける製品です。

編集部の結論

Documensoは、署名処理のコードを読める状態に置き、自分の環境で運用したい組織に向きます。READMEはNode.js 22以上、Postgres、Dockerを使う開発手順、公式コンテナ、PDF署名や支払いを含む構成を示していますが、法的な署名要件、運用時の可用性、秘密情報の管理、各地域の規制適合を保証していません。採用前に署名フロー、メール、保存先、バックアップ、アクセス権、AGPL-3.0の扱いを実環境に近い構成で確認してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート