2026 年 Paperless-ngx VPS 推薦:記憶體、儲存與安裝指南
適合 Paperless-ngx 的 VPS,需要有足夠記憶體承受 OCR 峰值,也要有足夠磁碟儲存原始掃描件和處理後的副本。Paperless-ngx 透過 OCR、標籤和瀏覽器介面,把文件整理成可搜尋的檔案。VPS 能在家用電腦關機後繼續提供存取,你也可以自行決定部署位置和存取權限。
先用一批有代表性的檔案進行測量。簡短的文字 PDF 與高解析度的百頁掃描件,對 CPU、記憶體和儲存的要求差別很大。OCR 併發量與文件數量同樣重要。備份還需要在伺服器之外單獨預留容量。
本文對比六家 VPS 服務商,解釋記憶體與儲存規劃,並按照官方 PostgreSQL Docker Compose 方案安裝。內容還包括 OCR 配置、自動匯入和加密還原流程,幫助你選擇能長期承擔維運成本的配置。
價格與技術資料核實於 2026 年 10 月 29 日。當時確認的最新穩定版本為 Paperless-ngx 3.3.4。以下是公開產品目錄參考,並非購買記錄或 OCR 效能實測。下單前請確認地區、庫存、稅費及最終總價。
Paperless-ngx VPS 推薦:快速對比
推薦套餐面向日常 OCR,記憶體約為 4GB 或更高。更便宜的入門檔單獨說明;CPU 數量本身並不能證明 OCR 速度。
| 服務商 | 推薦套餐 | vCPU | 記憶體 | 內建儲存 | 儲存擴容 | 已核實月費 | 適用場景 |
|---|---|---|---|---|---|---|---|
| LightNode | Agency Linux | 2 | 4GB | 50GB NVMe | 額外雲端磁碟;控制台詢價 | 頁面參考價 $14.70 | 靈活按小時託管 |
| Hetzner | CPX22,需確認庫存 | 2 | 4GB | 80GB NVMe | 附加儲存卷 | 請查詢當前價格 | 確認報價後的歐盟部署 |
| DigitalOcean | Basic Regular 4GiB | 2 | 4GiB | 80GiB SSD | 附加儲存卷 | $24 | 參考文件完成首次部署 |
| Vultr | vc2-2c-4gb | 2 | 4GB | 80GB SSD | 地區性 Block Storage | 基礎地區 $20 | 按地區選擇 VPS |
| Akamai Cloud / Linode | Linode 4GB | 2 | 4GB | 80GB SSD | Block Storage;確認地區報價 | 基礎地區 $24 | 通用託管 |
| Contabo | Cloud VPS 4 | 4 | 8GB | 100GB SSD | 更大套餐;核實附加產品相容性 | 請查詢當前價格 | 更大的資源配置 |
Paperless-ngx 是什麼?
Paperless-ngx 是開源的自託管文件管理系統。它可以匯入檔案、提取文字、按需進行 OCR,並提供全文搜尋。標籤、往來單位、文件型別和匹配規則可以組織收據、發票與信件。Web 介面還支援權限管理和自動分類。
文件儲存在你管理的儲存上,因此磁碟管理、存取控制和恢復也是日常維運的一部分。它可以與 Immich 照片庫配合使用,但文件原件、後設資料和可搜尋的衍生檔案需要單獨制定保留策略。
Paperless-ngx 伺服器要求
CPU 與記憶體需求
官方安裝指南支援較低配置硬體,並向大多數使用者推薦 Docker,但沒有給出一套能保證所有 OCR 負載的 VPS 規格。請分別考慮 Linux/Docker、應用、PostgreSQL、訊息代理和 OCR 臨時任務的資源。可選的文件轉換服務還會額外消耗記憶體。
推薦 VPS 配置
以下是包含系統與核心容器的編輯性起步估算,不是官方最低配置,也不是效能保證。儲存數值針對較小的初始部署;後文的文件庫容量計算可能要求更大的空間。
| 工作負載 | vCPU | 記憶體 | 初始 SSD 容量預算 | OCR 起步設定 |
|---|---|---|---|---|
| 個人小型文件庫 | 2 | 2GB | 30GB | 一個任務程序、一個 OCR 執行緒;謹慎測試 |
| 日常 OCR | 2 | 4GB | 50GB | 從 1 × 1 開始,觀察峰值 |
| 頻繁掃描、小型辦公室 | 4 | 8GB | 100GB | 評估 1 × 2 或 2 × 1 |
| 大批次任務或大型文件庫 | 4-8 | 8-16GB | 可擴容儲存 | 根據實測佇列和記憶體調整 |
OCR 效能與資源佔用
高解析度影象、長 PDF、多種識別語言和並行任務,可能帶來短時 CPU/記憶體峰值。使用者存取、資料庫查詢、索引更新和分類也會與 OCR 競爭資源。使用 Tika/Gotenberg 轉換 Office 文件時,資源佔用可能進一步增加。
當前配置文件中,PAPERLESS_TASK_WORKERS 控制並行後臺任務,PAPERLESS_THREADS_PER_WORKER 控制單份文件中並行處理的頁數。兩者乘積不要超過邏輯 CPU 數量。在 2 vCPU 主機上,從 1 × 1 開始可以為網頁和資料庫留出部分 CPU,但這並不等於限定了固定的記憶體上限。
儲存需求
請計算原件、歸檔版本、縮圖、提取的文字/後設資料、PostgreSQL、搜尋索引、容器映象和臨時處理檔案,併為匯入與更新保留空閒容量。匯入代表性掃描件後測量實際增長,不要假定所有文件都有固定比例的額外開銷。
PostgreSQL 與 Redis 相容訊息代理
官方安裝文件建議新安裝優先採用 PostgreSQL,同時也支援 SQLite 和 MariaDB。Redis 協議相容的訊息代理負責協調後臺任務。已核實的模板採用 Valkey,所以 Redis 並不是唯一選擇。redis://broker:6379 中的名稱表示協議,而不是軟體產品。
什麼時候需要更多記憶體?
如果監控發現持續記憶體壓力、OCR 任務失敗或程序被 OOM 終止,應增加記憶體或降低併發。在把所有延遲歸因於記憶體之前,先停止其他任務,對比代表性檔案的匯入情況。Swap 能提供應急餘量,但不能讓過載的 OCR 變快。與 Coolify 或 Dokploy 共用伺服器時,也要計算它們自身的開銷。
6 家適合 Paperless-ngx 的 VPS 服務商
這些服務商提供具有 root/SSH 管理權限的 Linux 虛擬機器,可手動安裝 Docker。選擇受支援的 64 位 Ubuntu 映象,核實訂單中的 IPv4 條件,並在安裝前限制 SSH 存取。共享 CPU 並不保證固定的 OCR 速度。
1. LightNode:靈活按小時計費
LightNode Agency 列出 2 vCPU、4GB 記憶體、50GB NVMe 和 2TB 宣傳流量,月費參考為 $14.70。Premium 提升至 4 vCPU/8GB、3TB 流量,參考價 $27.70,但內建磁碟仍為 50GB。Agency 適合評估個人日常 OCR;Premium 提供更多併發餘量,卻不能直接解決大型文件庫的磁碟問題。
Linux/root、專用 IP 產品說明及多個大洲的機房,適合普通 Docker 部署。請在訂單中確認靜態地址與所選地區。計費文件提到額外雲端磁碟,但容量和價格需要在控制台詢價。不要預設它能低價無限擴容,也不要假定存在官方 Paperless-ngx 一鍵應用。
更低的 Start 為 1 vCPU/2GB、參考價 $7.71,低於本文 2 vCPU 的起步建議。常見問題說明按小時伺服器費用、完整自然月內 672 小時的費用封頂、單獨的流量規則,以及停機後繼續計費。快照與備份需另行詢價。靈活計費有助於測試 OCR 配置,但不能證明處理速度。
2. Hetzner:確認報價後的歐盟部署
CPX22 列出 2 vCPU、4GB 和 80GB NVMe。目錄也顯示了不可用提示和地區價格差異,因此本文標註為請查詢當前價格,不把它當作已確認可購買的最低價選擇。更低的 CPX12 為 1 vCPU/2GB,OCR 餘量更小。
CPX22 標註歐盟地區包含 20TB 流量,新加坡為 1TB。主要 IPv4 每月 €0.50,不含增值稅;按小時計費具有月費上限。請確認可用 Linux 映象及所選地區的總價。
Volumes 儲存卷可以獨立於 CPU/記憶體擴充套件媒體檔案系統,但其資料不包含在伺服器備份和快照中。伺服器每日備份具有七個備份槽位,當前備份和卷費用需核實。確認容量與報價後,可將其納入歐盟檔案部署比較,併為每個附加媒體卷制定單獨備份流程。
3. DigitalOcean:參考文件完成首次部署
Basic Regular 4GiB 提供 2 vCPU、80GiB SSD 和 4,000GiB 流量,月費 $24。$4/512MiB 入門檔不適合本文的整套服務估算;即使 $12/2GiB 檔也只有一個 vCPU。推薦檔位更適合日常 OCR 的起步評估。
Ubuntu 文件、SSH 金鑰配置和雲防火牆有助於首次部署。標準主要 IPv4 包含在內,地區覆蓋美洲、歐洲和亞太。按秒計費設有月費上限,最低計費為 60 秒或 $0.01,取較高者。
Volumes 每月 $0.10/GiB,需確認地區供應情況,並單獨計算卷快照。按比例收費的每週備份為 20%,每日備份為 30%。Droplet 磁碟映象不包含附加捲。它的優勢是文件和明確的資源選擇;PostgreSQL、OCR 與恢復仍由你負責。
4. Vultr:按地區選擇 VPS
公開套餐 API 列出 vc2-2c-4gb:2 vCPU、4GB 記憶體、80GB SSD、3,072GB 流量,基礎地區 $20/月或 $0.027/小時;聖保羅為 $30。較低的 1 vCPU/1GB 檔為 $5,不能把這個入門價格當作推薦 OCR 配置的成本。
產品目錄覆蓋多個大洲,但按需套餐列入目錄不代表已經為你保留容量。請核實 Linux 映象及標準啟用 IPv4 的配置,並同時使用服務商防火牆和主機存取控制。
Block Storage 的供應與價格因地區而異。自動備份加收 20%,且不包含 Block Storage;快照另行收費。基礎地區 4 vCPU/8GB/160GB 為 $40,適合實測表明需要更多餘量時評估。應依據地區和儲存組合選擇,不要推定未經實測的延遲或 OCR 優勢。
5. Akamai Cloud:通用託管
Linode 型別 API 列出 Linode 4GB:2 vCPU、80GB 磁碟、4,000GB 流量,$24/月或 $0.036/小時。基礎地區備份附加服務為 $5/月。Nanode 1GB 從 $5 起,但低於本文整套服務的容量規劃範圍。
Linux 映象、SSH、內含主要 IPv4 和雲防火牆適合常規安裝。地區包括美洲、歐洲及亞太。推薦套餐在雅加達為 $28.80,聖保羅為 $33.60,備份價格也不同。按小時計費有月費上限,已分配資源在停機後仍會產生費用。
Block Storage 可用於媒體擴容,遷移檔案前請確認地區、容量和價格。Linode 例項備份不包含附加 Block Storage。請保留應用匯出和獨立加密備份。它是總價與位置合適時的通用選擇,不是專門的 OCR 託管服務。
6. Contabo:更大的資源配置
Contabo 當前 VPS 文件列出 Cloud VPS 4:4 個共享 vCPU、8GB 記憶體和 100GB SSD。Cloud VPS Plus 4 是另一個產品,提供 150GB NVMe。更多記憶體可能有助於頻繁掃描,但宣傳配置不能證明 PDF 處理速度。
文件說明支援 Linux/root、一個靜態 IPv4 和網路防火牆。Cloud VPS 4 的埠為 200Mbit/s,宣傳的不限流量仍受公平使用規則約束。請確認地區附加費和可用系統映象。
本次未能確認公開下單價格,因此標註請查詢當前價格,包括設定費、訂購期限及續費。更大的套餐和 Storage VPS 可以作為替代選項,但未經相容性核實,不要把它們當作可直接掛載的附加磁碟。Auto Backup 與快照的覆蓋範圍和費用依具體產品而定。尤其在文件庫超過系統盤容量時,應比較完整的儲存與恢復方案。
Paperless-ngx 需要多少儲存?
原始檔案與歸檔 PDF/A 可能同時存在。OCR 設定和檔案型別會影響歸檔版本生成;強制光柵化可能增大檔案。提取的文字、資料庫記錄、搜尋索引和縮圖也會佔用容量。使用指南說明,成功處理的檔案會離開收件目錄,進入應用管理的檔案。
以下容量預算僅為示例假設,不是測得的倍數。假定歸檔版本大致與原件等大,並單列輔助資料容量。作業系統和容器映象與檔案輔助資料分別計算。空閒空間用於臨時 OCR、更新及近期增長。異地容量假設保留兩套未壓縮的完整還原副本,包含原件、歸檔檔案及輔助狀態;保留策略、加密開銷和去重都會改變實際結果。
| 原始文件容量 | 預計額外佔用 | 執行空閒空間 | 主儲存預算 | 異地備份容量預算 |
|---|---|---|---|---|
| 5GB | 5GB 歸檔 + 2GB 輔助資料 + 8GB 系統 | 10GB | 30GB | 約 24GB,另加配置與額外開銷 |
| 50GB | 50GB 歸檔 + 10GB 輔助資料 + 10GB 系統 | 30GB | 150GB | 約 220GB,另加配置與額外開銷 |
| 200GB | 200GB 歸檔 + 30GB 輔助資料 + 10GB 系統 | 60GB | 500GB | 約 860GB,另加配置與額外開銷 |
匯入樣本後,分別測量 media、data、資料庫與臨時空間峰值。生成完整本地匯出前,要額外預留匯出空間。異地列表示容量,不是儲存報價。對於 200GB 文件庫,購買 50GB VPS 前先取得可用磁碟和備份報價。匯入前先掛載持久化媒體儲存;後續只更換掛載、不遷移現有檔案,可能讓原檔案在路徑下不可見。
Paperless-ngx 託管成本是多少?
| 場景 | 已核實計算資源參考價 | IPv4 | 儲存擴容 | 可選服務商備份 | 異地儲存/域名預算假設 | 月度預算 |
|---|---|---|---|---|---|---|
| 個人檔案,約 5GB 原件 | LightNode Agency $14.70 | 下單確認內含專用 IP | 50GB 內無需擴容 | 單獨詢價,未包含 | 異地 $2;現有域名 $0 | $16.70 + 未報價選項 |
| 家庭管理,約 50GB 原件 | Vultr 4 vCPU/8GB/160GB $40 | 標準套餐;確認訂單 | 實測容量預算能容納時無需擴容 | 20% = $8 | 異地 $6 + 域名 $1 | $55 |
| 小型企業 OCR,約 200GB 原件 | DigitalOcean 4 vCPU/8GiB/160GiB $48 | 內含主要地址 | 500GiB 媒體卷 = $50 | 每週 20% = $9.60 | 異地 $20 + 域名 $1 | $128.60 |
異地儲存和域名金額屬於編輯預算,不是可直接購買的報價,也不保證能夠覆蓋示例保留策略。請根據容量、恢復與出站流量詢價。企業示例按已核實單價,在 160GiB 系統盤之外增加 500GiB 媒體卷,超過 500GB 總容量示例,併為系統和資料庫留下獨立空間。確認掛載、可用容量和本地匯出空間。GB 與 GiB 是不同單位,應保留服務商原標註。這些基礎預算不包含完整匯出的臨時空間。按前述假設,50GB 文件庫約需額外 110GB 匯出空間,無法與現有文件一起放入 160GB 系統盤。使用本地匯出流程前,應另行詢價暫存卷或準備足夠額外容量。服務商備份收費不包含附加捲保護。稅費、超額流量、郵件服務和維運時間另計,示例沒有使用促銷折扣。
如何在 Ubuntu VPS 安裝 Paperless-ngx
以下全新安裝流程使用官方對應版本的 PostgreSQL 模板。準備 Ubuntu 24.04 LTS、SSH 金鑰和自己的域名。本文沒有聲稱進行過購買 VPS 部署或 OCR 跑分。以下命令在 root shell 執行,採用新伺服器可避免覆蓋既有安裝。
1. 安裝 Docker Engine 和 Compose
ssh ubuntu@YOUR_SERVER_IP
sudo -i
apt update
apt upgrade -y
apt install -y ca-certificates curl python3 age
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<EOF_DOCKER
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF_DOCKER
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker run --rm hello-world
docker compose version請先閱讀 Docker 的 Ubuntu 前提條件、衝突軟體包和防火牆限制。必要時重啟並重新連線。官方 Paperless 安裝要求具備 Docker 和 Compose;本文使用受維護的 Compose 外掛,而非舊的 docker-compose 可執行檔案。
2. 下載並調整官方檔案
umask 077
install -d -m 0700 /opt/paperless
cd /opt/paperless
# Stop here if this directory already contains an installation.
test ! -e docker-compose.yml && test ! -e .env && test ! -e docker-compose.env || exit 1
PAPERLESS_RELEASE=v3.3.4
COMPOSE_BASE="https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/${PAPERLESS_RELEASE}/docker/compose"
curl -fL "$COMPOSE_BASE/docker-compose.postgres.yml" -o docker-compose.yml
curl -fL "$COMPOSE_BASE/docker-compose.env" -o docker-compose.env
curl -fL "$COMPOSE_BASE/.env" -o .env
cp docker-compose.yml docker-compose.upstream.yml
install -d -o 1000 -g 1000 -m 0700 consume export執行下一個程式碼塊前,先修改 paperless.example.com。這套已核對的轉換固定應用版本,把 HTTP 繫結到迴環地址,並替換模板的資料庫密碼。保留官方 data、media、pgdata 和 redisdata 命名卷,最後一個用於 Valkey 狀態。PostgreSQL 18 的模板掛載到 /var/lib/postgresql,不要替換成舊主版本的目錄佈局。
python3 - <<'PY_CONFIG'
from pathlib import Path
import secrets
p = Path('docker-compose.yml')
s = p.read_text()
changes = {
'ghcr.io/paperless-ngx/paperless-ngx:latest': 'ghcr.io/paperless-ngx/paperless-ngx:3.3.4',
'"8000:8000"': '"127.0.0.1:8000:8000"',
'POSTGRES_PASSWORD: paperless': 'POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?Set database password}"',
'PAPERLESS_DBENGINE: postgresql': 'PAPERLESS_DBENGINE: postgresql\n PAPERLESS_DBPASS: "${POSTGRES_PASSWORD:?Set database password}"',
}
for old, new in changes.items():
assert s.count(old) == 1, f'Unexpected upstream template: {old}'
s = s.replace(old, new)
p.write_text(s)
with Path('.env').open('a') as f:
f.write('\nPOSTGRES_PASSWORD=' + secrets.token_hex(32) + '\n')
e = Path('docker-compose.env')
t = e.read_text()
assert t.count('PAPERLESS_SECRET_KEY=change-me') == 1
t = t.replace('PAPERLESS_SECRET_KEY=change-me',
'PAPERLESS_SECRET_KEY=' + secrets.token_urlsafe(64))
t += '''
PAPERLESS_URL=https://paperless.example.com
PAPERLESS_TIME_ZONE=UTC
PAPERLESS_ACCOUNT_ALLOW_SIGNUPS=false
USERMAP_UID=1000
USERMAP_GID=1000
PAPERLESS_OCR_LANGUAGE=eng
PAPERLESS_OCR_MODE=auto
PAPERLESS_TASK_WORKERS=1
PAPERLESS_THREADS_PER_WORKER=1
'''
e.write_text(t)
PY_CONFIG
chmod 0600 .env docker-compose.env docker-compose.yml
docker compose config --quiet
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 webserver db broker
docker compose exec webserver createsuperuser等待正常啟動和遷移完成後,再建立管理員。互動式輸入獨立密碼,不要把認證資料寫進命令,也不要將環境檔案提交到 Git。config --quiet 只檢查語法,不列印解析後的秘密。按所選 UID/GID 為掃描器配置有限權限,避免 chmod 777。容器可能以 root 開始初始化,再降低應用權限;本例沒有增加 rootless 覆蓋配置。
3. 配置 HTTPS 並驗證匯入
把域名 A 記錄指向 VPS;只有 IPv6 路由和防火牆正常時才釋出 AAAA。8000 埠保持私有,SSH 只允許可信地址,代理開放 TCP 80/443。不要公開 PostgreSQL 5432 或 Valkey 6379。Docker 釋出埠的行為可能繞過普通 UFW 規則的預期。
從官方 Debian/Ubuntu 軟體源安裝 Caddy:
apt install -y debian-keyring debian-archive-keyring apt-transport-https gnupg
curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key \
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt \
-o /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install -y caddy在這臺新伺服器的 /etc/caddy/Caddyfile 寫入以下配置,並替換示例域名:
paperless.example.com {
reverse_proxy 127.0.0.1:8000
}caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy
curl -I https://paperless.example.com這套基本方案使用直接 DNS;額外代理會帶來新的信任關係與上傳限制。透過 HTTPS 登入,上傳不含敏感資料的掃描 PDF,等待任務成功,並搜尋圖片中的特定詞語。檢查原件和歸檔檔案下載。透過 ss -lntp 確認 8000 僅監聽迴環地址,並驗證資料庫和訊息代理埠無法從公網存取。HTTPS 保護傳輸,但不會讓伺服器管理員無法讀取檔案。
如何配置 Paperless-ngx OCR
Paperless 使用 OCRmyPDF 和 Tesseract 執行本地 OCR。PAPERLESS_OCR_LANGUAGE 以 + 連線要識別的語言;PAPERLESS_OCR_LANGUAGES 使用空格分隔的包名字尾,在 Docker 中安裝額外語言。已核實映象的文件說明預設包含英語、德語、義大利語、西班牙語和法語。
若文件包含英語和土耳其語,修改 docker-compose.env:
PAPERLESS_OCR_LANGUAGE=eng+tur
PAPERLESS_OCR_LANGUAGES=tur
PAPERLESS_OCR_MODE=auto
PAPERLESS_TASK_WORKERS=1
PAPERLESS_THREADS_PER_WORKER=1執行 docker compose up -d webserver 重建應用,再測試掃描樣本。額外語言安裝依賴普通容器初始化流程,官方禁止將該選項與 rootless 覆蓋配置同時使用。包名與 Tesseract 語言程式碼可能不同,中文變體尤其需要核對。
在 v3.3.4 中,auto 會在嵌入文字足夠時跳過 OCR,並處理純圖片 PDF。redo 嘗試替換現有識別層;force 會將頁面光柵化,可能增大檔案;off 關閉 OCR。切換前請閱讀配置參考。Tika 和 Gotenberg 用於可選的 Office/.eml 轉換,並非普通掃描 PDF 的強制依賴。需要時採用官方 -tika 模板,並增加記憶體預算。
如何自動匯入文件
從主機繫結掛載的 consume 目錄可接收掃描器上傳或傳輸完成的檔案,成功處理後檔案會從入口目錄刪除。確保應用 UID 有讀取和刪除權限。先上傳到暫存目錄,再把完整檔案在同一檔案系統內移動到入口,可避免匯入尚未寫完的檔案。
如果 NFS/SMB 無法可靠提供 inotify,在 docker-compose.env 設定當前有效的 PAPERLESS_CONSUMER_POLLING_INTERVAL=10,每十秒輪詢。PAPERLESS_CONSUMER_STABILITY_DELAY 控制檔案需要保持不變的時間。請核對對應版本的配置文件,不要照抄舊的輪詢變數名。
郵件賬戶和處理規則也可匯入附件。限制郵箱權限,並在允許刪除或移動郵件前檢查規則。標籤、往來單位、匹配規則與工作流可以分類文件,但信任自動化前應檢查結果。n8n 工作流屬於可選整合,應使用權限受限的 API 身份。consume 是匯入佇列,不是備份。
如何備份 Paperless-ngx
請參考官方管理文件。文件匯出器包含原件、歸檔檔案、縮圖、後設資料/設定和資料庫內容,但不包括 API 令牌。Compose 和環境配置需另存。data 中的輔助搜尋資料可以從恢復的文件和後設資料重建;採用卷備份時,也應覆蓋 data、媒體檔案及一致的資料庫備份。
使用匯出器前,暫停掃描器、郵件與自動化入口,停止使用者編輯,等待所有處理任務結束。整個匯出期間保持維護視窗,先準備足夠臨時空間:
cd /opt/paperless
set -euo pipefail
umask 077
BACKUP_LABEL="$(date -u +%Y%m%dT%H%M%SZ)"
docker compose exec -T webserver document_exporter "../export/$BACKUP_LABEL"在可信恢復電腦上執行 age-keygen -o recovery-key.txt 生成 age 金鑰,並在該電腦保護私鑰。在 VPS 上將下面的接收方替換成對應的 age1... 公鑰,使用你控制的異地 SSH 目標:
AGE_RECIPIENT='REPLACE_WITH_YOUR_AGE_PUBLIC_RECIPIENT'
install -d -m 0700 /var/backups/paperless
BACKUP_FILE="/var/backups/paperless/$BACKUP_LABEL.tar.age"
set -euo pipefail
tar -C /opt/paperless -cf - "export/$BACKUP_LABEL" \
docker-compose.yml docker-compose.env .env \
| age -r "$AGE_RECIPIENT" -o "$BACKUP_FILE"
sha256sum "$BACKUP_FILE" > "$BACKUP_FILE.sha256"
scp "$BACKUP_FILE" "$BACKUP_FILE.sha256" backupuser@BACKUP_HOST:paperless/檢查每條命令的退出狀態,並核實遠端校驗和後再認定備份完成。透過同樣的保護流程儲存 /etc/caddy/Caddyfile 和額外配置。匯出成功後恢復入口。管道失敗需要排查,空檔案或不完整檔案不能用於恢復。在獨立儲存上設定保留策略,並保護臨時的未加密匯出。合同、發票和身份證件等敏感文件應限制存取,並加密備份。
在另一臺新主機上,以相同 Paperless 版本、空資料庫和空 media/data 卷測試恢復。還原已審查的配置,在可信電腦解密歸檔(age -d -i recovery-key.txt -o recovery.tar BACKUP.tar.age),檢查內容後透過 SSH 傳入新專案的私有目錄。不要覆蓋解壓到執行中的安裝。把帶日期的匯出放入新的 export 目錄,保留 UID/GID 存取權限,啟動新資料庫與訊息代理,然後執行:
docker compose up -d db broker
docker compose run --rm webserver document_importer ../export/EXPORT_LABEL
docker compose up -d
docker compose exec webserver document_index reindex替換 EXPORT_LABEL,必須在建立新管理員之前匯入,因為匯入器要求空安裝。檢查登入、文件數量、原件/歸檔校驗和、標籤、搜尋及一次新匯入。重新生成 API 令牌。在還原驗證透過前保留舊伺服器與 DNS。該方法避免複製執行中的 PostgreSQL 資料目錄;服務商快照本身不能保證資料庫與媒體檔案一致。
Paperless-ngx 與其他文件管理工具對比
| 工具 | 部署複雜度 | OCR | 組織方式 | 硬體規劃 | 適用場景 |
|---|---|---|---|---|---|
| Paperless-ngx | 應用、資料庫與訊息代理 | 整合 OCRmyPDF/Tesseract | 標籤、往來單位、工作流 | OCR 併發與媒體容量 | 個人/家庭可搜尋檔案 |
| Mayan EDMS | 更多管理與工作流配置 | OCR/文字識別 | 版本、權限、工作流 | 評估部署方式和任務程序 | 需要文件流程控制的團隊 |
| Docspell | REST 服務和處理元件 | 自動提取文字/OCR | 標籤和後設資料 | 處理任務與 JVM 服務 | 自動匯入與整理 |
這裡比較的是功能與部署方式,不是相同硬體上的效能測試。選型前閱讀各專案當前安裝指南,更豐富的工作流功能可能值得額外管理投入。
安全與隱私
使用 HTTPS、強密碼、內建雙因素驗證與離線恢復碼。普通使用者只授予必要的文件權限,超級使用者權限留給管理操作。自託管密碼庫可以幫助管理認證資料,但也需要獨立保護與備份。
把資料庫與訊息代理限制在 Docker 私有網路內。保護 SSH、服務商賬戶、備份認證資料和配置檔案,避免公開不受限制的掃描共享。審查固定版本的應用釋出和主版本遷移說明,升級前匯出,定期更新 Docker 與作業系統。PostgreSQL 主版本升級需要單獨遷移,不能透過修改映象標籤直接遷移資料目錄。
VPS 不會讓敏感文件天然安全。伺服器或服務商賬戶被攻破後,檔案可能洩露。明確還原目標並測試異地還原。對於私人家庭檔案,透過 VPN 或可信網路存取,可能比不受限制的公網開放更合適。
Paperless-ngx 常見問題
| 問題 | 安全診斷方向 |
|---|---|
| 容器無法啟動 | 檢視 docker compose ps、近期日誌、環境語法和映象架構;不要刪除資料卷 |
| OCR 不執行或結果不準 | 檢查已安裝語言、所選程式碼和模式;用不含敏感資訊的掃描樣本測試 |
| 文件未出現 | 檢查入口權限、任務佇列和處理結果;重新上傳前排除重複檔案 |
| PDF 匯入失敗 | 閱讀任務錯誤;對副本檢查加密、損壞、頁面和影象大小 |
| PostgreSQL 連線失敗 | 檢查資料庫狀態、服務主機名及密碼一致性;不要重置現有資料庫 |
| Redis/Valkey 連線問題 | 檢查代理狀態與 PAPERLESS_REDIS,不要透過公開 6379 解決 |
| 記憶體不足 | 檢視 docker stats、核心 OOM 日誌和併發;減少任務或增加記憶體 |
| 磁碟已滿 | 檢視 df -h、df -i 和匯出增長;移動審查過的備份前先保留原件 |
| 權限錯誤 | 檢查 consume/export 和外部媒體卷的 UID/GID;不要允許所有人寫入 |
| 代理上傳失敗 | 檢查每層代理/CDN 的大小與超時限制及應用日誌;測試較小的非敏感 PDF |
| 搜尋遺漏現有檔案 | 檢查 OCR 成功狀態和任務日誌;備份後執行文件中的 document_index reindex |
哪種 VPS 更適合 Paperless-ngx?
本次比較中,LightNode Agency 的推薦套餐已核實月費參考最低,為 $14.70,並提供靈活按小時計費。這不包含未核實的 Hetzner/Contabo 報價、地區附加費和備份/擴容費用。它的 50GB 磁碟只適合實測增長仍可容納的小型個人檔案。
日常 OCR 可評估 2 vCPU/4GB,並控制併發。Vultr 基礎地區 $20 套餐含 80GB,DigitalOcean 與 Akamai 的 2 vCPU/4GB/80GB 檔均為 $24。頻繁掃描或小型企業可能需要 4 vCPU/8GB、存取限制和明確恢復計劃。無論選擇哪家服務商,大型文件庫都需要媒體卷報價及匹配的異地保留容量。
常見問題解答
Paperless-ngx 應該選擇哪種 VPS?
依據實測 OCR 負載與可用儲存選擇。LightNode Agency 是本文已核實推薦檔中月費參考最低的選項;Vultr、DigitalOcean 和 Akamai 在更高標價下提供更多內建磁碟。
Paperless-ngx 需要多少記憶體?
本文估算小型文件庫謹慎測試可從 2GB 起步,日常 OCR 建議評估 4GB,已考慮 Linux 和核心容器。這是容量建議,不是統一的官方最低配置。
2GB VPS 能執行嗎?
可以在低併發、較小檔案條件下評估。大型掃描件、額外語言與轉換服務可能超出記憶體,需要監控實際峰值。
必須使用 PostgreSQL 嗎?
不是,也支援 SQLite 與 MariaDB。官方建議新安裝優先使用 PostgreSQL,本文采用對應模板。
必須使用 Redis 嗎?
後臺處理需要 Redis 相容訊息代理。已核實的官方模板使用 Valkey,而非限定 Redis 產品。
文件會佔多少儲存?
計算原件、可能存在的歸檔副本、輔助資料和執行餘量。需要測量代表性匯入,僅憑文件數量無法預測磁碟使用。
自託管 Paperless-ngx 免費嗎?
專案採用 GPL-3.0 開源許可,但計算資源、可用儲存、獨立備份與管理仍有成本。
能識別掃描 PDF 嗎?
可以,本地使用 OCRmyPDF/Tesseract。正確的語言包和足夠處理資源會影響結果。
應該怎樣備份?
在無活動的維護視窗使用官方匯出器,另存配置,加密異地副本,並在相同版本的空安裝中測試匯入器。
可以部署到 Ubuntu 嗎?
可以。受支援的 Ubuntu 配合 Docker Engine 與 Compose 外掛,可以執行官方容器棧。Web 埠應保持私有,透過 HTTPS 代理存取。
小型檔案應先測量檔案,使用保守 OCR 設定。日常工作可從 2 vCPU/4GB 預算開始,根據監控增加 CPU 或記憶體,併為原件和處理副本一起購買儲存。從一開始,就把經過還原驗證的加密備份納入月度預算。