Independent testing Updated April 2026 387 self-hosting guides 5 VPS providers tested

guide

VPSにPaperclipをセルフホスティングする方法(2026年のステップバイステップガイド)

Dockerを使用したVPS上へのPaperclipのセルフホスティング手順ガイド。前提条件、インストール、設定、HTTPS、初回ログインを詳しく解説。

VPSにPaperclipをセルフホスティングする方法(2026年のステップバイステップガイド)

Paperclipは、利用可能な中でも最もクリーンなセルフホスト型のドキュメント管理システムの一つです。単一のDockerコンテナとして動作し、ファイルをローカルボリュームに保存し、ポート8080でWeb UIを公開します。このガイドでは、Linux VPS上での本番環境向けの完全なインストール手順を、サーバーの準備から最初のドキュメントアップロードまで丁寧に解説します。

必要条件

推奨VPSオプション:


ステップ1:サーバーの更新

apt update && apt upgrade -y

ステップ2:Dockerのインストール

curl -fsSL https://get.docker.com | sh
systemctl enable docker
systemctl start docker

Dockerが正常に稼働しているか確認:

docker --version

ステップ3:Docker Composeのインストール

apt install docker-compose-plugin -y
docker compose version

ステップ4:作業ディレクトリの作成

mkdir -p /opt/paperclip && cd /opt/paperclip

ステップ5:docker-compose.ymlの作成

nano /opt/paperclip/docker-compose.yml

以下の設定を貼り付けてください:

version: "3.8"

services:
  paperclip:
    image: paperclip/paperclip:latest
    container_name: paperclip
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - paperclip_data:/data
    environment:
      - PAPERCLIP_SECRET_KEY=change_this_to_a_random_secret
      - PAPERCLIP_OCR_ENABLED=true
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  paperclip_data:

重要: change_this_to_a_random_secretの部分は、ランダムな文字列に置き換えてください。生成には次のコマンドを使用します:

openssl rand -hex 32

ステップ6:必要に応じてPostgreSQLの使用(SQLiteの代わりに)

マルチユーザーや本番環境向けにcomposeファイルを拡張します:

version: "3.8"

services:
  db:
    image: postgres:16-alpine
    container_name: paperclip_db
    restart: unless-stopped
    environment:
      POSTGRES_DB: paperclip
      POSTGRES_USER: paperclip
      POSTGRES_PASSWORD: strongpassword
    volumes:
      - pg_data:/var/lib/postgresql/data

  paperclip:
    image: paperclip/paperclip:latest
    container_name: paperclip
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:8080"
    volumes:
      - paperclip_data:/data
    environment:
      - PAPERCLIP_SECRET_KEY=your_random_secret
      - PAPERCLIP_DB_HOST=db
      - PAPERCLIP_DB_NAME=paperclip
      - PAPERCLIP_DB_USER=paperclip
      - PAPERCLIP_DB_PASSWORD=strongpassword
      - PAPERCLIP_OCR_ENABLED=true

volumes:
  paperclip_data:
  pg_data:

ステップ7:Paperclipの起動

cd /opt/paperclip
docker compose up -d

コンテナの稼働確認:

docker compose ps
docker compose logs -f paperclip

ステップ8:ファイアウォールの設定

ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable

注:ポート8080は直接公開せず、CaddyやNginxを通じてHTTPSでプロキシする予定です。

ステップ9:HTTPSの設定(Caddyを使用)

apt install caddy -y

Caddy設定ファイルの編集:

nano /etc/caddy/Caddyfile

以下を貼り付け:

docs.yourdomain.com {
    reverse_proxy localhost:8080
}

Caddyをリロード:

systemctl reload caddy

Caddyは自動的にLet’s Encryptの証明書を取得・設定します。

ステップ10:初回ログイン

  1. https://yourdomain.com(またはドメインなしの場合は http://YOUR_VPS_IP:8080)にアクセス
  2. 初期セットアップウィザードを完了 - 管理者メールとパスワードを設定
  3. 最初のドキュメントをアップロード
  4. スキャンしたファイルの全文検索のためにOCRを有効にする

ステップ11:バックアップの設定

DockerボリュームをローカルマシンまたはS3互換バケットにバックアップします:

# ローカルファイルにバックアップ
docker run --rm \
  -v paperclip_data:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/paperclip-backup-$(date +%Y%m%d).tar.gz /data

クラウンジョブとしてスケジュール:

crontab -e
# 以下を追加
0 3 * * * /opt/paperclip/backup.sh

トラブルシューティング

問題解決策
コンテナがすぐに停止するログを確認: docker compose logs paperclip
OCRが動作しないPAPERCLIP_OCR_ENABLED=trueになっているか、コンテナに十分なRAMが割り当てられているか確認
UIにアクセスできないポート8080がブロックされていないか確認;docker compose psも確認
ドキュメント処理が遅いOCRはCPU負荷が高いため、必要に応じてvCPUを増やす

VPSプロバイダの推奨情報はこちらや完全比較の詳細は selfhostvps.com をご参考ください。