Documentation menu

Install / recommended first mode

Local Storage + Plex

Import media already on disk through a plan-first, hash-bound workflow and publish verified files to Plex.

Why start here

Import-only is the safest first installation. It does not use BitTorrent and does not require a VPN. It lets you prove file ownership, Plex mapping, subtitle selection, backup, and recovery before another provider is introduced.

Omakase sees two separate roots:

  • an import root mounted read-only in the application;
  • an Omakase-managed library root where verified media is materialized.

Connect Plex first

Map the managed library into Plex and record the path Plex sees. Omakase may see /media/library while Plex sees /data/anime. Plex setup plans must use the Plex-visible path.

Create a request for the two intended libraries:

json
{
  "schema_version": "plex-setup-request-v1",
  "libraries": [
    {"title": "Anime", "section_type": "show", "path": "/data/anime"},
    {"title": "Anime Movies", "section_type": "movie", "path": "/data/anime-movies"}
  ]
}

Run the plan command, review the result, then apply the printed hash:

bash
omakase plus plan-plex-setup \
  --plex-url "$OMAKASE_PLEX_URL" \
  --request /home/omakase/data/plex-request.json \
  --plan /home/omakase/data/plex-plan.json

omakase plus apply-plex-setup \
  --plex-url "$OMAKASE_PLEX_URL" \
  --plan /home/omakase/data/plex-plan.json \
  --expected-plan-hash <64-character-hash>

The apply path can create a library or update one library path. It cannot delete a Plex section.

Plan a local import

Each import request links a relative file locator to an existing monitored title:

json
{
  "schema_version": "local-import-request-v1",
  "requests": [
    {
      "monitor_id": 42,
      "locator": "Example Series/Season 01/Example Series S01E01.mkv",
      "quality": "1080p",
      "external_subtitles": []
    }
  ]
}

Plan and apply:

bash
omakase plus plan-local-import \
  --user-id 1 \
  --root /media/import \
  --request /home/omakase/data/import-request.json \
  --plan /home/omakase/data/import-plan.json

omakase plus apply-local-import \
  --plan /home/omakase/data/import-plan.json \
  --root /media/import \
  --backup /home/omakase/data/backups/pre-import.db \
  --expected-plan-hash <64-character-hash>

Planning hashes every file and changes nothing. Apply re-hashes the inventory, creates and validates a SQLite backup, runs bounded media probes, and imports only the exact reviewed bytes.

Path escapes, symlink escapes, changed content, identity ambiguity, and cross-title hash collisions fail closed.

Confirm readiness

After apply:

  1. inspect the activity receipt;
  2. confirm Plex sees the expected title and episode;
  3. inspect selectable subtitle languages;
  4. perform representative playback;
  5. rerun Doctor;
  6. preserve the import plan, plan hash, and backup reference.

Read Subtitle policy before using external subtitle files.