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

ConvertXを読む、千種類超の形式を自分で変換するWebアプリ

ConvertX は、1,000 を超えるドキュメント、画像、オーディオ、ビデオ形式のファイルを変換する自己ホスト型 Web アプリケーションです。

スター 18,987フォーク 1,080TypeScriptAGPL-3.0
GitHub

ひと目でわかる

これは何?
ConvertXはTypeScript、Bun、Elysiaで作られたセルフホスト型のファイル変換サービスです。文書、画像、音声、動画などをWeb画面から扱い、複数ファイル、保護、複数アカウントに対応します。
誰に向いている?
ConvertXは、外部の変換サイトへファイルを預けず、自分で管理する環境に変換処理を置きたい人に向いています。最初はlocalhostで起動し、アカウント登録を確認したうえで、長く秘密にできるJWT_SECRET、HTTPS、登録可否、未認証利用の設定を決めてください。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に TypeScript です(GitHub の言語統計による)。

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

オープンソース詳細解説

ファイル変換を自分の環境へ置く

ConvertXはセルフホスト型のオンラインファイル変換アプリです。READMEは千種類を超える形式を扱い、TypeScript、Bun、Elysiaで書かれていると説明しています。文書、画像、音声、動画を一つのWebサービスで変換できるため、用途ごとに複数の変換サイトを使い分けたくない人に合います。複数ファイルの一括処理、パスワード保護、複数アカウントも機能として明記されています。

セルフホストは、アップロード先を自分のサーバーやローカル環境で管理できる形を指します。これは自動的に安全な環境になるという意味ではありません。ネットワーク公開、認証、保存先、削除、変換用バイナリの権限を管理者が決める必要があります。対応形式の多さは入口として魅力的ですが、個々の形式が同じ品質で変換される、元ファイルが必ず保持されるとはREADMEから判断できません。

変換器の構成から見える守備範囲

対応表には、ベクター画像向けのInkscape、JPEG XLのlibjxl、SVGのresvg、画像用のVips、HEIFのlibheifが並びます。文書ではXeLaTeX、Calibre、LibreOffice、Pandoc、データファイルではDaselを使います。Outlookメッセージ、VCFからCSV、3DアセットのAssimp、ラスターからベクターへのPotraceとVTracerも含まれています。

動画はFFmpegが中心で、READMEは入力約472、出力約199形式と記載しますが、重複を含む概算です。ImageMagickとGraphicsMagickも多くの画像形式を扱います。ConvertX自身がすべての変換ロジックを実装するのではなく、用途別の既存ツールを接続する設計と読めます。したがって、変換結果を評価する際はConvertXの画面だけでなく、元となるコンバーターの版、オプション、フォント、コーデック、ライセンスを一緒に確認する必要があります。

Dockerで最初のサービスを起動

READMEはDocker Composeとdocker runの二つの起動例を示しています。Composeではghcr.io/c4illin/convertxのイメージを使い、コンテナの3000番ポートを公開し、ホスト側のdataディレクトリをアプリのdataへマウントします。起動後はブラウザでhttp://localhost:3000へアクセスし、アカウントを作成する流れです。単独起動では同じイメージを使い、ポートとデータボリュームを指定します。

初回起動時の注意書きは明確です。設定をしないまま公開すると、誰でも最初のアカウントを登録できるため、localhostやHTTPSで接続することが求められています。ログインできない場合にHTTP_ALLOWED=trueを設定する案内もありますが、READMEはこれをローカルで使う場合に限る設定として表に記載しています。公開URLで困ったからHTTPを許可する、という順序にせず、TLS終端とアクセス制御を先に用意してください。

JWTとアカウント設定を分けて考える

JWT_SECRETはJSON Web Tokenの署名に使う長い秘密文字列です。未設定ならrandomUUID()の値を使うと説明され、READMEは自分で設定することを推奨しています。環境変数ACCOUNT_REGISTRATIONの既定値はfalseで、登録を許可するかを切り替えます。ALLOW_UNAUTHENTICATEDの既定値もfalseで、認証なしでサービスを使わせる設定はローカル用途に限るとされています。

これらは似た設定に見えますが、秘密鍵、登録入口、認証なし利用は別の論点です。JWT_SECRETをComposeファイルへ直接書き込んでリポジトリへ保存せず、バックアップやログへの露出も避けてください。初回アカウントを作ったら、登録を閉じ、未認証利用を許可していないことを確認します。READMEは認証の詳細、パスワードの保管方式、アカウント削除、管理者権限の分離を説明していないため、組織で使う場合はコードと設定を追加で監査する必要があります。

ファイルの保存と自動削除を確認

ConvertXはdataボリュームへアプリのデータを置く構成です。READMEの環境変数にはAUTO_DELETE_EVERY_N_HOURSがあり、既定値は24です。指定した時間より古いファイルを定期的に確認して削除し、0で無効化できると説明されています。変換サービスでは一時ファイルと履歴が残る可能性があるため、保存場所と削除の動作を導入前に確認できる点は実務的です。

自動削除を有効にしても、バックアップ、コンテナログ、リバースプロキシの一時領域まで消えるとは限りません。削除対象の基準、失敗時の残留、履歴画面との関係はREADMEの短い表だけでは不明です。重要な文書を処理するなら、テストファイルをアップロードし、変換後の保存先、履歴表示、24時間を短くした場合の挙動を分けて確認してください。chownでdataパスの所有者を直す案内もありますが、広いパスへ無差別に権限を付けるのではなく、専用ディレクトリを用意するべきです。

FFmpegと公開設定の調整余地

FFMPEG_ARGSとFFMPEG_OUTPUT_ARGSは、FFmpegの入力と出力へ渡す引数を指定する環境変数です。READMEは入力側の例としてハードウェアアクセラレーション、出力側の例としてエンコードプリセットを挙げています。GPUやCPUに合わせて調整できる余地がありますが、機器、ドライバー、コーデック、コンテナ内の実装が合わなければ期待どおりに動くとは限りません。

WEBROOTはルートパスを変更するための設定で、/convertを指定するとexample.com/convert/のように配信できると説明されています。履歴を隠すHIDE_HISTORYなど、画面表示を調整する項目もREADMEの環境変数表にあります。設定の組み合わせによって認証境界や共有URLが変わる可能性があるため、値を変えたらログイン、アップロード、履歴、ダウンロードを一通り確認してください。HTTP_ALLOWEDを本番の近道として使わず、HTTPSの経路を前提にすることが最低限の運用条件です。

形式の数より変換結果を検証

千種類超という説明は、対応範囲の広さを短く伝える数字です。実際の使い勝手は、特定の入力と出力の組み合わせ、文字コード、フォント、メタデータ、動画の音声、色空間で変わります。文書をPDFへ変換する場合と、HEIFを画像へ変換する場合では、依存するツールも失敗の形も異なります。変換前後のページ数、文字、画像、音声、再生時間を自動または目視で確認する仕組みが必要です。

ConvertXには不足している変換器をissueやプルリクエストで知らせるようREADMEが案内しています。これは拡張を受け付ける姿勢を示しますが、提案された変換器がすぐ採用されることを意味しません。大量処理ではCPU、メモリ、ディスク、一時ファイルの上限も測定してください。素材のREADMEは性能基準、同時実行数、アップロード容量、障害時の復旧を示していません。セルフホストの利点を生かすには、自分の形式セットに絞った小さな受け入れテストを用意するのが先です。

AGPL-3.0と依存ツールを別々に確認

ConvertXのリポジトリライセンスはAGPL-3.0です。自分で運用するだけでなく、改変版を配布したり、ネットワーク越しのサービスとして提供したりする場合は、原文ライセンスの条件を確認する必要があります。ConvertXの条件を確認しても、Inkscape、FFmpeg、LibreOffice、Pandoc、ImageMagickなど組み込まれる各ツールのライセンスが一つになるわけではありません。

素材の取得時点で、スター18619、フォーク1046、未解決イシュー125、最終更新日時2026年6月21日が記録されています。リリースはv0.18.0、v0.17.0、v0.16.1です。これらは公開活動と版を読むための情報で、変換品質、セキュリティ監査、長期サポートを保証しません。採用時はDockerイメージの出所、固定する版、dataのバックアップ、認証とHTTPS、削除方針、依存ツールの条件を文書化してから、限定した利用者へ公開するのが妥当です。

編集部の結論

ConvertXは、外部の変換サイトへファイルを預けず、自分で管理する環境に変換処理を置きたい人に向いています。最初はlocalhostで起動し、アカウント登録を確認したうえで、長く秘密にできるJWT_SECRET、HTTPS、登録可否、未認証利用の設定を決めてください。変換処理は多くの外部ツールに依存するため、対応形式の数だけで品質や安全性を判断できません。保存先、削除周期、履歴表示、アップロードサイズ、各コンバーターのライセンスを検証してから共有範囲を広げるべきです。

公式情報源

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

コミュニティノート