An organizer for your porn, written in Go
Go to file
Viacheslav Poturaev d9fb51f2f9
Reuse static server for multiple requests (#2258)
2022-01-28 15:20:05 +11:00
.github Bump go cache (#1919) 2021-10-28 17:00:24 +11:00
.idea Cut over to v2.5 UI (#433) 2020-04-03 08:46:23 +11:00
docker Apply python path resolution to plugins (#1990) 2021-11-12 09:21:52 +11:00
docs Vite-based frontend builds (#1900) 2021-11-18 12:32:04 +11:00
graphql Add stash-box credentials validation (#2173) 2022-01-04 14:20:31 +11:00
pkg Reuse static server for multiple requests (#2258) 2022-01-28 15:20:05 +11:00
scripts Filter tag by hierarchy (#1746) 2021-10-01 11:50:06 +10:00
ui Only update tags if not dirtied (#2241) 2022-01-20 08:10:47 +01:00
vendor Skip cleaning for search by name scrape queries (#2059) 2021-12-16 11:18:39 +11:00
.dockerignore Replace packr with go embed (#1751) 2021-09-22 13:08:34 +10:00
.gitattributes Refactor build (#493) 2020-04-29 12:13:08 +10:00
.gitignore Heatmap and speed sorting/filtering for interactive scenes [rewrite] (#2096) 2021-12-13 13:41:07 +11:00
.golangci.yml Enable the appendAssign lint check (#1865) 2021-10-20 16:34:19 +11:00
.gqlgenc.yml Stash box client interface (#751) 2020-09-17 19:57:18 +10:00
LICENSE Add LICENSE until we get all signers on the switch (#297) 2020-01-20 22:18:12 -05:00
Makefile Varied macOS fixes (#2044) 2021-11-22 12:44:24 +11:00
README.md Add preview languages (#2194) 2022-01-05 14:21:15 +11:00
go.mod Skip cleaning for search by name scrape queries (#2059) 2021-12-16 11:18:39 +11:00
go.sum Skip cleaning for search by name scrape queries (#2059) 2021-12-16 11:18:39 +11:00
gqlgen.yml Support a minModTime input on metadata scans. (#1951) 2021-11-26 11:48:31 +11:00
main.go Replace packr with go embed (#1751) 2021-09-22 13:08:34 +10:00
main_test.go Ran formatter and fixed some lint issues 2019-02-14 14:53:32 -08:00
tools.go Apple Silicon Support, Bump Go to 1.17, refactor docker/build/x86_64/Dockerfile (#1646) 2021-09-08 15:30:15 +10:00

README.md

Stash

https://stashapp.cc

Build Docker pulls Go Report Card Discord

Stash is a self-hosted webapp written in Go which organizes and serves your porn.

demo image

  • Stash gathers information about videos in your collection from the internet, and is extensible through the use of community-built plugins for a large number of content producers and sites.
  • Stash supports a wide variety of both video and image formats.
  • You can tag videos and find them later.
  • Stash provides statistics about performers, tags, studios and more.

You can watch a SFW demo video to see it in action.

For further information you can read the in-app manual.

Installing Stash

Windows MacOS Linux Docker
Latest Release
Development Preview
Latest Release (Apple Silicon)
Development Preview (Apple Silicon)
Latest Release (Intel)
Development Preview (Intel)
Latest Release (amd64)
Development Preview (amd64)
More Architectures...
Instructions
Sample docker-compose.yml

Getting Started

Run the executable (double click the exe on windows or run ./stash-osx / ./stash-linux from the terminal on macOS / Linux) to get started.

Note for Windows users: Running the app might present a security prompt since the binary isn't yet signed. Bypass this by clicking "more info" and then the "run anyway" button.

FFMPEG

Stash requires ffmpeg. If you don't have it installed, Stash will download a copy for you. It is recommended that Linux users install ffmpeg from their distro's package manager.

Usage

Quickstart Guide

Download and run Stash. It will prompt you for some configuration options and a directory to index (you can also do this step afterward)

If you'd like to automatically retrieve and organize information about your entire library, You will need to download some scrapers. The Stash community has developed scrapers for many popular data sources which can be downloaded and installed from this repository.

The simplest way to tag a large number of files is by using the Tagger which uses filename keywords to help identify the file and pull in scene and performer information from our stash-box database. Note that this data source is not comprehensive and you may need to use the scrapers to identify some of your media.

Translation

Translate 🇧🇷 🇨🇳 🇬🇧 🇫🇮 🇫🇷 🇩🇪 🇮🇹 🇪🇸 🇸🇪 🇹🇼 🇹🇷

Stash is available in 11 languages (so far!) and it could be in your language too. If you want to help us translate Stash into your language, you can make an account at translate.stashapp.cc to get started contributing new languages or improving existing ones. Thanks!

Support (FAQ)

Answers to other Frequently Asked Questions can be found on our Wiki

For issues not addressed there, there are a few options.

  • Read the Wiki
  • Check the in-app documentation, in the top right corner of the app (also available here
  • Join the Discord server, where the community can offer support.

Customization

Themes and CSS Customization

There is a directory of community-created themes on our Wiki, along with instructions on how to install them.

You can also make Stash interface fit your desired style with Custom CSS snippets.

For Developers

Pull requests are welcome!

See Development and Contributing for information on working with the codebase, getting a local development setup, and contributing changes.