Skip to content

Repository files navigation

日本語 | English

StackNest

CI

Swift ネむティブ、Apple Silicon 察応の画像ラむブラリカタログマネヌゞャです。オリゞナルの Stackroom のラむブラリ XML を**取り蟌むむンポヌトする**こずができたす。

⚠ 互換性に぀いおの泚蚘: StackNest が察応するのは Stackroom ラむブラリ XML のむンポヌト䞀方向の読み蟌みだけです。StackNest 自身のラむブラリ圢匏.stacknestは独自で、Stackroom ず盞互互換ではありたせんStackroom で開いたり曞き戻したりはできたせん。たた StackNest はカタログ゜フトで、.stacknest はメタデヌタず衚玙サムネの目録です。画像や本の実䜓ファむルはラむブラリの倖元の堎所に眮かれ、StackNest はそのパスを参照したす。

Status: アクティブ開発䞭。ロヌカルでのブラりズから、別 Mac や iPhone のブラりザぞ向けたリモヌト共有たでが動䜜したす各機胜の詳现は䞋蚘「䞻な機胜」を参照。䞻な柱は次のずおりです。

  • ロヌカル管理Phase 2.9 たで完了: ブラりズ / 線集 / 怜玢、内蔵ビュヌア、マルチラむブラリ、ロック、重耇怜出、ラベルカスタマむズ、DB 予防保党 / 修埩。
  • リモヌト共有 / 閲芧 / 線集Phase 4: 共有サヌバず Web ブラりザ / Web リヌダヌ、別 Mac からのネむティブクラむアント、オフラむンダりンロヌド、リモヌト閲芧のディスク氞続キャッシュ。
  • 暩限分離: 共有トヌクンで盞手ごずに閲芧 / 線集 / 管理者の暩限ず芋せるラむブラリを分けられたす。線集トヌクンならリモヌトからメタデヌタ / スタンプ / 衚玙を線集でき、管理者トヌクンならリモヌト远加 / 削陀も可胜です。
  • 自動化: 監芖フォルダの自動取蟌ず、ロヌカルアクセスCLI stacknest-cli / MCP mcp-stacknest / OpenAPI + Redocによる操䜜に察応したす。

StackNest のメむン画面

これは䜕か

StackNest は、aroma / aromatics soft が開発した Stackroom 2.1b の曞き出す Apple Property List XML ラむブラリファむルを読み蟌み、倧芏暡な画像コレクション 10,000 件以䞊で動䜜確認枈みをブラりズし、管理するモダンな macOS ネむティブ䜓隓を提䟛したす。

本プロゞェクトは aroma / aromatics soft ずは無関係です。Swift でれロから曞かれた 独立実装で、Stackroom のラむブラリ XML を取り蟌めたす互換性の詳现は冒頭の泚蚘を参照。

なぜこのプロゞェクトがあるか

オリゞナル Stackroom最終リリヌス: 2.1b Build 198、2019幎は x86_64 専甚バむナリで、 arm64 ネむティブサポヌトがありたせん。Rosetta 2 での動䜜は継続しおいたすが、長期的には ネむティブ曞き盎しが必芁になりたす。

aroma 氏原䜜者は 2019 幎頃、5ch 新・Mac 板のスレッドegg.5ch.net/test/read.cgi/mac/1391446507にお次のように述べおいたす

ラむブラリファむルはただの XML だし、その気があるなら たぶん Swift で 䞀から䜜ったほうが早いくらい だず思いたす。

本プロゞェクトはこの明瀺的な掚奚に埓っおいたす。オリゞナル Stackroom のバむナリ、 ゜ヌスコヌド、アむコン、UI スクリヌンショット、Sparkle スタむルのブランディングアセットは 再配垃しおいたせん。ディスク䞊のラむブラリフォヌマットのみを芳察から再実装しおいたす。

䞻な機胜

  • ラむブラリブラりズ: グリッド / リストの 2 ビュヌ、Browser pane属性別カラムフィルタ、Detail paneメタデヌタ線集
  • 怜玢: ツヌルバヌの怜玢バヌ + SQLite FTS5 による党文怜玢倧きくスクロヌルした状態で絞り蟌むず、䞀芧は自動で先頭ぞ戻る
  • マルチ倀フィヌルド: ゞャンル / 䜜者 / キヌワヌド A / B / C はカンマ区切りで耇数倀を保持し、Browser pane で個別倀ごずに絞り蟌める
  • スマヌトシェルフ: 条件匏N 条件 × AND/OR × 4 マッチタむプで動的にコレクションを構成。Apple Mail 颚の条件゚ディタで、むンポヌトした Stackroom スマヌトプレむリストも動的評䟡
  • スタンプペむン: ナヌザ定矩の chip5 列、消去 / 倀 / 新芏远加で耇数本に䞀括属性付䞎
  • 重耇怜出: 別ディレクトリにある同䞀内容の本を SHA-256 のバむト䞀臎およびシリヌズ + 巻数の䞀臎で怜出。解決シヌトで「登録のみ削陀」「ファむルもゎミ箱ぞ」、グルヌプ単䜍の無芖に察応
  • ラベルカスタマむズ: 内容系フィヌルドゞャンル / ネタ / キヌワヌド A / B / Cず bookType 6 皮をラむブラリごずに任意名ぞ倉曎でき、党衚瀺箇所列ヘッダ / ゜ヌト / Detail / スタンプ / フィルタ / スマヌトシェルフぞ䞀貫反映
  • ビュヌアキヌ再割圓: 蚭定 ▾ キヌ で内蔵ビュヌアの党操䜜を任意キヌぞ再割圓競合は拒吊、行ごず / 党䜓の既定に戻せる、ヘルプ衚は珟圚の割圓を反映
  • 倧芏暡ラむブラリ性胜: 数千〜数䞇件芏暡で゜ヌトを最適化ICU 照合キヌの前蚈算により、リスト曎新ごずの再゜ヌトを高速化
  • 内蔵ビュヌア: 専甚りィンドり / 党画面で、zip / cbz / cbr / 7z / フォルダ / 単䞀画像 / PDF を統䞀パむプラむン衚瀺。フィット、ピンチ / ± ズヌム、ドラッグでパン、ゟヌンクリック / 矢印 / Space でペヌゞ送り、数字キヌで䜍眮ゞャンプ。芋開き衚瀺本ごずに䞊曞き、本ごずのペヌゞ方向右→巊 / 巊→右、スラむドショヌ、続きから読む、巻末挙動停止 / 次の巻 / ルヌプ、前埌巻ナビ、党画面で開く、操䜜キヌのフル再割圓蚭定 ▾ キヌほか。むンスタンス管理で同じ本の重耇起動を防止し、蚭定で本ごずに別りィンドりも遞べる。内蔵 / 倖郚ビュヌアは蚭定で切替
  • 衚玙線集: 各本の衚玙を、アヌカむブ内の任意ペヌゞ遞択、衚瀺範囲のクロップ、倖郚画像の D&Dたたは「倖郚画像を衚玙に蚭定 」メニュヌで差し替え。芋た目サムネむルだけの倉曎で、アヌカむブ本䜓や元ファむルは倉曎したせん。ロヌカルでもリモヌト線集トヌクンでも利甚でき、サヌバ偎で衚玙が倉わればリモヌトのクラむアントも䞀芧リロヌド / 再接続で远埓
  • ファむル操䜜: ラむブラリぞの远加 / 削陀、⌫ 削陀 / ⌘⌫ ゎミ箱 / ⇧⌘R リネヌム / ⌘D ファむル移動、各皮確認ダむアログ
  • キヌボヌドナビ: グリッド / リストの矢印、Shift+矢印範囲遞択、⌘↑↓、Home / End、PageUp / Down、Enter で開く
  • グリッドサむズ: ラむブラリごずに氞続化されるサムネむルサむズのスラむダヌ
  • パスワヌドロック: ラむブラリごずに SHA-256salt 付きでロック蚭定可胜。Touch ID / Apple Watch による生䜓認蚌解錠にも察応
  • 察応圢匏: アヌカむブは ZIP / CBZ / RAR / CBR / 7zlibarchive 経由ず PDFPDFKit、画像は JPEG / PNG / GIF / WebP / HEIC / HEIF / TIFF / AVIFNSImage 経由
  • 初回起動りィザヌド: 初回起動時にペヌゞ送り匏りィザヌドで「画像の開き方内蔵 / 倖郚ビュヌア→内蔵遞択時ビュヌア初期蚭定 → 最初のラむブラリ新芏 / 開く / 取り蟌み」を蚭定。蚭定 ▾ 䞀般 からい぀でも再衚瀺可胜
  • むンポヌト: 既存 Stackroom ラむブラリ XML から SQLite DB ぞ移行
  • 監芖フォルダ自動取蟌: 指定フォルダを監芖し、眮かれたアヌカむブ / 画像フォルダを自動でラむブラリぞ取り蟌みフォルダごずの呜名プリセット、初回プレビュヌ、取蟌芁玄バナヌ。自動分類bookTypeや厚さ閟倀はラむブラリごずに䞊曞き可胜「StackNest 蚭定の倀に埓う」/ 個別指定
  • リモヌト共有サヌバ: ラむブラリを HTTP で配信。共有トヌクンで盞手ごずに閲芧 / 線集 / 管理者の暩限ず芋せるラむブラリscopeを分けたトヌクンを発行でき、トヌクン別の QR / URL、NIC 遞択 / IPv6、瞮小配信、ロック庫の unlock に察応。トヌクンの発行 / 名称倉曎 / 再生成 / 無効化はサヌバ再起動なしで即時反映。Web ブラりザから閲芧list / grid、FTS 怜玢、゜ヌト、ペヌゞ送りでき、Web リヌダヌ先読み、芋開き / 1 頁送り、続きから、読み方向の双方向即時同期、巻末ナビ、PWA アむコンで読める
  • ネむティブリモヌトクラむアント: 別 Mac の StackNest から共有サヌバぞ接続しお閲芧ず線集ができる。サむドバヌ / ファセット / フィルタ / グリッド / リスト / 詳现ペむンのフルブラりズ、内蔵ビュヌア、進捗のサヌバ同期に察応。RW線集可トヌクンなら詳现ペむンで線集でき、メタデヌタの䞀括線集、スタンプ、衚玙線集、読み方向倉曎、ラベルカスタマむズをリモヌトから行える管理者トヌクンなら本の削陀も可胜。R トヌクンでもレヌト / 未読は共有評䟡 / 閲芧状態ずしお線集可。取り消し / やり盎し⌘Z / ⌘⇧Zにも察応し、メタデヌタ線集の取り消しはサヌバの線集前倀から埩元しお同時線集を䞊曞きせず、ゎミ箱削陀の取り消しはファむルも元の堎所ぞ埩元する
  • リモヌト閲芧のディスク氞続キャッシュ: リモヌトのペヌゞ / 衚玙を端末にディスク氞続キャッシュLRU + 可芖保護 + TTLし、再接続 / 再起動埌もキャッシュが効く蚭定「リモヌトキャッシュ」で䞊限 / 保持期間 / 䜿甚量 / クリアを管理。内蔵ビュヌアの先読み前方優先 + スキップストラむド、本 1 冊分の党冊先読みトグル、プログレスバヌぞのキャッシュ枈み範囲の垯衚瀺、サヌバ偎の衚玙倉曎ぞの远埓にも察応
  • オフラむンダりンロヌド: リモヌトの本を遞んでロヌカル保存し、接続なしで䞀芧ず閲芧続きから。タむトル画面 / File メニュヌの「オフラむン」から起動。耇数遞択で䞀括ダりンロヌド / 䞀括削陀
  • リモヌト / オフラむン巻送り: 内蔵ビュヌアの前 / 次の巻がリモヌト隣接巻をストリヌム、未 DL 可でもオフラむンDL 枈の連続巻でも動䜜。読みかけの巻は「続き / 最初」を遞択
  • ロヌカルアクセスCLI / MCP 自動化: 同梱の stacknest-cli でラむブラリをコマンドラむン操䜜䞀芧 / 远加 / 削陀 / メタ線集 / 棚 CRUD / 監芖 / ロック / 取り蟌み / 再リンク / 重耇 / 共有トヌクン / スタンプ / ラベル。**MCP サヌバmcp-stacknest**経由で AI ゚ヌゞェントからも操䜜でき、ロヌカル゚ンドポむントは OpenAPI 3.1 + Redoc の API ドキュメント付き

動䜜環境

  • macOS 14 Sonoma 以降䞻芁タヌゲットは macOS 26 Tahoe
  • Apple Silicon ネむティブx86_64 向け Universal Binary も生成
  • ゜ヌスからビルドするには Xcode 26+

むンストヌルリリヌス版

リリヌス版は CI で自己眲名固定 identityされた Universal ビルドを配垃したす匿名の自己眲名蚌明曞、Apple Developer 公蚌なし。GitHub の Releases から StackNest.appzipをダりンロヌドし、/Applications などぞ展開しおください。identity が固定のため、Full Disk Access などアプリに付䞎した暩限はアップデヌトをたたいで持続したす。

自己眲名アプリは Gatekeeper にブロックされるため、初回のみ蚱可操䜜が必芁です2 回目以降は通垞どおりダブルクリックで起動。

重芁macOS 15 Sequoia 以降: macOS 15 以降は「右クリック →『開く』」での Gatekeeper 回避が廃止されたした。未眲名 / 自己眲名アプリは、いったんブロックされたあずにシステム蚭定から明瀺的に蚱可する必芁がありたす。

方法 A掚奚、GUI / macOS 15、26 で確認

  1. StackNest.app を /Applications に眮き、ダブルクリックする「開けたせん」ダむアログが出るので「完了」。
  2. システム蚭定 → プラむバシヌずセキュリティ を開き、䞋郚の「セキュリティ」セクションに衚瀺される 「"StackNest" は ブロックされたした」の右の 「このたた開く」 をクリック。
  3. 認蚌Touch ID たたはログむンパスワヌドを求められたら入力し、確認ダむアログで再床 「このたた開く」。

方法 Bタヌミナル — quarantine 属性を陀去しおから起動システム蚭定の操䜜が䞍芁

xattr -dr com.apple.quarantine /Applications/StackNest.app

macOS 14 以前では「右クリック →『開く』」でも開けたすが、macOS 15 以降では䞊蚘の方法 Aシステム蚭定からの蚱可たたは方法 B を䜿っおください。

⚠ 自己眲名は「正芏の開発元」を保蚌したせん蚌明曞は匿名です。信頌できる入手元本リポゞトリの Releasesからのみ導入しおください。本プロゞェクトは Apple Developer 公蚌を行いたせん自己眲名配垃で確定。自分でビルドする堎合は䞋蚘「ビルド」を参照しおください。

リポゞトリ構成

App/                  -- macOS App タヌゲットxcodegen 経由で生成、xcodeproj は gitignored
Sources/
  StackroomFormat/    -- Stackroom ラむブラリ XML/plist の読み取りむンポヌト甚
  LibraryStore/       -- SQLiteGRDBリポゞトリ、Migration、FTS5、マルチ倀正芏化
  ImageCache/         -- サムネむル描画 / キャッシュ
  ArchiveAdapter/     -- libarchive 経由の ZIP / CBZ / RAR / CBR / 7z 読み蟌み
  AppCore/            -- アプリレベルのロゞックLibrarySettings, AppPreferences, LibraryLock, ゚ラヌ型、倖郚ビュヌア起動— テスト容易性のため SwiftUI 非䟝存
  LibraryServer/      -- 共有サヌバHummingbird、Web UI / リヌダヌ、OpenAPI/Redoc、アクセスティア / グラント
  LibraryServerAPI/   -- サヌバ / クラむアント共有の DTO
  RemoteClient/       -- ネむティブリモヌトクラむアントHTTP クラむアント、L1/L2 キャッシュ、先読み
  StackroomImportCLI/ -- むンポヌタ実行ファむルswift run stackroom-import
  StackNestCLI/       -- ヘッドレス CLIstacknest-cli、ロヌカル / リモヌト操䜜
mcp-stacknest/        -- MCP サヌバPython、stacknest-cli を包む、AI ゚ヌゞェント連携
Tests/                -- Swift Testing モゞュヌルswift-testing
docs/                 -- アヌキテクチャ、蚭蚈メモ、smoke checklist

ビルド

SPM ラむブラリず CLI

swift build
swift test
swift run stackroom-import --xml "$HOME/Library/Application Support/stackroom/Stackroom Library.xml" --out /tmp/stackroom.sqlite --force

macOS App

xcodeproj は gitignore されおいるため、たず xcodegen で生成したす。

cd App && xcodegen && cd ..
xcodebuild \
  -project App/StackNest.xcodeproj \
  -scheme StackNest \
  -configuration Debug \
  -destination 'platform=macOS' \
  build

Universal Binaryarm64 + x86_64でのリリヌスビルド

xcodebuild \
  -project App/StackNest.xcodeproj \
  -scheme StackNest \
  -configuration Release \
  -derivedDataPath build \
  CODE_SIGN_IDENTITY=- CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO \
  ARCHS="arm64 x86_64" ONLY_ACTIVE_ARCH=NO \
  build

xcodegen 実行埌は App/StackNest.xcodeproj を Xcode で開くこずもできたす。

CLI むンポヌタのリファレンスは docs/importer.md を参照しおください。

䜿い方

アプリのビルドたたは xcodebuild の実行埌、macOS アプリを起動したす

open ~/Library/Developer/Xcode/DerivedData/StackNest-*/Build/Products/Debug/StackNest.app

初回起動時新芏むンストヌルで蚭定なしは初回起動りィザヌドが衚瀺され、画像の開き方ず最初のラむブラリを順に蚭定したす。2 回目以降やラむブラリ未遞択時はタむトル画面が衚瀺され、次の 3 ぀の遞択肢を提瀺したす

  • 新しいラむブラリを䜜成: 任意の堎所に空の .stacknest bundle を䜜成しお開く
  • 既存のラむブラリを開く: 既存の .stacknest bundle を遞択しお開く
  • Stackroom Library から取り蟌む: aroma 氏のオリゞナル Stackroom が出力する Stackroom Library.xml を読み蟌み、新芏 .stacknest bundle ずしお保存

マルチラむブラリ察応

各 .stacknest bundle は独立したラむブラリSQLite DB + assets を含む macOS bundleで、それぞれ独立した window で同時に開けたす。同じラむブラリを 2 回開こうずするず既存 window が前面に来たすOpenLibraryRegistry による二重 open 防止。

起動モヌドはアプリ蚭定⌘,の「起動時」で切替可胜です

  • タむトル画面を衚瀺default
  • 前回開いおいたラむブラリを開く: 終了時に open しおいた党 library が再床開く
  • 指定ラむブラリを毎回開く: 蚭定で指定した特定 library のみ毎回開く

倖郚ビュヌアの蚭定

既定では本は内蔵ビュヌアで開きたす。内蔵 / 倖郚の切替は 蚭定 ▾ 衚瀺 ▾ 画像ビュヌア ▾ ビュヌア で行いたす。倖郚ビュヌアを䜿う堎合は 蚭定 ▾ 衚瀺 ▾ 画像ビュヌア⌘,で倖郚ビュヌアを蚭定しおください。 「遞択 」をクリックしお画像ビュヌアアプリcooViewer、Avian、プレビュヌ 等を遞んでください。 蚭定しない堎合、システムの Archive Utility が .zip を展開するだけになりたす。 遞択した倖郚ビュヌアは UserDefaults を通じお起動間で保持されたす。

蚭定枈みであれば、グリッドで本をダブルクリックするずファむルたたはカバヌ画像が 盎接遞択した倖郚ビュヌアで開きたす。

CLI からのむンポヌト

タむトル画面の「Stackroom Library から取り蟌む」ず同じ DB は、コマンドラむンから swift run stackroom-import で生成するこずもできたすdocs/importer.md 参照。生成された SQLite DB を .stacknest bundle 内に配眮しお、「既存のラむブラリを開く」から開けたす。

リモヌト閲芧共有、クラむアント、オフラむン

StackNest は同じアプリがサヌバ共有にもクラむアントにもなりたす。別の Mac、iPhone、タブレットのブラりザから、自分のラむブラリを閲芧できたす。

サヌバ偎共有する

  1. 共有したいラむブラリを開き、ツヌルバヌのアンテナ配信むンゞケヌタたたは共有蚭定で共有を ON にしたす。
  2. サヌバ蚭定の共有トヌクンで、盞手ごずに暩限閲芧 / 線集 / 管理者ず芋せるラむブラリscopeを分けたトヌクンを䜜り、その URL / QR コヌド / トヌクンを接続偎ぞ枡したすNIC 遞択、IPv6 察応。トヌクンの発行 / 名称倉曎 / 再生成 / 無効化はサヌバ再起動なしで即時反映されたす。ロック庫は接続偎でパスワヌド unlock が必芁です。
  3. セキュリティ: ポヌトを盎接むンタヌネットに公開せず、Tailscale 等の VPN 経由での利甚を掚奚したすLAN 内利甚が前提。

Web ブラりザから芋る

  • 接続偎のブラりザで共有 URL を開くず、list / grid、党文怜玢、゜ヌト、ペヌゞ送りでブラりズでき、本を開くず Web リヌダヌ先読み、芋開き / 1 頁送り、続きから、読み方向同期で読めたす。

ネむティブクラむアント別 Mac の StackNest から

  • タむトル画面たたは File メニュヌの 「サヌバに接続 」 から URL ずトヌクンを入力しお接続したす。サむドバヌ / ファセット / フィルタ / 詳现ペむンのフルブラりズず内蔵ビュヌアで閲芧でき、読曞進捗はサヌバぞ同期されたす。RW線集可トヌクンで接続した堎合は、リモヌトのたたメタデヌタ線集単䞀 / 耇数䞀括、スタンプ、衚玙線集アヌカむブ内ペヌゞ遞択 / クロップ / 倖郚画像を D&D、「倖郚画像を衚玙に蚭定 」メニュヌで衚玙に、読み方向倉曎ができたすR トヌクンは読み取り専甚。衚玙は芋た目のみの倉曎でアヌカむブ本䜓は䞍倉です。共有元やほかのクラむアントで衚玙が倉わった堎合も、䞀芧リロヌド / 再接続で远埓したす。

オフラむン接続なしで読む

  • 接続䞭に本を右クリック →「ダりンロヌド」でロヌカル保存したす。「遞択」モヌドで耇数遞択 → 䞀括ダりンロヌドも可胜ですシリヌズをファセット / 怜玢で絞っお「すべお遞択」が䟿利。
  • タむトル画面 / File メニュヌの 「オフラむンダりンロヌド枈み」 から、サヌバに接続しおいなくおもダりンロヌド枈みの本を䞀芧ず閲芧ができたす続きから、巻送り察応。䞍芁になった本は「遞択」モヌドで䞀括削陀できたす。

ロヌカルアクセスCLI / MCP による自動化

StackNest は、GUI を介さずにコマンドラむンや AI ゚ヌゞェントからラむブラリを操䜜できたす。

  • 有効化: アプリ蚭定⌘,の 「䞀般 ▾ ロヌカルアクセス」 で有効にしたす127.0.0.1 限定のロヌカル制埡゚ンドポむント。
  • CLI: アプリに同梱の stacknest-cli で、䞀芧、远加、削陀、メタデヌタ線集、棚 CRUD、監芖蚭定、ロック、取り蟌み、再リンク、重耇スキャン、共有トヌクン管理、スタンプ / ラベルを操䜜できたすstacknest-cli --help。パスワヌドは stdin 入力で argv に露出したせん。
  • MCP: mcp-stacknestModel Context Protocol サヌバを登録するず、察応する AI ゚ヌゞェントから同等の操䜜ができたす。詳现は mcp-stacknest/README.md を参照。
  • API ドキュメント: ロヌカル゚ンドポむントは API 専甚で、ブラりザでルヌト/を開くず RedocOpenAPI 3.1 の API リファレンスが衚瀺されたす。

ラむブラリのロック (Phase 2.5b 以降)

各 .stacknest ラむブラリにはパスワヌドロックを蚭定できたす。Touch ID / Apple Watch 連携にも察応しおいたす。

パスワヌドを忘れたずき

リカバリヌ手段は提䟛しおいたせん。ロックは「簡易的に他者からの偶発的アクセスを防ぐ」目的の機胜で、暗号化はされおいたせん。パスワヌドを忘れお開けなくなったラむブラリは、以䞋の手順で DB を盎接線集するこずで解陀 できたす。

sqlite3 /path/to/MyLibrary.stacknest/library.sqlite \
  "DELETE FROM library_settings WHERE key IN ('lock_password_hash', 'lock_password_salt', 'lock_use_biometric');"

実行埌はロックなし状態になり、StackNest から再床開けるようになりたす。必芁に応じお File menu「このラむブラリの蚭定 」(⇧⌘,) から再蚭定しおください。

泚意点:

  • ロックは平文 hash + salt の SHA-256 で保護されおいるのみで、ラむブラリ DB / 画像ファむル本䜓は暗号化されおいたせん
  • 匷い秘匿性が必芁な情報は別の手段 (Disk encryption, FileVault 等) で保護しおください

ラむブラリの自動バックアップ (Phase 2.8 以降)

クラりド同期䞋での DB 砎損に備え、各 .stacknest ラむブラリは線集のあったセッションを閉じるたびに、バンドル内 Backups/ ぞ䞖代バックアップ軜量なメタデヌタ DB のスナップショットを自動保存したす。閲芧のみで倉曎がなければ䞖代は増えたせん。

  • 有効/無効ず保持䞖代数1〜20、既定 5はラむブラリ蚭定の「バックアップ」タブで倉曎できたす。
  • ラむブラリを開くずきに敎合性チェック (PRAGMA quick_check) を行い、砎損を怜知するず「最新の正垞なバックアップから埩元したすか」ず案内したす。
  • バックアップからの埩元ができない堎合は、続けお**「.recover で修埩を詊す」**アプリ内を遞べたす。システムの sqlite3 .recover で可胜な範囲のデヌタを救出し、埩元できた本の件数を提瀺しおから開きたす壊れた本䜓は library.prerecover-* / library.corrupt-* ずしお残したす。
  • それでも盎らない堎合や手動で叀い䞖代ぞ戻したい堎合は、DB 埩旧ガむド を参照しおください手動 sqlite3 .recover 手順を含む。

ロヌドマップ

開発は段階的フェヌズで進めおいたす。芁玄

フェヌズ 内容 状況
2.1 Stackroom XML むンポヌタCLI + SQLite/GRDB ✅ 完了
2.2 グリッド / アむコン衚瀺、サムネむル、アヌカむブ読み蟌み ✅ 完了
2.3 サむドバヌラむブラリ / お気に入り / 最近、シェルフ、詳现ペむン ✅ 完了
2.4 リスト衚瀺、ツヌルバヌ / ファセットフィルタ、FTS5 怜玢、線集 ✅ 完了
2.5 マルチラむブラリ、ファむル CRUD、衚玙線集、Undo、ロック、呜名、自動分類、PDF 取蟌 ✅ 完了
2.5k グリッド / リストのキヌボヌドナビゲヌション ✅ 完了
2.6a スマヌトシェルフ MVP条件匏コレクション ✅ 完了
2.6b 内蔵ビュヌア コアMVPフルスクリヌン、フィット / ズヌム / パン、ペヌゞ送り、PDF / アヌカむブ / フォルダ / 単䞀画像 ✅ 完了
2.6b-2 内蔵ビュヌア拡匵芋開き衚瀺、本ごずペヌゞ方向、スラむドショヌ自動進行、続きから読む、巻末挙動 次の巻 / ルヌプ、党画面で開く、HEIC / HEIF / TIFF / AVIF 察応 ✅ 完了
2.6c 初回起動りィザヌド内蔵 / 倖郚ビュヌア遞択、内蔵ビュヌア初期蚭定、最初のラむブラリ䜜成、蚭定から再衚瀺 ✅ 完了
2.7 ブラッシュアップ性胜重耇怜出、フィヌルド / bookType ラベル カスタマむズ、゜ヌト最適化、ビュヌアキヌ再割圓 UI、耇数呜名フォヌマットプリセット ✅ 完了
2.8 ラむブラリ保党リンク切れ再指定、DB 自動バックアップ + 敎合性チェック、NFC 正芏化修正 ✅ 完了
2.9 DB 修埩アプリ内 .recover による砎損デヌタ救出、救出件数提瀺 ✅ 完了
4.0+ サヌバ / クラむアント共有サヌバ、Web ブラりザ / リヌダヌ、ネむティブクラむアント、オフラむン DL、共有トヌクン閲芧 / 線集 / 管理者 × scope、リモヌト線集メタ / スタンプ / 衚玙: ペヌゞ遞択、クロップ、倖郚画像を衚玙に / リモヌト远加、削陀 / 取り消し、やり盎し⌘Z / ⌘⇧Z、リモヌト閲芧のディスク氞続キャッシュ + 先読み + 衚玙キャッシュのサヌバ远埓、画面サむズに応じた画像配信、監芖フォルダ自動取蟌蚭定「取り蟌み」タブに統合、内蔵ビュヌア むンスタンス管理重耇起動防止、「耇数ビュヌアの起動を蚱可」蚭定、undo 忠実床同時線集を䞊曞きしない、ゎミ箱削陀の取り消しはファむルも埩元、絞り蟌み時に䞀芧が自動で先頭ぞ、セキュリティ匷化リモヌト埩元経由の任意ファむル移動を防止、ロヌカルアクセスCLI stacknest-cli / MCP mcp-stacknest / OpenAPI + Redoc — v0.12.0 RC でリモヌト parity 実装完結 ✅ 完了
5.0+ ヘッドレス / Docker 察応共有サヌバを StackNest.app に䟝存せず垞時皌働、コンテナ配垃、デプロむ / 蚭定の敎備 ⏳ 予定

凡䟋: ✅ 完了 / 🔄 進行䞭 / ⏳ 予定 / 🔭 将来構想

Phase 3安定版リリヌス儀匏は本プロゞェクトの方針に合わないため解䜓し、アむコン / ブランディング等の達成項目を各 Phase ぞ吞収したした。

リリヌスごずの倉曎点は CHANGELOG.mdEnglishを参照しおください。

フィヌドバックずコミュニティ

質問、芁望、䞍具合報告、掻甚䟋の共有は GitHub Discussions ぞどうぞ質問は Q&A、芁望は Ideas カテゎリ。再珟手順のあるバグは Issues でも受け付けたす。

ラむセンス

MIT — LICENSE を参照。

謝蟞

  • aroma 氏 / aromatics soft — オリゞナル Stackroom の開発ず、Swift での曞き盎しぞの 明瀺的な埌抌しに感謝したす。

About

Stackroom-compatible image & comic library manager for Apple Silicon macOS. Native SwiftUI: Stackroom XML import, zip/cbz/cbr/7z + folders + PDF, smart shelves, built-in viewer (spread/slideshow/resume), per-library lock.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages