ファイル配置と動作の仕組み
このページでは、本アプリケーションのトラブルシューティングや設定のバックアップ、アンインストール時に役立つファイル配置と、LoPiQ が軽量・高速に動作する技術仕様について説明します。
📂 各 OS でのファイル配置
LoPiQ をインストール・実行した際、システム上に以下のファイルおよびディレクトリが配置されます。設定のバックアップや手動でのクリーンアップを行う際の参考にしてください。
🍎 macOS 環境 (DMG パッケージからインストールした場合)
| パス | 区分 | 役割 |
|---|---|---|
/Applications/LoPiQ.app/ |
アプリケーション本体 | macOS 形式のアプリケーションバンドルです。実行バイナリおよび画面表示用の静的アセット(static/)がこの中に内包されています。 |
~/Library/Application Support/lopiq/config.json |
ユーザー設定ファイル | アプリケーションの設定(待受ポート番号、登録済みの画像フォルダの一覧)を保存するファイルです。バックアップを取る際はこのファイルをコピーしてください。 |
🐧 Linux 環境 (Debian/Ubuntu .deb パッケージからインストールした場合)
| パス | 区分 | 役割 |
|---|---|---|
/opt/lopiq/ |
インストールディレクトリ | 実行バイナリ lopiq およびアセットディレクトリ static/ が配置されます。 |
/usr/bin/lopiq |
シンボリックリンク | システム全体から lopiq コマンドで起動できるようにするための /opt/lopiq/lopiq へのシンボリックリンクです。 |
/lib/systemd/system/lopiq.service |
systemd サービス定義 | システム起動時の自動起動や、クラッシュ・設定変更時の自動再起動を管理するためのサービスユニットファイルです。 |
/root/.config/lopiq/config.json |
ユーザー設定ファイル | systemd サービス(root ユーザー権限)で動作している場合の設定ファイルです。※一般ユーザー権限で手動実行した場合は ~/.config/lopiq/config.json に作成されます。 |
🏗️ 動作の仕組みと技術スタック
LoPiQ は、PC のローカル環境で「極めて軽快に動作する画像ビューア」を目指して設計されており、以下のようなシンプルな構成を取っています。
1. 超軽量な Go 製バックエンド
- フレームワーク非依存: サードパーティの重いフレームワークに依存せず、Go の標準ライブラリ(
net/httpやhtml/templateなど)のみで実装されたシングルバイナリの HTTP サーバーです。 - 高速起動・低リソース: 実行ファイル単体で動作するため起動は一瞬であり、メモリや CPU の消費量も極めて低く抑えられています。データベース等のミドルウェアも一切不要です。
2. HTMX によるスマートな画面遷移
- HTML 駆動 (SSR): React や Vue などの巨大なクライアントサイドフレームワークを使用せず、軽量ライブラリ HTMX を採用しています。
- スムーズな操作感: 画面の必要な部分だけをサーバー側でレンダリングした HTML 差分として非同期取得し、ブラウザ上で部分的に差し替えるため、SPA(シングルページアプリケーション)のような滑らかな操作感を提供しつつ、フロントエンドの軽量化を実現しています。
3. システムでの稼働管理
- Linux (systemd): OS 標準のサービス管理機構に登録し、OS 起動時の自動起動や、Web 画面からのポート変更指示によるスムーズな自動再起動処理を保証しています。
- macOS (.app): 標準のアプリケーション起動プロセスとして、起動時に自動的にローカルサーバーをバックグラウンドで開始し、ブラウザで画面を開きます。設定画面から終了指示を出すことで安全にサーバープロセスが終了します。