Skip to content

Home

A self-hosted, multi-user front end for one or more Stash servers. Stash stays your library manager; Peek gives each person their own account, ratings, history and limits on what they can see. Read more about what Peek is.

Get started quickly:

What Peek Adds to Stash

  • Accounts and Access - Admin and user roles, groups that grant sharing and download permissions (denied by default), recovery keys, sign-in through an SSO proxy, and a setup wizard
  • Your Own Data - Ratings, favorites, watch history, resume points, O counts and hidden items belong to each user, on all seven kinds of item; the ratings and counts you see are yours, not Stash's (Watch History)
  • Content Restrictions - Admins give a user show-only or always-hide lists of collections, tags, studios and galleries, applied everywhere (Learn more)
  • Hidden Items - Hide anything for yourself (Learn more)
  • Several Stash Servers - One Peek in front of several Stash servers; each user chooses which they see (Learn more)
  • Media Through Peek - Streams, captions and images are proxied through Peek, so users never get Stash's address or API key. Stash's own transcodes mean no duplicate transcoding. External players and cast devices get a personal signed link (Learn more)
  • Playlists and Sharing - Create, organize and play named playlists, and share them with groups (Learn more)
  • Browsing - TV mode, timeline and folder views, recommendations and similar scenes from your own history (Learn more)
  • Downloads - Scene files and playlist zips with NFO files, for the users and groups you allow (Learn more)
  • Modern Interface - Responsive React UI, optimized for all devices, with themes and per-user customization
  • Scalable Library - Built for libraries of 100,000 scenes and more

Peek never edits your Stash metadata. To reach Peek from outside your network, put it behind a reverse proxy.

Requirements

  • Stash server with GraphQL API enabled and an API key configured (Settings → Security)
  • Docker (or Docker on unRAID)
  • Network access between Peek and Stash

Architecture

Peek uses a single-container architecture:

  • Frontend: React 19 app served by nginx
  • Backend: Node.js/Express API server (proxied through nginx)
  • Database: SQLite (embedded, no separate container)
  • Streaming: Proxied through Peek from Stash, using Stash's own transcodes (no local transcoding)

Community & Support

License

This project is licensed under the MIT License.

Acknowledgments

Built with Stash, React, Express, and other amazing open source projects.