An organizer for your porn, written in Go
Go to file
A Ghoul Coder 969af2ab69
add phasher (#3864)
* add phasher

A simple `phasher` program that accepts a video file as a command line
argument and calculates and prints its PHASH.

The goal of this separate executable is to have a simple way to
calculate phashes that doesn't depend on a full stash instance so that
third-party systems and tools can independently generate PHASHes which
can be used for interacting with stash and stash-box APIs and data.

Currently `phasher` is built in the default make target along with
`stash` by simply running `make`.
Cross-platform targets have not been considered.

Concurrency is intentionally not implemented because it is simpler to
use [GNU Parallel](https://www.gnu.org/software/parallel/).
For example:
```
parallel phasher {} ::: *.mp4
```

* standard dir structure for phasher and separate make target

The make target still needs to be integrated into the rest of the
Makefile so it can be built as part of normal releases.

* phasher: basic usage output and quiet option
* phasher: allow and process multiple command line arguments
* phasher: camelCase identifiers
* phasher: initialize ffmpeg and ffprobe only once
2023-07-11 15:53:53 +10:00
.github Upgrade to go 1.19 only (#3087) 2022-11-09 14:41:23 +11:00
.idea
cmd add phasher (#3864) 2023-07-11 15:53:53 +10:00
docker Add AirPlay and Chromecast support (#2872) 2023-07-11 13:47:11 +10:00
docs Fix Arch dependency install command (#3592) 2023-03-24 13:58:57 -04:00
graphql Identify: Options to skip multiple results and single name performers (#3707) 2023-07-11 14:37:00 +10:00
internal Identify: Options to skip multiple results and single name performers (#3707) 2023-07-11 14:37:00 +10:00
pkg Identify: Options to skip multiple results and single name performers (#3707) 2023-07-11 14:37:00 +10:00
scripts Support image clips/gifs (#3583) 2023-05-17 09:30:51 +10:00
ui Identify: Options to skip multiple results and single name performers (#3707) 2023-07-11 14:37:00 +10:00
vendor Sort special characters before numbers (#3829) 2023-06-22 09:51:21 +10: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 add phasher (#3864) 2023-07-11 15:53:53 +10:00
.golangci.yml Fix golangci OOM (#2889) 2022-09-05 22:12:59 -07:00
.gqlgenc.yml Fix submission of scene drafts without performers (#2515) 2022-04-18 10:43:27 +10:00
LICENSE
Makefile add phasher (#3864) 2023-07-11 15:53:53 +10:00
README.md Add Matrix badge and link in support section (#3710) 2023-05-03 13:13:51 +10:00
go.mod Sort special characters before numbers (#3829) 2023-06-22 09:51:21 +10:00
go.sum Sort special characters before numbers (#3829) 2023-06-22 09:51:21 +10:00
gqlgen.yml Add filesystem based blob storage (#3187) 2023-03-17 10:52:49 +11:00
tools.go Update go dependencies (#3480) 2023-02-28 08:26:14 +11:00

README.md

Stash

https://stashapp.cc

Build Docker pulls Open Collective backers Go Report Card Matrix Discord GitHub release (latest by date) GitHub issues by-label

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

First Run

Windows Users: Security Prompt

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

Stash is a web-based application. Once the application is running, the interface is available (by default) from http://localhost:9999.

On first run, Stash will prompt you for some configuration options and media directories to index, called "Scanning" in Stash. After scanning, your media will be available for browsing, curating, editing, and tagging.

Stash can pull metadata (performers, tags, descriptions, studios, and more) directly from many sites through the use of scrapers, which integrate directly into Stash.

Many community-maintained scrapers are available for download from CommunityScrapers repository. The community also maintains StashDB, a crowd-sourced repository of scene, studio, and performer information, that can automatically identify much of a typical media collection. Inquire in the Discord for details. Identifying an entire collection will typically require a mix of multiple sources.

StashDB is the canonical instance of our open source metadata API, stash-box.

Translation

Translate 🇧🇷 🇨🇳 🇩🇰 🇳🇱 🇬🇧 🇪🇪 🇫🇮 🇫🇷 🇩🇪 🇮🇹 🇯🇵 🇰🇷 🇵🇱 🇷🇺 🇪🇸 🇸🇪 🇹🇼 🇹🇷

Stash is available in 25 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)

Check out our documentation on Stash-Docs for information about the software, questions, guides, add-ons and more.

For more help you can:

Customization

Themes and CSS Customization

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

You can also change the Stash interface to fit your desired style with various snippets from 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.