Stirling PDF:VPSに自分専用のPDFエディターをインストールする方法
契約書と添付書類を結合したり、パスポートのスキャンを圧縮したり、口座情報を隠したりするために、最初に見つけたオンラインサービスへ文書をアップロードする人は少なくありません。しかし、ファイルと一緒に署名、住所、請求書、その他の機密情報が第三者のサイトへ送信される可能性があります。
Stirling PDFは別の方法を提供します。これは数十種類のPDFツールを備え、自分のVPS上で実行できるWebアプリケーションです。管理画面はパソコンやスマートフォンのブラウザーから開けますが、文書の処理は自分のサーバー上で行われます。
以下では、Stirling PDFの特に興味深い機能、必要なサーバー要件、そして認証とHTTPSを有効にしながらDocker ComposeでUbuntuへインストールする方法を説明します。
Stirling PDFとは
Stirling PDFは、PDFの編集と処理を行うセルフホスト型プラットフォームです。ファイルの結合と分割、ページ順の変更、圧縮、変換、OCR、署名、透かし、文書比較、メタデータや機密情報の削除など、55種類以上の操作をまとめて利用できます。
このサービスは、デスクトップアプリケーション、クラウド製品、自分で管理するサーバーとして利用できます。セルフホストモードでは、自分のStirling PDFインスタンスがファイルを処理し、パスワードとHTTPSでアクセスを保護できます。無料のサーバー版は最大5ユーザーのグループ向けで、大規模なチームや一部の企業向け機能には有料版が用意されています。
一般的なオンラインコンバーターとの最大の違いは、管理権限を持てることです。プロバイダー、サーバーの場所、ユーザー、アクセスルールを自分で選べます。また、操作ごとに別のサイトを探す必要もありません。1つの管理画面で、圧縮、変換、署名、OCR用の複数サービスを置き換えられます。
Stirling PDFの特に興味深い機能
ページを視覚的に操作
Multi-Toolモードでは、文書がサムネイルのグリッドで表示されます。ページをドラッグ、回転、削除、分割したり、必要な位置に挿入したり、選択したページだけを書き出したりできます。ファイルのアップロードは1回だけで済み、変更の取り消しとやり直しにも対応しています。
スキャン文書向けOCR
OCRは、スキャンされたPDFにテキストレイヤーを追加します。処理後は文書内の単語を検索し、テキストを選択してコピーできます。傾いたページの補正、ノイズ除去、コントラスト強調も利用できます。ロシア語を認識するには、Tesseractパッケージのrus.traineddataを別途追加する必要があります。
機密情報を安全に削除
口座番号の上に黒い長方形を置くだけでは、元のテキストが削除されない場合があります。Redactツールは、単に見た目のレイヤーで隠すのではなく、PDFの構造から一致する情報そのものを削除できます。領域を手動で指定することも、単語や正規表現を使って文書全体から電話番号、メールアドレス、カード番号、その他の情報を検索することもできます。
バージョン比較とモバイルスキャナー
Compareでは、契約書、報告書、仕様書の2つの版を比較し、どの単語が追加または削除されたかを確認できます。紙の文書にはモバイルスキャナーを利用できます。パソコンにQRコードが表示され、スマートフォンから写真を現在のセッションへ直接アップロードできます。テンポラリーファイルは、ダウンロード後または10分間操作がない場合に自動で削除されます。
自動化とAPI
Automateは、PDF用のマクロのように機能します。たとえば、次の処理フローを一度保存できます。
OCR → 空白ページを削除 → 圧縮 → 透かしを追加 → パスワードを設定
その後は、各手順を毎回繰り返さなくても、同じフローを新しいファイルに適用できます。Stirling PDFは、監視フォルダー内のファイル処理や、組み込みのSwaggerドキュメントを備えたREST APIにも対応しています。
Stirling PDFに必要なVPS構成
PDFの処理には、元のファイルサイズよりはるかに多くのメモリが必要になる場合があります。特にOCR、ページの画像変換、LibreOfficeを使ったオフィス文書の変換は多くのリソースを消費します。
テスト運用なら2 GBのRAMでも十分ですが、継続的に利用する場合は次の構成を目安にしてください。
- 2 vCPU;
- 4 GB RAM;
- SSDまたはNVMeに10~20 GB以上の空き容量;
- Ubuntu 22.04または24.04。
複数のユーザーが同時にOCRや変換を実行する場合は、4 vCPUと8 GB RAMを選ぶほうが合理的です。低性能なサーバー向けにはlatest-ultra-liteイメージがあり、latest-fatには高品質な変換のための追加フォントとツールが含まれています。大半のユーザーには標準のlatestが適しています。
Docker ComposeでStirling PDFをインストールする
以下の構成では、コンテナはローカルインターフェースだけで待ち受けます。外部からのアクセスは後ほどHTTPSを設定したNginx経由にするため、8080番ポートがインターネット全体へ公開されることはありません。
手順1:Dockerをインストールする
ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y curl
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.shインストールを確認します。
docker --version
docker compose version手順2:Docker Composeを作成する
mkdir -p /opt/stirling-pdf/{configs,logs,pipeline}
cd /opt/stirling-pdf
nano docker-compose.yml次の設定を追加します。
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./configs:/configs
- ./logs:/logs
- ./pipeline:/pipeline
environment:
- SECURITY_ENABLELOGIN=true
- SYSTEM_DEFAULTLOCALE=ru-RU
- SYSTEM_GOOGLEVISIBILITY=falseサービスを起動します。
docker compose up -d
docker compose ps診断には次のコマンドを使用します。
docker compose logs --tail=100 stirling-pdf手順3:初回ログインを行う
ドメインを設定する前に、SSHトンネル経由で管理画面を開きます。このコマンドは自分のパソコンで実行してください。
ssh -L 8080:127.0.0.1:8080 root@SERVER_IPhttp://localhost:8080を開きます。初回ログインの標準認証情報は、ユーザー名がadmin、パスワードがstirlingです。アカウント設定ですぐにパスワードを変更してください。
ドメインとHTTPSを接続する
pdf.example.comのようなアドレス用にAタイプのDNSレコードを作成し、サーバーのIPアドレスへ向けます。その後、NginxとCertbotをインストールします。
apt install -y nginx certbot python3-certbot-nginx
nano /etc/nginx/sites-available/stirling-pdfドメイン名を置き換えて、次の設定を追加します。
server {
listen 80;
server_name pdf.example.com;
client_max_body_size 500M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300s;
}
}サイトを有効化し、証明書を取得します。
ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/stirling-pdf
nginx -t
systemctl reload nginx
certbot --nginx -d pdf.example.comこれでStirling PDFへHTTPSでアクセスできるようになり、内部の8080番ポートは閉じたままになります。500 MBを超えるファイルを扱う場合は、client_max_body_sizeを増やしてください。
ロシア語OCRを追加する方法
ディレクトリを作成し、英語とロシア語のTesseractパッケージをダウンロードします。
cd /opt/stirling-pdf
mkdir -p tessdata
curl -L -o tessdata/eng.traineddata \
https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/eng.traineddata
curl -L -o tessdata/rus.traineddata \
https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/rus.traineddatadocker-compose.ymlファイルのvolumesに次の行を追加します。
- ./tessdata:/usr/share/tessdata変更を適用し、利用可能な言語を確認します。
docker compose up -d
docker exec stirling-pdf tesseract --list-langs一覧にengとrusが表示されるはずです。
セキュリティ、更新、制限事項
継続的に利用する前に、初期パスワードを変更し、認証を有効のままにし、8080番ポートを公開せず、ファイアウォールではSSH、HTTP、HTTPSだけを許可してください。configsとpipelineディレクトリはバックアップ対象に含めることを推奨します。Stirling PDFの分析機能はユーザーが同意した場合にのみ有効になり、管理者が完全に無効化できます。
更新は次のように行います。
cd /opt/stirling-pdf
docker compose pull
docker compose up -dStirling PDFは日常的な作業の大半に対応できますが、PDFとオフィス形式の間で変換する際、複雑なレイアウトを常に維持できるとは限りません。OCRは表や数式の構造を認識せず、手書き文字や小さな文字の認識精度にも限界があります。良好な結果を得るには、約300 DPIの鮮明なスキャンを使用することを推奨します。
tropic.hostのVPSでStirling PDFを運用する
このサービスにグラフィックカードは必要ありません。重要なのはRAM、安定したCPU性能、高速なストレージです。大きな文書は最初にサーバーへアップロードされ、その後ダウンロードされるため、サーバーの場所はユーザーに近い地域を選ぶほうがよいでしょう。
個人用インスタンスや小規模チームであれば、通常は2 vCPUと4 GB RAMを備えたLinux VPSで十分です。tropic.hostのVPSでは、Ubuntuをインストールし、上記のDocker Composeを起動し、管理画面を専用のサブドメインで公開できます。同じサーバーで別のコンテナも動かす場合は、特にメモリの余裕が重要です。
まとめ
Stirling PDFは、VPSを自分専用の文書Webサービスに変えます。数十種類のツールをまとめて利用でき、OCR、機密情報の完全な削除、バージョン比較、モバイルスキャン、自動化、APIに対応しています。
自分で導入する最大の理由は、ファイルを自分で管理できることです。契約書、請求書、申請書、社内文書を扱う場合、認証とHTTPSで保護された専用インスタンスは、無作為に選んだ複数のオンラインコンバーターより便利です。
FAQ
Stirling PDFは無料ですか?
はい。無料のセルフホスト版は最大5ユーザーまで利用できます。より大規模なチームや企業向け機能を必要とする組織には有料版が必要です。
文書は自分のサーバー外へ送信されますか?
セルフホストモードでは、自分のStirling PDFインスタンスが文書を処理します。最終的な安全性は、VPSの設定、HTTPS、パスワード、更新、管理者のアクセス権限によって決まります。
2 GBのRAMで足りますか?
テストや軽い処理であれば足ります。継続的な利用、OCR、変換には4 GB RAMを推奨し、同時処理が発生する場合はさらに多く必要です。
ドメインは必要ですか?
いいえ。IPアドレスまたはSSHトンネル経由でサービスを開けます。ドメインは、便利な固定アドレスと適切なHTTPS設定のために必要です。
ロシア語OCRに対応していますか?
はい。rus.traineddataファイルをTesseractのディレクトリへ追加し、コンテナにマウントする必要があります。
