diff --git a/.goreleaser.yml b/.goreleaser.yml
deleted file mode 100644
index 7c10ffeb8..000000000
--- a/.goreleaser.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-project_name: stash
-before:
- hooks:
- - go mod download
-builds:
- - binary: stash-win
- ldflags:
- - "-extldflags '-static'"
- env:
- - CGO_ENABLED=1
- - CC=x86_64-w64-mingw32-gcc
- - CXX=x86_64-w64-mingw32-g++
- flags:
- - -tags
- - extended
- goos:
- - windows
- goarch:
- - amd64
- - binary: stash-osx
- env:
- - CGO_ENABLED=1
- - CC=o64-clang
- - CXX=o64-clang++
- flags:
- - -tags
- - extended
- goos:
- - darwin
- goarch:
- - amd64
- - binary: stash-osx-applesilicon
- env:
- - CGO_ENABLED=1
- - CC=oa64-clang
- - CXX=oa64-clang++
- flags:
- - -tags
- - extended
- goos:
- - darwin
- goarch:
- - arm64
- - binary: stash-linux
- env:
- - CGO_ENABLED=1
- flags:
- - -tags
- - extended
- goos:
- - linux
- goarch:
- - amd64
-archive:
- format: tar.gz
- format_overrides:
- - goos: windows
- format: zip
- name_template: "{{.ProjectName}}_{{.Version}}_{{.Os}}-{{.Arch}}"
- replacements:
- amd64: 64bit
- 386: 32bit
- arm: ARM
- arm64: ARM64
- darwin: macOS
- linux: Linux
- windows: Windows
- openbsd: OpenBSD
- netbsd: NetBSD
- freebsd: FreeBSD
- dragonfly: DragonFlyBSD
- files:
- - README.md
- - LICENSE
-release:
- draft: true
\ No newline at end of file
diff --git a/.travis.yml.disabled b/.travis.yml.disabled
deleted file mode 100644
index 91a12196f..000000000
--- a/.travis.yml.disabled
+++ /dev/null
@@ -1,117 +0,0 @@
-if: tag != latest_develop # dont build for the latest_develop tagged version
-
-dist: xenial
-git:
- depth: false
-language: go
-go:
-- 1.17.x
-services:
-- docker
-before_install:
- - set -e
- # Configure environment so changes are picked up when the Docker daemon is restarted after upgrading
- - echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json
- - export DOCKER_CLI_EXPERIMENTAL=enabled
- # Upgrade to Docker CE 19.03 for BuildKit support
- - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- - sudo apt-get update
- - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- # install binfmt docker container, this container uses qemu to run arm programs transparently allowng docker to build arm 6,7,8 containers.
- - docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
- # Show info to simplify debugging and create a builder that can build the platforms we need
- - docker info
- - docker buildx create --name builder --use
- - docker buildx inspect --bootstrap
- - docker buildx ls
-
-install:
-- echo -e "machine github.com\n login $CI_USER_TOKEN" > ~/.netrc
-- nvm install 12
-- travis_retry make pre-ui
-- make generate
-- CI=false make ui-validate ui-only
-#- go get -v github.com/mgechev/revive
-script:
-# left lint off to avoid getting extra dependency
-#- make lint
-- make fmt-check vet it
-after_success:
-- docker pull stashapp/compiler:5
-- sh ./scripts/cross-compile.sh
-- git describe --tags --exclude latest_develop | tee CHECKSUMS_SHA1
-- sha1sum dist/stash-* | sed 's/dist\///g' | tee -a CHECKSUMS_SHA1
-- 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then sh ./scripts/upload-pull-request.sh; fi'
-before_deploy:
-# push the latest tag when on the develop branch
-- if [ "$TRAVIS_BRANCH" = "develop" ]; then git tag -f latest_develop; git push -f --tags; fi
-- export RELEASE_DATE=$(date +'%Y-%m-%d %H:%M:%S %Z')
-- export STASH_VERSION=$(git describe --tags --exclude latest_develop)
-# set TRAVIS_TAG explcitly to the version so that it doesn't pick up latest_develop
-- if [ "$TRAVIS_BRANCH" = "master" ]; then export TRAVIS_TAG=${STASH_VERSION}; fi
-deploy:
- # latest develop release
- - provider: releases
- # use the v2 release provider for proper release note setting
- edge: true
- api_key:
- secure: tGJ2q62CfPdayid2qEtW2aGRhMgCl3lBXYYQqp3eH0vFgIIf6cs7IDX7YC/x3XKMEQ/iMLZmtCXZvSTqNrD6Sk7MSnt30GIs+4uxIZDnnd8mV5X3K4n4gjD+NAORc4DrQBvUGrYMKJsR5gtkH0nu6diWb1o1If7OiJEuCPRhrmQYcza7NUdABnA9Z2wn2RNUV9Ga33WUCqLMEU5GtNBlfQPiP/khCQrqn/ocR6wUjYut3J6YagzqH4wsfJi3glHyWtowcNIw1LZi5zFxHD/bRBT4Tln7yypkjWNq9eQILA6i6kRUGf7ggyTx26/k8n4tnu+QD0vVh4EcjlThpU/LGyUXzKrrxjRwaDZnM0oYxg5AfHcBuAiAdo0eWnV3lEWRfTJMIVb9MPf4qDmzR4RREfB5OXOxwq3ODeCcJE8sTIMD/wBPZrlqS/QrRpND2gn2X4snkVukN9t9F4CMTFMtVSzFV7TDJW5E5Lq6VEExulteQhs6kcK9NRPNAaLgRQAw7X9kVWfDtiGUP+fE2i8F9Bo8bm7sOT5O5VPMPykx3EgeNg1IqIgMTCsMlhMJT4xBJoQUgmd2wWyf3Ryw+P+sFgdb5Sd7+lFgJBjMUUoOxMxAOiEgdFvCXcr+/Udyz2RdtetU1/6VzXzLPcKOw0wubZeBkISqu7o9gpfdMP9Eq00=
- file:
- - dist/stash-osx
- - dist/stash-osx-applesilicon
- - dist/stash-win.exe
- - dist/stash-linux
- - dist/stash-linux-arm64v8
- - dist/stash-linux-arm32v7
- - dist/stash-pi
- - CHECKSUMS_SHA1
- skip_cleanup: true
- overwrite: true
- name: "${STASH_VERSION}: Latest development build"
- release_notes: "**${RELEASE_DATE}**\n This is always the latest committed version on the develop branch. Use as your own risk!"
- prerelease: true
- on:
- repo: stashapp/stash
- branch: develop
- # docker image build for develop release
- - provider: script
- skip_cleanup: true
- script: bash ./docker/ci/x86_64/docker_push.sh development
- on:
- repo: stashapp/stash
- branch: develop
- # official master release - only build when tagged
- - provider: releases
- api_key:
- secure: tGJ2q62CfPdayid2qEtW2aGRhMgCl3lBXYYQqp3eH0vFgIIf6cs7IDX7YC/x3XKMEQ/iMLZmtCXZvSTqNrD6Sk7MSnt30GIs+4uxIZDnnd8mV5X3K4n4gjD+NAORc4DrQBvUGrYMKJsR5gtkH0nu6diWb1o1If7OiJEuCPRhrmQYcza7NUdABnA9Z2wn2RNUV9Ga33WUCqLMEU5GtNBlfQPiP/khCQrqn/ocR6wUjYut3J6YagzqH4wsfJi3glHyWtowcNIw1LZi5zFxHD/bRBT4Tln7yypkjWNq9eQILA6i6kRUGf7ggyTx26/k8n4tnu+QD0vVh4EcjlThpU/LGyUXzKrrxjRwaDZnM0oYxg5AfHcBuAiAdo0eWnV3lEWRfTJMIVb9MPf4qDmzR4RREfB5OXOxwq3ODeCcJE8sTIMD/wBPZrlqS/QrRpND2gn2X4snkVukN9t9F4CMTFMtVSzFV7TDJW5E5Lq6VEExulteQhs6kcK9NRPNAaLgRQAw7X9kVWfDtiGUP+fE2i8F9Bo8bm7sOT5O5VPMPykx3EgeNg1IqIgMTCsMlhMJT4xBJoQUgmd2wWyf3Ryw+P+sFgdb5Sd7+lFgJBjMUUoOxMxAOiEgdFvCXcr+/Udyz2RdtetU1/6VzXzLPcKOw0wubZeBkISqu7o9gpfdMP9Eq00=
- file:
- - dist/stash-osx
- - dist/stash-osx-applesilicon
- - dist/stash-win.exe
- - dist/stash-linux
- - dist/stash-linux-arm64v8
- - dist/stash-linux-arm32v7
- - dist/stash-pi
- - CHECKSUMS_SHA1
- # make the release a draft so the maintainers can confirm before releasing
- draft: true
- skip_cleanup: true
- overwrite: true
- # don't write the body. To be done manually for now. In future we might
- # want to generate the changelog or get it from a file
- name: ${STASH_VERSION}
- on:
- repo: stashapp/stash
- tags: true
- # make sure we don't release using the latest_develop tag
- condition: $TRAVIS_TAG != latest_develop
- # docker image build for master release
- - provider: script
- skip_cleanup: true
- script: bash ./docker/ci/x86_64/docker_push.sh latest
- on:
- repo: stashapp/stash
- tags: true
- # make sure we don't release using the latest_develop tag
- condition: $TRAVIS_TAG != latest_develop
diff --git a/README.md b/README.md
index 9a74a6603..b4b9ec2a8 100644
--- a/README.md
+++ b/README.md
@@ -1,84 +1,46 @@
# Stash
-
[](https://github.com/stashapp/stash/actions/workflows/build.yml)
+[](https://hub.docker.com/r/stashapp/Stash 'DockerHub')
[](https://goreportcard.com/report/github.com/stashapp/stash)
[](https://discord.gg/2TsNFKt)
-
https://stashapp.cc
-**Stash is a locally hosted web-based app written in Go which organizes and serves your porn.**
+### **Stash is a self-hosted webapp written in Go which organizes and serves your porn.**
-* It can gather 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.
-* It supports a wide variety of both video and image formats.
+
+
+* 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.
-* It provides statistics about performers, tags, studios and other things.
+* Stash provides statistics about performers, tags, studios and more.
You can [watch a SFW demo video](https://vimeo.com/545323354) to see it in action.
For further information you can [read the in-app manual](ui/v2.5/src/docs/en).
-# Installing stash
+# Installing Stash
-## via Docker
+ Windows | MacOS| Linux | Docker
+:---:|:---:|:---:|:---:
+[Latest Release](https://github.com/stashapp/stash/releases/latest/download/stash-win.exe) [Development Preview](https://github.com/stashapp/stash/releases/download/latest_develop/stash-win.exe) | [Latest Release (Apple Silicon)](https://github.com/stashapp/stash/releases/latest/download/stash-osx-applesilicon) [Development Preview (Apple Silicon)](https://github.com/stashapp/stash/releases/download/latest_develop/stash-osx-applesilicon) [Latest Release (Intel)](https://github.com/stashapp/stash/releases/latest/download/stash-osx) [Development Preview (Intel)](https://github.com/stashapp/stash/releases/download/latest_develop/stash-osx) | [Latest Release (amd64)](https://github.com/stashapp/stash/releases/latest/download/stash-linux) [Development Preview (amd64)](https://github.com/stashapp/stash/releases/download/latest_develop/stash-linux) [More Architectures...](https://github.com/stashapp/stash/releases/latest) | [Instructions](docker/production/README.md) [Sample docker-compose.yml](docker/production/docker-compose.yml)
-Follow [this README.md in the docker directory.](docker/production/README.md)
-
-## Pre-Compiled Binaries
-
-The Stash server runs on macOS, Windows, and Linux. Download the [latest release here](https://github.com/stashapp/stash/releases).
-
-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:9999 to get started.
+## 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
-
-If stash is unable to find or download FFMPEG then download it yourself from the link for your platform:
-
-* [macOS ffmpeg](https://evermeet.cx/ffmpeg/ffmpeg-4.3.1.zip), [macOS ffprobe](https://evermeet.cx/ffmpeg/ffprobe-4.3.1.zip)
-* [Windows](https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip)
-* [Linux](https://www.johnvansickle.com/ffmpeg/)
-
-The `ffmpeg(.exe)` and `ffprobe(.exe)` files should be placed in `~/.stash` on macOS / Linux or `C:\Users\YourUsername\.stash` on Windows.
+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
-1) Download and install Stash and its dependencies
-2) Run Stash. It will prompt you for some configuration options and a directory to index (you can also do this step afterward)
-3) After configuration, launch your web browser and navigate to the URL shown within the Stash app.
+Download and run Stash. It will prompt you for some configuration options and a directory to index (you can also do this step afterward)
-**Note that Stash does not currently retrieve and organize information about your entire library automatically.** You will need to help it along through the use of [scrapers](blob/develop/ui/v2.5/src/docs/en/Scraping.md). The Stash community has developed scrapers for many popular data sources which can be downloaded and installed from [this repository](https://github.com/stashapp/CommunityScrapers).
+**If you'd like to automatically retrieve and organize information about your entire library,** You will need to download some [scrapers](blob/develop/ui/v2.5/src/docs/en/Scraping.md). The Stash community has developed scrapers for many popular data sources which can be downloaded and installed from [this repository](https://github.com/stashapp/CommunityScrapers).
The simplest way to tag a large number of files is by using the [Tagger](https://github.com/stashapp/stash/blob/develop/ui/v2.5/src/docs/en/Tagger.md) 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.
-## CLI
-
-Stash runs as a command-line app and local web server. There are some command-line options available, which you can see 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 can run over 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](https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl) might be useful.
-
-Once you have a certificate and key file name them `stash.crt` and `stash.key` and place them in the same directory as the `config.yml` file, or the `~/.stash` directory. Stash detects these and starts up using HTTPS rather than HTTP.
-
-## Basepath rewriting
-
-The basepath defaults to `/`. When running stash via a reverse proxy in a subpath, the basepath can be changed by having the reverse proxy pass `X-Forwarded-Prefix` (and optionally `X-Forwarded-Port`) headers. When detects these headers, it alters the basepath URL of the UI.
-
-# Customization
-
-## Themes and CSS Customization
-There is a [directory of community-created themes](https://github.com/stashapp/stash/wiki/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](https://github.com/stashapp/stash/wiki/Custom-CSS-snippets) and [CSS Tweaks](https://github.com/stashapp/stash/wiki/CSS-Tweaks).
-
# Support (FAQ)
Answers to other Frequently Asked Questions can be found [on our Wiki](https://github.com/stashapp/stash/wiki/FAQ)
@@ -86,73 +48,18 @@ Answers to other Frequently Asked Questions can be found [on our Wiki](https://g
For issues not addressed there, there are a few options.
* Read the [Wiki](https://github.com/stashapp/stash/wiki)
-* Check the in-app documentation (also available [here](https://github.com/stashapp/stash/tree/develop/ui/v2.5/src/docs/en)
+* Check the in-app documentation, in the top right corner of the app (also available [here](https://github.com/stashapp/stash/tree/develop/ui/v2.5/src/docs/en)
* Join the [Discord server](https://discord.gg/2TsNFKt), where the community can offer support.
-# Compiling From Source Code
+# Customization
-## Pre-requisites
+## Themes and CSS Customization
+There is a [directory of community-created themes](https://github.com/stashapp/stash/wiki/Themes) on our Wiki, along with instructions on how to install them.
-* [Go](https://golang.org/dl/)
-* [GolangCI](https://golangci-lint.run/) - A meta-linter which runs several linters in parallel
- * To install, follow the [local installation instructions](https://golangci-lint.run/usage/install/#local-installation)
-* [Yarn](https://yarnpkg.com/en/docs/install) - Yarn package manager
- * Run `yarn install --frozen-lockfile` in the `stash/ui/v2.5` folder (before running make generate for first time).
+You can also make Stash interface fit your desired style with [Custom CSS snippets](https://github.com/stashapp/stash/wiki/Custom-CSS-snippets).
-NOTE: You may need to run the `go get` commands outside the project directory to avoid modifying the projects module file.
+# For Developers
-## Environment
+Pull requests are welcome!
-### macOS
-
-TODO
-
-### Windows
-
-1. Download and install [Go for Windows](https://golang.org/dl/)
-2. Download and install [MingW](https://sourceforge.net/projects/mingw-w64/)
-3. Search for "advanced system settings" and open the system properties dialog.
- 1. Click the `Environment Variables` button
- 2. 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 and UI GraphQL files
-* `make build` - Builds the binary (make sure to build the UI as well... see below)
-* `make docker-build` - Locally builds and tags a complete 'stash/build' docker image
-* `make pre-ui` - Installs the UI dependencies. Only needs to be run once before building the UI for the first time, or if the dependencies are updated
-* `make fmt-ui` - Formats the UI source code
-* `make ui` - Builds the frontend
-* `make lint` - Run the linter on the backend
-* `make fmt` - Run `go fmt`
-* `make it` - Run the unit and integration tests
-* `make validate` - Run all of the tests and checks required to submit a PR
-* `make ui-start` - Runs the UI in development mode. Requires a running stash server to connect to. Stash port can be changed from the default of `9999` with environment variable `REACT_APP_PLATFORM_PORT`.
-
-## 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 the [CI-GoReleaser](https://github.com/bep/dockerfiles/tree/master/ci-goreleaser) 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`
-
-## Profiling
-
-Stash can be profiled using the `--cpuprofile