Sign inSign up

stashappdev/mystash

By stashappdev

•Updated over 6 years ago

Image
0

197

stashappdev/mystash repository overview

⁠Stash

Build Status Go Report Card Discord

Stash is a Go app which organizes and serves your porn.

See a demo here⁠ (password is stashapp).

⁠Docker install

Follow this README.md in the docker directory.⁠

⁠Bare-metal Install

Stash supports macOS, Windows, and Linux. Download the latest release here⁠.

Run the executable (double click the exe on windows or run ./stash-osx / ./stash-linux from the terminal on macOS / Linux) and navigate to either https://localhost:9999⁠ or http://localhost:9998⁠ to get started.

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

⁠FFMPEG

If stash is unable to find or download FFMPEG then download it yourself from the link for your platform:

The ffmpeg(.exe) and ffprobe(.exe) files should be placed in ~/.stash on macOS / Linux or C:\Users\YourUsername\.stash on Windows.

⁠Usage

⁠CLI

Stash provides some command line options. See what is currently available by running stash --help.

For example, to run stash locally on port 80 run it like this (OSX / Linux) stash --host 127.0.0.1 --port 80

⁠SSL (HTTPS)

Stash supports HTTPS with some additional work. First you must generate a SSL certificate and key combo. Here is an example using openssl:

openssl req -x509 -newkey rsa:4096 -sha256 -days 7300 -nodes -keyout stash.key -out stash.crt -extensions san -config <(echo "[req]"; echo distinguished_name=req; echo "[san]"; echo subjectAltName=DNS:stash.server,IP:127.0.0.1) -subj /CN=stash.server

This command would need customizing for your environment. This link⁠ might be useful.

Once you have a certificate and key file name them stash.crt and stash.key and place them in the ~/.stash directory. Stash detects these and starts up using HTTPS rather than HTTP.

⁠FAQ

I'm unable to run the app on OSX or Linux

Try running chmod u+x stash-osx or chmod u+x stash-linux to make the file executable.

I have a question not answered here.

Join the Discord server⁠.

⁠Development

⁠Install

NOTE: You may need to run the go get commands outside the project directory to avoid modifying the projects module file.

⁠Environment

⁠macOS

TODO

⁠Windows
  1. Download and install Go for Windows⁠
  2. Download and install MingW⁠
  3. Search for "advanced system settings" and open the system properties dialog.
    1. Click the Environment Variables button
    2. Add GO111MODULE=on
    3. Under system variables find the Path. Edit and add C:\Program Files\mingw-w64\*\mingw64\bin (replace * with the correct path).

NOTE: The make command in Windows will be mingw32-make with MingW.

⁠Commands

  • make generate - Generate Go GraphQL and packr2 files
  • make build - Builds the binary (make sure to build the UI as well... see below)
  • make ui - Builds the frontend
  • make vet - Run go vet
  • make lint - Run the linter

⁠Building a release

  1. Run make generate to create generated files
  2. Run make ui to compile the frontend
  3. Run make build to build the executable for your current platform

⁠Cross compiling

This project uses a modification of this⁠ docker container to create an environment where the app can be cross-compiled. This process is kicked off by CI via the scripts/cross-compile.sh script. Run the following command to open a bash shell to the container to poke around:

docker run --rm --mount type=bind,source="$(pwd)",target=/stash -w /stash -i -t stashappdev/compiler:latest /bin/bash

Tag summary

Content type

Image

Digest

Size

134.5 MB

Last updated

over 6 years ago

docker pull stashappdev/mystash