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 - [![Build](https://github.com/stashapp/stash/actions/workflows/build.yml/badge.svg?branch=develop&event=push)](https://github.com/stashapp/stash/actions/workflows/build.yml) +[![Docker pulls](https://img.shields.io/docker/pulls/stashapp/stash.svg)](https://hub.docker.com/r/stashapp/Stash 'DockerHub') [![Go Report Card](https://goreportcard.com/badge/github.com/stashapp/stash)](https://goreportcard.com/report/github.com/stashapp/stash) [![Discord](https://img.shields.io/discord/559159668438728723.svg?logo=discord)](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. +![demo image](docs/readme_assets/demo_image.png) + +* 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 ` command line flag. - -The resulting file can then be used with pprof as follows: - -`go tool pprof ` - -With `graphviz` installed and in the path, a call graph can be generated with: - -`go tool pprof -svg > ` +See [Development](docs/DEVELOPMENT.md) and [Contributing](docs/CONTRIBUTING.md) for information on working with the codebase, getting a local development setup, and contributing changes. \ No newline at end of file diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md new file mode 100644 index 000000000..e33b96018 --- /dev/null +++ b/docs/DEVELOPMENT.md @@ -0,0 +1,68 @@ +# Building from Source + +## Pre-requisites + +* [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). + +NOTE: You may need to run the `go get` commands outside the project directory to avoid modifying the projects module file. + +## Environment + +### 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. + +### macOS + +TODO + + +## 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 ` command line flag. + +The resulting file can then be used with pprof as follows: + +`go tool pprof ` + +With `graphviz` installed and in the path, a call graph can be generated with: + +`go tool pprof -svg > ` diff --git a/docs/readme_assets/demo_image.png b/docs/readme_assets/demo_image.png new file mode 100644 index 000000000..d951d0556 Binary files /dev/null and b/docs/readme_assets/demo_image.png differ diff --git a/docs/readme_assets/docker_logo.svg b/docs/readme_assets/docker_logo.svg new file mode 100644 index 000000000..df60469ef --- /dev/null +++ b/docs/readme_assets/docker_logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/readme_assets/linux_logo.svg b/docs/readme_assets/linux_logo.svg new file mode 100644 index 000000000..b6ca3d222 --- /dev/null +++ b/docs/readme_assets/linux_logo.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/readme_assets/mac_logo.svg b/docs/readme_assets/mac_logo.svg new file mode 100644 index 000000000..aaa4004f8 --- /dev/null +++ b/docs/readme_assets/mac_logo.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/readme_assets/windows_logo.svg b/docs/readme_assets/windows_logo.svg new file mode 100644 index 000000000..b66709569 --- /dev/null +++ b/docs/readme_assets/windows_logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file