Field Notes

短文、散文、読書メモ、コード、リンク、調査メモを時系列で残すための個人テキストサイト。

Tags

Latest Field Notes

私にとっての「デジタルも使いよう」 2026-09-18 · #think

※この記事はニュースレターから移設し、一部を書き直しをしています。

温度差がある

「デジタルも使いよう」は、3月に始めてから半年近く、数百人の方に訪れていただき、購読してくださった方もいます。 私もそうですけど、無料でも購読ボタンを押すのは気に入らないと押せないからです。本当にありがとうございます。

実はニュースレターの配信は今回が初めてではありません。2023年前後にも1年以上配信していました。そのときにも、どこか同じような感覚がありました。

私が発信している内容と、読んでくださる方が求めているものには、どうやら少し温度差があると感じています。

これは文章の書き方や、媒体としての届け方にも原因があるかもしれません。

文章の書き方よりも内容でしょうか。 儲かる儲からないといった刹那的な内容でもありませんし、デジタルで括っても興味の範囲は人によって異なりますからね。

もう1つ。

以前の2023年では新登場だったNotesも、だいぶ様変わりした印象です。今回は積極的に使いました。

当時はSubstack自体がマイナーで、Notesは全く使っていませんでしたし、リンク問題で旧Twitterと対立していたのを思い出すくらいです。

Notesが向かっている方向に思うことは皆さんとおよそ一緒です。本来、Xとは役割が違うはずのNotesが、X的な方向性を感じているからです。

当初、Notesというものは、ニュースレターを補完する短い発言や、後から記事に引用できるメモのような役割を期待していましたし、勝手に想像していました。ところが実際には、私自身もインプレッションや「いいね」を気にして、ほぼSNSとして使うようになっていました。

私の期待が高過ぎるのか、ここも温度差を感じています。

不定期配信からブログへ戻る

半年近く試して分かったことがあります。 「週1回配信する」というこれまでのニュースレターの仕組みは、私の考えていたプラットフォームだったのですが、時代には合っていないみたいに感じます。 私自身がまだ十分な形を作れていないとも言えます。

そこで、当初に掲げていた「週1回+α」の定期配信をやめるとなると、このFieldNoteと同じことになります。すみません。今後は不定期に、ここに書くのは続けたいと思います。

なお、短い発信はXにしていきます。Xはまだ再開したばかりでROMしています。

このブログでは、実際に作ったものや試したことをお伝えしつつ、形にして提供することに少しずつ重心を移してみます。

変化していく

ニュースレターもデジタルツールの一つです。私の中では道具に過ぎません。

道具もそうですよね。上手く使えていないなら、使い方を変えることで良くなることもあります。 それでも駄目な時は、道具を変えることも検討します。

もちろん、その過程で自分自身も変わっていきます。

Substack自体も変化しています。 その変化が世の中の需要に合っているとしても、すべての人に合うとは限りません。逆に、今は合わなくても、また変化すれば合うこともあるでしょう。

だから、 自分だけを変えようとしない。 環境と道具だけを変えようともしない。 それぞれの変化を見ながら、少しずつ合わせていく方が、より良いと思いませんか?

それが私にとっての「デジタルも使いよう」です。

Permalink

Linuxの業務利用はなかなか広がらない 2026-09-18 · #business

cb707f7e-154e-40cf-aff3-f7c3d88fb1f5_1280x720

日本では業務用デスクトップとしてLinuxが広がりにくい一方で、海外、特にヨーロッパではOSSやLinuxを試す動きが見られます。ただし、運用面の課題から元に戻るケースもあり、定着しているわけでもありません。こうした違いも踏まえて、Linuxの業務利用について触れてみます。

Linuxを業務で使用できない理由は様々ある

導入が困難な企業・現場

Linuxにすべてリプレイスするわけにはいかないのは理解できます。企業として所帯が大きいか、支社・営業所・店舗など現場の数が多いとより難しいでしょう。 コスト面で古いPCを使い続ける状態であれば、一部をリプレイスしても良いのではないかと感じますが、なかなか難しいのが実情です。

意思決定者がWindowsに慣れているため変わらない、という保守的な印象を私は持っています。

Windows環境でもLinux環境でもコストはかかります。 Linux搭載PCにすれば良いわけではありません。移行には課題も多く、慎重な検討が必要です。

Microsoft Officeが動かないから

多くの企業ではMicrosoft Office製品が中心です。皆さんの会社もデスクトップ版Microsoft Officeは基本的にWindows版でしょう。 しかし、アプリケーションというより、人的要因の側面が大きいと感じます。

現在はMicrosoft 365のWeb版があります。閲覧と簡単な編集であれば過不足はないと思います。

LibreOfficeといった代替系アプリケーションもあります。 これこそ癖があって導入したくないのは理解できます。ただ、再現度はかなり上がっていますから、用途によっては困らないと思います。

Google製スプレッドシートから表計算を始めた人は、Excelは使えても敬遠したくなりませんか。

デバイスドライバが一部は未対応

Linux環境で一番難儀するのはデバイスドライバです。 Windows用に開発されるデバイスが多く、なかなかLinux用が存在しないパターンに遭遇します。

デバイスドライバは基本的なものは概ね対応をしています。特殊になればなるほど存在しないケースも多いです。

業種によっては致命的になりかねないため、業務では使えないとなっているでしょう。 これは致し方ないこととはいえ、メーカーもLinux用を配布して欲しいですね。

フォントが異なるから

WindowsともMacともフォント体系は異なります。 画面上のUI表現はもちろんですが、印刷に関してはやや不利です。

印刷機能全般がLinuxでは弱い部分です。これはデバイスドライバとの関係もあります。

これも業種によってはLinuxを選べない要因かもしれません。

Windowsと同じフォントは導入できますが、ライセンスを購入することになります。追加費用はかかります。 とはいえ、フリーのフォントも充実しているためGoogleのNotoフォントシリーズでも、単なるフォントだけなら十分なんですけどね。

ファイルパスが違うから

WindowsはCドライブ、Dドライブとなりますが、Linuxは/(root)で、まさに根本から違います。 システムのディレクトリ構造も違和感があるでしょう。

c:¥ではなくc:/といった違い。

とはいえ、これはMacも同じようにファイルパスはWindowsとは異なります。

コマンド(CLI)が出てくる

WindowsでもPowerShellやコマンドプロンプトがあります。しかし、ほとんどの人は意識せずに使っています。 LinuxだとCLI環境で操作する機会が頻繁に登場します。ここは慣れが必要な部分です。

最近はWindowsにもWSL(Windows Subsystem for Linux)がありますから、ここからLinuxに触れる人も多くなっていることでしょう。

ファイルパスは根本的に異なります。 Windows側のファイルを扱うのには/Program\ Files/のようにスペースはバックスラッシュでエスケープしたり異なります。

実は導入できる環境かも?

社内WebアプリケーションがLinux環境

デスクトップ用途でない裏方のシステムであれば、自社製も業者発注も、そもそもLinuxで動いているパターンがあります。特にWebアプリケーション系はそうでしょう。

別にWindowsクライアントでも良いのですが、Webアプリケーションを使うだけならLinuxでも良いわけです。

企業規模が小さいほどオンプレミス状態だったのも、コストに見合わず減少しています。

よく社内で使うアプリケーションや作業が何かによりますが、ほとんどはOSに依存していないかもしれません。

シンクライアント端末にする

私の経験上、宿泊業のホテル管理システム(PMS)もシステムだけではなく、Excelといったアプリケーションもシンクライアント端末で操作する形式は昔から導入されています。 スペックはそこまで求められません。とても小さいPCで良く、大抵はWindows OSですがLinuxでも問題ありません。

チェーン店は本部一括管理なので、この形式がよく合います。現場のシンクライアント端末にはほとんどデータが残りませんからね。

中には現場ごとにサーバを設置して、シンクライアントとして利用することもあります。大きい組織ほどインターネット経由でしょう。

難点はネットワークが遮断されるとシステムが使えないため、現場の業務が停止するため致命的です。ホテルでいえばチェックインも会計処理もできなくなります。

シンクライアントの構築もいくつか種類がありますから、障害も想定した構築になるでしょう。

リモートPCにする

シンクライアント端末までいかなくても、Windowsサーバが社内にあれば、リモートデスクトップで使えます。 難点は1台を複数人で使うため、個別の設定ができないことです。

現実的ではありませんが、これもクライアント端末のOSがLinuxでも操作感はWindowsです。

OSに左右されない時代

Webサービスが多い

会計処理も昔はローカル管理だったのが、今やクラウドも当たり前の時代です。専用のアプリケーションが確実に動作するであろうWindowsでも構わないのですが、選択肢が増えたので組織が小さくなれば、なおさら選びやすくなっています。

私はメインをMacにしてからWindows歴を超えました。 最初は仕方なくといった部分も多少あって移行したのです。現在は慣れました。

特定のアプリケーションだけWindows環境を用意しなくてはならない時代が長く続きました。今はもう自宅でもほとんどWebサービスがメインですから、OSの違いは大きな問題ではありません。

逆にWindowsはもう十何年と使っていませんが、昔取った杵柄でアプリケーションを使うには抵抗がありません。自宅で使いたいかと言われれば、積極的に使いたいとは思いません。

人の問題

技術的な問題よりも、Linuxに対する情報不足から敬遠されていると感じます。シンクライアント端末ならば、OSが違ってもアプリケーションが変わるわけではないです。業務で使う操作だけでよく、余計な操作は必要ないからです。

これがデスクトップ用途としてWindowsの置き換えと考えると困惑します。イライラするのも理解できます。

ファイルシステムも操作も何もかもまるで根本から異なると感じるからです。(実際に異なりますが)

  • Linuxについて知らない
  • 未知のものは怖い
  • Windowsではない

スマホでも、iPhoneとAndroidで異なりますから、片方しか使わない人がいるのと同じです。 Linuxだとしても同じような感覚なんですが、あまりにも知られていないから別枠なんでしょうね。

お薦めのLinuxディストリビューション

9c1884e3-8ad6-42f4-af5d-ed9c798d90db_1527x859

Linuxといっても実際には種類が多く、正確には「Linuxディストリビューション」と呼ばれます。これは、Linuxを実用的なOSとして利用できるようにまとめた配布形態を指します。

そもそも「Linux」はカーネル(kernel)を意味し、OSの中核となる部分です。これに各種ソフトウェアやライブラリ、ツールなどを組み合わせて、ひとつのOSとして構成されたものに名称が付けられます。

「Linuxディストリビューション = Linuxカーネル + OSとして動作させるためのソフトウェア一式」

61aa74bb-cbac-4e40-b194-dba05893acdd_597x324

これらは総称してLinuxと呼ばれることもあり、一般的にはOS全体(Windows / macOS / Linux)の一つとして使われます。そのため区別がつきにくく、個別にはDebianやUbuntu、Linux Mint、Red Hat Linuxといった名称で呼び分けます。

デスクトップ用途

Ubuntu

https://jp.ubuntu.com

最もシェアが多く、定番のディストリビューションになっています。 利用者が多いため情報が豊富で安心です。

Linux Mint

https://linuxmint-jp.net

UIが分かりやすく、余計な設定も少ない印象です。初学者にも最適です。

Fedora

https://fedoraproject.org/ja/

新しい技術を早く使えるためか、開発用途と相性が良い。中級者向け。

サーバ用途

Debian

https://www.debian.org

とにかく安定重視で長期運用を考えるなら最適。 余計なものが入らない。様々なディストリビューションの派生元となっています。

Ubuntu Server

デスクトップ同様に実務バランスが最強。 やはり情報量が豊富にあります。サーバでも広く使われています。

Rocky Linux(または AlmaLinux)

https://rockylinux.org https://almalinux.org

旧CentOS系の後継。企業用途・商用に強い。RHEL互換でこちらも安定運用向きです。 RHELから枝分かれしたとき、2つは考え方の違いが中心で、実用上の差はほとんどありません。Rocky Linuxの方がRHELを忠実に再現しています

デスクトップ / サーバ用途で迷ったら、Ubuntu / Ubuntu Server、またはLinux Mint / Rocky Linuxがお薦めできます。 実際にインストールして使ってみてください。操作感覚や見た目は好みもありますからね。

若い人やPC経験が浅い人へ

Linuxの情報と使用経験は、Linuxに触れていないと理解し難いと思います。特に日本ではLinuxに馴染みがないのは今も昔も同じです。

今からどの世代もLinuxへ移行するとは思いませんし、学習コストを考えると非現実的です。

しかし、現在まだ若い人や、年齢問わずPC経験が浅い人は、Linuxをサーバでもデスクトップでも触ってもらいたいですね。

私は思うのです。もしWindowsの操作や使いこなしに自信がないなら、別にLinuxでも同じような気がしています。

むしろ、長い時間をかけてWindowsの操作やExcelといったツールを使いこなしてきたなら、今からLinuxは酷な話に思えます。それだけの経験があればLinuxも無理なく使えると思いますけどね。

3f68438e-d71b-4a5b-b0b2-fae404297ab7_943x531

Linuxの何が良いのかというと、OSとして無料なわけですから、余っているPCでも気軽に触れられるところです。 練習とは言いませんが、触れることはWindows/macOSよりも敷居は低いはずです。

コマンド操作のCLIはとても難しく感じるのは無理もありませんが、デスクトップ用途なら、WindowsやmacOSのように大部分をマウスだけで操作できるようになりました。

OSS(オープンソースソフトウェア)もたくさんあります。使いたいソフトウェアも見つかると思います。

Linuxは特別なものではなく、選択肢の一つに過ぎません。最初から理解しようとせず、余っているPCで一度触れてみる程度で十分です。

使える範囲で使えばよく、合わなければ無理に続ける必要もありません。 費用がかからないため、そうした軽い試し方ができる点こそ、Linuxの一番の利点だと思っています。

Permalink

標準FWからCrossPointJPに入れ替えた 2026-08-20 · #gadget

2026年8月に購入した「Xteink X3」は、USBフラッシュがロックされていました。

CrossPointJPならではのファイル転送

CrossPoint系ファームウェアにはWeb UIを使ったファイル転送機能があります。CrossPoint JPも本家のフォークなのでこの機能を利用でき、ブラウザからだけでなくcurlコマンドでファイルを送信できます。

ファイル「daily_events.xtc」をmicroSDカードのルート直下に転送すると仮定した場合はこちら。 もし、直下ではなくてbooksフォルダに入れたいなら?path=/books にする。

curl -X POST "http://crosspoint.local/upload?path=/" \
  -F "file=@daily_events.xtc"

同じフォルダへなら複数オプションを指定すれば複数ファイルも指定できる。ただ、同じ転送先フォルダ。

curl -X POST "http://crosspoint.local/upload?path=/" \
  -F "file=@file1.xtc" \
  -F "file=@file2.xtc" \
  -F "file=@file3.xtc"

curlではファイルを指定して転送できる反面、そのままだと転送先が異なる複数ファイルや、拡張子で指定した一括転送などはできない。 これはシェルスクリプト(sh)と組み合わせれば実現できる。

for f in *.xtc; do
  curl -X POST "http://crosspoint.local/upload?path=/" \
    -F "file=@$f"
done

この辺はシェルスクリプトの範疇だから、普段は素直にcurl毎に実行してもいいと思う。

ただ、shなら変数が扱えるから、ファイルを変数にしておけば、後から変更するのも容易にできる。 決まっているなら、毎回curlコマンドを叩くよりこの方が簡単。

XTC="/path/to/daily.xtc"
EPUB="/path/to/book.epub"

# XTCはルートへ
curl -X POST "http://crosspoint.local/upload?path=/" \
  -F "file=@$XTC"

# EPUBは /books へ
curl -X POST "http://crosspoint.local/upload?path=/books" \
  -F "file=@$EPUB"

Xteink X3側でファイル転送モードにしないとサーバじゃないからダメで、勝手にプッシュ送信はできないのは忘れないでおきたい。

ファイル転送モード→ shを母艦で実行。

Permalink

Xteink X3 1st 2026-08-06 · #gadget

Xteink X3ホワイト

Xteink X3を買ってしまった。早速、青空文庫をUTF-8→ePub形式に変換して表示してみる。

青空文庫の人間失格

標準のファームウェアだと、フォントをシステム日本語にしないと漢字が表示されない。 ファイルが開いている状態で、左ボタンの右側決定を押すとメニューが出るから、最下部にあるフォントで選ぶ。

文字化け

システムフォント日本語

最新はX4 Proだけど、X3のホワイトに惹かれた。

ホワイトとは言っても、ライトグレーなので、電子ペーパーとマッチする色味。

リーズナブルな価格だと思う。 X3なら円安でも約11000円〜で買える。

新しいX4 Proもそこまで高くは感じない。

単純にX4 Proが上位機種とも言えないな。

xteink-compare

X3がポゴピンだから、X4 Proを買い増ししようと思う。X4 Proはタッチ式でもあり、一般的なE-inkリーダーと同じで小さいだけに感じるからX3より魅力的でもない。

公式サイトで買うと7日間はかかる。

Amazonでも公式が出品しているが、2日後には届く。

公式サイトだと割引があるけど、Amazonは大体は一定の実売価格。

どちらもメリットがある。

Permalink

Pi 4・5+Paperless-ngxで実用的な文書管理システムを作る 2026-07-21 · #実践

Raspberry Piも高くなりました。値上げと円安の影響で気軽に買えなくなりました。

もし古いPi 4の使い道に困っていたら、領収書や請求書などのPDFをOCRして書類管理に仕立ててはどうでしょう。

Zero2wやPi 3系ではスペック不足ですが、Pi 4かPi 5であれば充分な性能です。

私はPi 4が余っていなかったのでPi 5で構築しました。

paperless-13

検証環境
Model: Raspberry Pi 5 Model B Rev 1.0
MEM: 8GB
OS: Debian GNU/Linux 13 (trixie)
Kernel: 6.18.34+rpt-rpi-2712

Paperless-ngxとは?

Paperless-ngxは、紙をスキャンしたPDFや画像だけでなく、WordやExcelなどのOffice文書もテキスト抽出して一元管理できるオープンソースの文書管理システムです。

サーバーを自宅や社内に構築して運用できるため、文書をクラウドへ預けることなくローカル環境だけで完結することも大きな特長です。

プライバシーの観点からも安心ですね。

Webブラウザから検索・閲覧ができるのも利便性が高いと思います。

公式:https://docs.paperless-ngx.com/

github:https://github.com/paperless-ngx/paperless-ngx/tree/main

主な対応形式

・PDF(OCR対応)
・JPEG / PNG / TIFF(OCR対応)
・Word(.doc / .docx)
・Excel(.xls / .xlsx)
・PowerPoint(.ppt / .pptx)
・OpenDocument(.odt / .ods / .odp)
・テキスト(.txt)
・HTML
・メール(.eml)

この内、PDFとWord、Eccelを実際に取り込んで確認しました。 実用的ですよ。

おすすめのセットアップ方法

paperless-1

OSとして、通常のRaspberry Pi OSではなく、GUIのないliteが最適です。 Paperless-ngxで扱うファイルは、別のNASへ保存すると良いでしょう。ファイルサイズが大きくなるのと、操作はこれまた別のマシン(私はMac)なので、ファイルをPi 4や5の領域で直接扱うのは余計な設定が必要だからです。

  • Raspberry Pi 4または5
  • Raspberry Pi OS Lite 最新
  • microSD 32GB
  • Docker導入
  • 外部NASにデータ保存
  • SMB自動マウント
  • bind mountの確認
  • 公式compose.ymlを配置

OCRを実行するのも管理するのも、ディスクへ細かなアクセスが発生しますので、本来はSSDドライブ起動が望ましいです。 今回は利便性を優先してmicroSD起動で済ませました。 データはNASへ置くことにするので、容量は32GBでも足ります。

NASと連携させる

最初にRaspberry Piが単体で外部のNASを問題なくマウントできるところまで進めます。 実際にPaperless-ngxをDockerでインストールするのはまだ先です。 docker-compose.yamlにNASの領域をバインドマウントしたいからです。

このとき、Paperless-ngxで使うフォルダ名をそのままNASで作成します。

folder-means

paperless-2

NASの任意の場所へ手動でフォルダ作成します。 例えばpaperlessというフォルダの中に必要な3つを配置します。

paperless
├── consume
├── export
└── media

マウントするのは、この親であるpaperlessだけで済みます。

Raspberry Pi側でpaperlessフォルダを作り、これをマウントポイントとします。

sudo mkdir -p /mnt/paperless

mountコマンドを使い、最初は手動でマウントします。

sudo mount -t cifs //192.168.0.10/paperless /mnt/paperless \
-o username=xxxx,password=xxxx,uid=1000,gid=1000

NASのIPアドレスと作成したpaperlessまでのパス、NASへ接続するユーザー名とパスワードをそのまま入力します。 uidとgidは、インストールしたばかりならデフォルトで1000です。これは後ほどもこの1000で合わせて設定します。 分からなければid $USERコマンド。

fstabに追記して、次回から自動でマウントできるようにしておきます。

sudo nano /etc/fstab

//192.168.0.10/paperless  /mnt/paperless  cifs  username=xxxx,password=xxxx,uid=1000,gid=1000,_netdev,nofail,x-systemd.automount  0  0

オプション解説:

fstab-options

もしもパスワードを平文で残したくないなら、credentials=/root/.smbcredentialsに変え、新規作成した.smbcredentialsにusernameとpasswordを書きます。 更に権限をsudo chmod 600 /root/.smbcredentialsとすれば安心です。

username=xxxx
password=xxxxxxxx

自分しか使わないですし、外部に公開することもないので、私はいつも平文でfstabに書いています。

fstabに追記した後、sudo mount -aと実行後、一度再起動して自動マウントできているのか確認します。

Dockerのインストール

DockerでPaperless-ngxをインストールして構築します。 先にls /mnt/paperlessで自動マウントできているのか確認してから、実際にdocker-compose.ymlでバインドマウントさせます。

Docker自体のインストールは、過去に書いた記事を少し修正してありますので参考にしてください。

Raspberry Pi 4でDockerのインストール方法 2026年

Dockerのバージョン:

docker -v
Docker version 29.6.2, build dfc4efb

docker compose version
Docker Compose version v5.3.1

Paperless-ngxをymlで構築

公式が推奨している方法があります。

  • 自分のデータベースに合った docker-compose.*.ymlをダウンロードし、docker-compose.yml にリネーム
  • docker-compose.envと.envも同じディレクトリへ配置
  • 自分の環境で必要な箇所だけ変更

本記事では保存先だけをNASに合わせて変更します。

なお、新規インストールではPostgreSQL版が推奨されています。

今回はhttps://github.com/paperless-ngx/paperless-ngx/tree/main/docker/composeにあるdocker-compose.postgres-tika.ymlを使いました。

WordやExcelの文書も使いたいなら、Apache Tika(Office文書などのテキスト抽出)とGotenberg(Office文書をPDFへ変換)が必要だからです。

Docker Compose v2推奨名「docker-compose.yml」にリネームしてダウンロードしておきます。

cd ~/paperless-ngx
wget -O docker-compose.yml https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres-tika.yml

同じく、docker-compose.envと.envもダウンロードしておきます。

wget https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env
wget https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env

同じフォルダに3つのファイルを配置すればOKです。

── paperless-ngx
   ├── docker-compose.env
   ├── docker-compose.yml
   └── .env

docker-compose.ymlの編集

ダウンロードしたymlの中で変更するのは、webserver:volumesと、最後のvolumesのmediaを外すだけです。 バインドマウント先はそれぞれ/mnt/paperlessにします。

    volumes:
      - data:/usr/src/paperless/data
      - /mnt/paperless/media:/usr/src/paperless/media
      - /mnt/paperless/export:/usr/src/paperless/export
      - /mnt/paperless/consume:/usr/src/paperless/consume

mediaはNASへ保存するために外した。

volumes:
  data:
  dbdata:
  redisdata:

/usr/src/paperless/dataはそのままでOKでしょう。 中身はインデックスや各種内部データなので、直接ユーザーが利用することはないからです。

日本語の設定

WebUIはシステム言語を使用してくれるため、日本語表示になります。 しかし、OCRの読み込みは言語設定しないとなりません。

設定はdocker-compose.env に以下を最下段に追加するだけです。

PAPERLESS_OCR_LANGUAGE=jpn
PAPERLESS_OCR_LANGUAGES=jpn

確認はdockr起動後、以下コマンドの結果通り、jpnが追加されているかで確認できます。 upで起動した後に一度確認しておくと良いでしょう。

docker compose exec webserver tesseract --list-langs
List of available languages in "/usr/share/tesseract-ocr/5/tessdata/" (7):
deu
eng
fra
ita
jpn
osd
spa

dockerで起動

準備ができたら、dockerのコマンドで実行するだけです。pullした後にupです。

docker compose pull
docker compose up -d

※pull実行の途中でDNSタイムアウトした場合、名前解決が正常ならDockerを再起動(sudo systemctl restart docker)して再実行します。

操作はWebブラウザのみ

WebUIですべて操作できます。

http://ラズベリーパイのIPアドレス:8000

paperless-3

初回だけユーザーアカウントを作成します。 ここで設定するのはスーパーユーザー権限なので、複数人で使いたい場合は、ログインした後にユーザーを個別に作成してください。 私のように個人で利用するだけなら、最初に作成したユーザーで使い続けても良いと思います。

文書ファイルの取り込み

文書を取り込むのも簡単です。 ダッシュボード右上にある”ドキュメントのアップロード”をクリックしてファイルを選ぶか、そこにファイルをドラッグ&ドロップするだけです。

paperless-4

右下に進捗バーが表示され、ファイルサイズによりますが数秒で取りこめます。

paperless-6

取り込まれたら、クリックして開いて確認できます。

paperless-7

ログで確認

早速、厚生労働省が発行したPDFで、ファイル名を「高額介護サービス費44400yen.pdf」としたものを取り込ませました。

paperless-8

その時のログは、OCRができないメタデータに警告が出ていますが、それはその通りのことだからOKです。 インデックス化もされ、成功したとあります。

メニュー項目にあるログ:

[2026-07-18 02:49:26,386] [WARNING] [ocrmypdf._validation] The output file size is 1.62× larger than the input file.
Possible reasons for this include:
--deskew was issued, causing transcoding.
PDF/A conversion was enabled. (Try `--output-type pdf`.)
[2026-07-18 02:49:26,389] [DEBUG] [paperless.parsing.tesseract] Using text from sidecar file
[2026-07-18 02:49:26,389] [DEBUG] [paperless.consumer] Generating thumbnail for 高額介護サービス費44400yen.pdf...
[2026-07-18 02:49:26,393] [DEBUG] [paperless.parsing] Execute: convert -density 300 -scale 500x5000> -alpha remove -strip -auto-orient -define pdf:use-cropbox=true /tmp/paperless/paperless-_r3b61fw/archive.pdf[0] /tmp/paperless/paperless-_r3b61fw/convert.webp
[2026-07-18 02:49:28,453] [INFO] [paperless.parsing] convert exited 0
[2026-07-18 02:49:28,458] [DEBUG] [paperless.classifier] Document classification model does not exist (yet), not performing automatic matching.
[2026-07-18 02:49:28,461] [DEBUG] [paperless.consumer] Saving record to database
[2026-07-18 02:49:28,461] [DEBUG] [paperless.consumer] Creation date from st_mtime: 2026-07-18 02:48:57+00:00
[2026-07-18 02:49:28,559] [DEBUG] [paperless.index] Index updated for document 1.
[2026-07-18 02:49:28,771] [DEBUG] [paperless.consumer] Deleting original file /tmp/paperless/tmp1qz7rhz2/高額介護サービス費44400yen.pdf
[2026-07-18 02:49:28,772] [DEBUG] [paperless.consumer] Deleting working copy /tmp/paperless/paperless-ngxzmb_nuyk/高額介護サービス費44400yen.pdf
[2026-07-18 02:49:28,779] [DEBUG] [paperless.parsing.tesseract] Deleting directory /tmp/paperless/paperless-_r3b61fw
[2026-07-18 02:49:28,779] [INFO] [paperless.consumer] Document 2026-07-18 高額介護サービス費44400yen consumption finished
[2026-07-18 02:49:28,784] [INFO] [paperless.tasks] ConsumeTaskPlugin completed with: Success. New document id 1 created
[2026-07-18 02:49:55,612] [DEBUG] [paperless.classifier] Document classification model does not exist (yet), not performing automatic matching.
[2026-07-18 02:49:55,897] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/illustrator/1.0/}StartupProfile: Basic CMYK. Error: 'http://ns.adobe.com/illustrator/1.0/'
[2026-07-18 02:49:55,898] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/illustrator/1.0/}CreatorSubTool: Adobe Illustrator. Error: 'http://ns.adobe.com/illustrator/1.0/'
[2026-07-18 02:49:55,898] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}NPages: 1. Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:49:55,898] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}HasVisibleTransparency: True. Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:49:55,899] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}HasVisibleOverprint: False. Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:49:55,899] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}MaxPageSize: . Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:49:55,899] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}PlateNames: Cyan Magenta Yellow Black. Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:49:55,900] [WARNING] [paperless.parsing.tesseract] Error while reading metadata {http://ns.adobe.com/xap/1.0/t/pg/}SwatchGroups:
                  . Error: 'http://ns.adobe.com/xap/1.0/t/pg/'
[2026-07-18 02:51:12,833] [DEBUG] [paperless.classifier] Document classification model does not exist (yet), not performing automatic matching.

OCRされた内容を確認

結論から言うと、文書中でしか使われていない言葉で検索してみたらちゃんとヒットしました。成功です。

OCRされたメタデータの内容を見ると、およそ問題ないレベルです。 元のPDFがイラスト調になっている部分は認識が難しいものの、文章はほとんどは読み込めている結果でした。

この中の文字を検索で拾えれば文書管理としては問題ありません。

OCRされた文章(クリックで開く)
ここ 利用分/がら
医サビバ費(の

加

暫家度紀の見直 (され4ま19』

〇介護サービスを利用された際は、自己負担割合に応じた利用料を負担していただいております。

高額介護サービス費とは、 1ヵ月に支払った利用者負担の合計が負担限度額を超えたときは、

超えた分が払い戻される制度です。一般的な所得の方の負担限度額は月額 44.400 円です。
令和3年8月からは、負担能力に応じた負担を図る観点から、一定年収以上の高所得者世帯に

ついて、人負担限度額の見直しを行います。

どのような改正がおこなわれるのですか?

し] 医 医療保険制度の高額療養費制度に合わせ、8月1日以降に利用されたサービス分より一定年収以上の

高所得者の負担限度額を以下のとおり見直します。

区 分

課税所得 690 万円 (年収約 1.160 万円) 以上

課税所得 380 万円 (年収約 770 万円) ~ 課税所得 690 万円
(年収約 1.160 万円) 未満

時 ※

市町村民税課税一課税所得 380 万円 (年収約 770 万円) 未満
世帯の全員が市町村民税非課税

前年の公的年金等収入金額オすその他の合計所得金額
合計が 80 万円以下の方等

生活保護を受給している方等

見直しの対象となるケースは、どのような場合ですか?
し| 介護

がいる場合が対象となります。

負担の上限額(月額)

140,

93,

44.
24.

24,
15,

15,

100円 (世帯)

000円 (世帯)

400円 (世帯)
600円 (世帯)

600円 (世帯)
000円 (個人)

000円 (世帯)

サービスの利用者又は同一世帯に課税所得 380 万円 (年収約 770 万円) 以上の 65 歳以上の万

医療費・介護サービス費ともに高額で、高客介護合算療養費制度 (年間の医療費・介護サービス費

が負担限度額を超えた場合に払戻しを行う制度) により医療費・介護サービス費の払い戻しを受け

ています。 今回の見直しで負担が増えることはありませんか?

し] 高額介護合算療養費制度等の支給要件や負担上限額に変更はないため、収入や医療・介護

等が同じであれば、実邊的な負担はこれまでこと同額こなります。

(厚生働省

サービス費

印刷された請求書PDF

次はiPhoneのカメラで撮影したPDFを読み込ませてみました。 iPhoneだとドキュメントの撮影モードがあります。

こちらは請求書です。個人情報は私がモザイクをかけています。

paperless-10

こちらも日付だったり、請求者名や病院といった言葉から、請求書として検索が可能になりました。 先ほど同様に、色とか罫線といった部分が多いと上手く読み込めないものの、文章の部分などは認識精度が高いです。

手書きの領収書PDF

更に手書きの領収書もiPhoneで撮影してPDFにして試しました。 古書店で購入した際の領収書です。

paperless-12

これが精度は一番悪かった。 なんとか読み取り内容に店名があり、ファイル名に金額も入れたので検索できそうです。これで問題ないと判断します。

OCRされた内容も変更できますが、メモも保存できるのでスキャンされた以外のことも追記できます。

paperless-11

メモを活用すれば、大抵は回避できると思いました。

Excel文書

次はPDFではなく、Excelのxlsx形式のファイルです。

Excelで作成した文章は完璧ですね。 グラフのタイトルまでちゃんと読み取れています。

paperless-14

Word文書

Wordのdoc形式にも試します。 LibreOfficeなどのods形式にも対応しています。

paperless-15

このようにWord文書も完璧でした。 これなら何で検索してもきちんとヒットするでしょう。

検索して絞り込めるかが大事

実用する際、たくさんあるPDFの書類から目的の書類が探せれば用は済むので、検索してヒットすればあとは中身を開けば良いと思います。

どうしてもOCRの認識精度に目が行きがちですが、別に完璧ではなくても良い運用です。 実際、OCRとしてはそれなりに拾っていますから、自分でキーワードやメモを付ける必要もなく絞り込めると思います。

あくまでも絞り込んで該当する文書が見つかればそれでヨシという実用度は満たしていると思いました。

macOSとの違い

macOSには標準でSpotlightがありOCRは実行されています。初回はかなり時間がかかるのですが、裏でずっと動いている感じです。

今だと、Apple IntelligenceもM4 Macでは使えますから、今回のPaperless-ngxと同等のことが可能です。 恐らく今後は、Siriも連携して「去年の介護保険の書類を探して」と話しかければ済むことになるでしょう。

では、Paperless-ngxが要らないかというと、そうでもありません。

シンプルな文書管理であるPaperless-ngxは、macOSのSpotlightとは違い、発信元、タグ、ドキュメントタイプ、日付、カスタムといった項目で管理できます。 何よりも自分が登録した文書ファイルだけをWeb UIで一元管理できるのはシンプルに思えます。 元ファイルのPDFなども保存場所が1ヶ所になるため分かりやすい。

保存場所をNASにしたので、別のPCやiPhoneから使えるうえ、Macの電源ONは関係ないのが便利です。 省電力であるRaspberry Pi を電源1つで放置できるのも気楽です。

個人や小さな組織でも実用的

使ってみて実感するのは、かなり実用的な動作です。

Web UIで一元管理できるため、Webブラウザだけで事足ります。 今回のようにNASへ保存するように連携すれば、複数のPCやスマホからでも閲覧できるからです。

更にPDFだけではなく、Wordで作成した議事録.docx、Excelで作成した備品一覧.xlsx、PowerPointで作成した研修資料.pptxなど、Office文書も扱えるため会社組織でも有効です。 管理者と閲覧ユーザーなど、権限の変更ができる点も複数人いる会社組織では重宝します。

私は個人利用なので管理者アカウント1つで運用しています。

今後に運用していく課題

手元にざっと1万以上のPDFファイルがあります。これを少しずつ保存していきたい。 ファイルの選別も同時にできるので良い機会だなと思います。かなり面倒ではありますが。

登録していく中で、少し課題が残っています。

  • タグをどう付けるか
  • ドキュメントタイプをどう分けるか
  • 発信元とされている項目を登録するか
  • カスタム項目をどう使うか
  • PostgreSQLのバックアップ方法

データベースにOCRのテキストなどが含まれるため、バックアップは仕組み化しておきたいですね。 データベースのバックアップ方法は別記事で紹介していこうと思います。

Permalink