[Skip to content](https://github.com/YouROK/TorrServer#start-of-content)

You signed in with another tab or window. [Reload](https://github.com/YouROK/TorrServer) to refresh your session.You signed out in another tab or window. [Reload](https://github.com/YouROK/TorrServer) to refresh your session.You switched accounts on another tab or window. [Reload](https://github.com/YouROK/TorrServer) to refresh your session.Dismiss alert

{{ message }}

[YouROK](https://github.com/YouROK)/ **[TorrServer](https://github.com/YouROK/TorrServer)** Public

- [Notifications](https://github.com/login?return_to=%2FYouROK%2FTorrServer) You must be signed in to change notification settings
- [Fork\\
328](https://github.com/login?return_to=%2FYouROK%2FTorrServer)
- [Star\\
2.8k](https://github.com/login?return_to=%2FYouROK%2FTorrServer)


master

[**9** Branches](https://github.com/YouROK/TorrServer/branches) [**167** Tags](https://github.com/YouROK/TorrServer/tags)

[Go to Branches page](https://github.com/YouROK/TorrServer/branches)[Go to Tags page](https://github.com/YouROK/TorrServer/tags)

Go to file

Code

Open more actions menu

## Folders and files

| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>[![YouROK](https://avatars.githubusercontent.com/u/4067300?v=4&size=40)](https://github.com/YouROK)[YouROK](https://github.com/YouROK/TorrServer/commits?author=YouROK)<br>[MatriX.142](https://github.com/YouROK/TorrServer/commit/f0585eb7dfc92e0e5fdcb17a7e7eead212201e7d)<br>success<br>yesterdayJul 3, 2026<br>[f0585eb](https://github.com/YouROK/TorrServer/commit/f0585eb7dfc92e0e5fdcb17a7e7eead212201e7d) · yesterdayJul 3, 2026<br>## History<br>[2,383 Commits](https://github.com/YouROK/TorrServer/commits/master/) <br>Open commit details<br>[View commit history for this file.](https://github.com/YouROK/TorrServer/commits/master/) 2,383 Commits |
| [.github](https://github.com/YouROK/TorrServer/tree/master/.github ".github") | [.github](https://github.com/YouROK/TorrServer/tree/master/.github ".github") | [feat(build): static binaries and update GStremer build tags (](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#772](https://github.com/YouROK/TorrServer/pull/772) [)](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | 2 days agoJul 2, 2026 |
| [docker](https://github.com/YouROK/TorrServer/tree/master/docker "docker") | [docker](https://github.com/YouROK/TorrServer/tree/master/docker "docker") | [Update README.md (](https://github.com/YouROK/TorrServer/commit/3a0f0fc1a8b714dfe942d809e67f70098baed560 "Update README.md (#559)  yourok/torrserver -> ghcr.io/yourok/torrserver") [#559](https://github.com/YouROK/TorrServer/pull/559) [)](https://github.com/YouROK/TorrServer/commit/3a0f0fc1a8b714dfe942d809e67f70098baed560 "Update README.md (#559)  yourok/torrserver -> ghcr.io/yourok/torrserver") | 10 months agoSep 12, 2025 |
| [nix](https://github.com/YouROK/TorrServer/tree/master/nix "nix") | [nix](https://github.com/YouROK/TorrServer/tree/master/nix "nix") | [feat(build): static binaries and update GStremer build tags (](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#772](https://github.com/YouROK/TorrServer/pull/772) [)](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | 2 days agoJul 2, 2026 |
| [patches](https://github.com/YouROK/TorrServer/tree/master/patches "patches") | [patches](https://github.com/YouROK/TorrServer/tree/master/patches "patches") | [add patches for anacrolix@torrent](https://github.com/YouROK/TorrServer/commit/d9af1e709f334478a2c254b4b03b260b82f39772 "add patches for anacrolix@torrent") | 4 years agoJun 1, 2022 |
| [server](https://github.com/YouROK/TorrServer/tree/master/server "server") | [server](https://github.com/YouROK/TorrServer/tree/master/server "server") | [MatriX.142](https://github.com/YouROK/TorrServer/commit/f0585eb7dfc92e0e5fdcb17a7e7eead212201e7d "MatriX.142") | yesterdayJul 3, 2026 |
| [web](https://github.com/YouROK/TorrServer/tree/master/web "web") | [web](https://github.com/YouROK/TorrServer/tree/master/web "web") | [Merge branch 'master' of](https://github.com/YouROK/TorrServer/commit/dca617237ca3676cc39d020686c3e4abbfccc5e9 "Merge branch 'master' of https://github.com/YouROK/TorrServer") [https://github.com/YouROK/TorrServer](https://github.com/YouROK/TorrServer) | yesterdayJul 3, 2026 |
| [.dockerignore](https://github.com/YouROK/TorrServer/blob/master/.dockerignore ".dockerignore") | [.dockerignore](https://github.com/YouROK/TorrServer/blob/master/.dockerignore ".dockerignore") | [Allow URL override, optimize docker image (](https://github.com/YouROK/TorrServer/commit/31701a4aa9b2f47f29827dadb4645c037af57724 "Allow URL override, optimize docker image (#486)  * Allow URL override, optimize docker image  Remove unused gulp  * Re-enable UPX") [#486](https://github.com/YouROK/TorrServer/pull/486) [)](https://github.com/YouROK/TorrServer/commit/31701a4aa9b2f47f29827dadb4645c037af57724 "Allow URL override, optimize docker image (#486)  * Allow URL override, optimize docker image  Remove unused gulp  * Re-enable UPX") | last yearJan 11, 2025 |
| [.gitignore](https://github.com/YouROK/TorrServer/blob/master/.gitignore ".gitignore") | [.gitignore](https://github.com/YouROK/TorrServer/blob/master/.gitignore ".gitignore") | [Update .gitignore](https://github.com/YouROK/TorrServer/commit/f49f607c07b9e34292e7a8fad94510b06c094622 "Update .gitignore") | last yearApr 9, 2025 |
| [.gitlab-ci.yml](https://github.com/YouROK/TorrServer/blob/master/.gitlab-ci.yml ".gitlab-ci.yml") | [.gitlab-ci.yml](https://github.com/YouROK/TorrServer/blob/master/.gitlab-ci.yml ".gitlab-ci.yml") | [change build for gitlab](https://github.com/YouROK/TorrServer/commit/2365d98b20ea3c08b3af389d7a9f97f8dc180c2a "change build for gitlab") | 3 years agoApr 20, 2023 |
| [Dockerfile](https://github.com/YouROK/TorrServer/blob/master/Dockerfile "Dockerfile") | [Dockerfile](https://github.com/YouROK/TorrServer/blob/master/Dockerfile "Dockerfile") | [chore(docker): update Go version from](https://github.com/YouROK/TorrServer/commit/5fe0c34a1a49e72c2a7f9a6e8e066e0807aa9a1e "chore(docker): update Go version from `1.26.3` to `1.26.4` (#741)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>")`1.26.3` [to](https://github.com/YouROK/TorrServer/commit/5fe0c34a1a49e72c2a7f9a6e8e066e0807aa9a1e "chore(docker): update Go version from `1.26.3` to `1.26.4` (#741)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>")`1.26.4` [(](https://github.com/YouROK/TorrServer/commit/5fe0c34a1a49e72c2a7f9a6e8e066e0807aa9a1e "chore(docker): update Go version from `1.26.3` to `1.26.4` (#741)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#741](https://github.com/YouROK/TorrServer/pull/741) [)](https://github.com/YouROK/TorrServer/commit/5fe0c34a1a49e72c2a7f9a6e8e066e0807aa9a1e "chore(docker): update Go version from `1.26.3` to `1.26.4` (#741)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | last monthJun 9, 2026 |
| [LICENSE](https://github.com/YouROK/TorrServer/blob/master/LICENSE "LICENSE") | [LICENSE](https://github.com/YouROK/TorrServer/blob/master/LICENSE "LICENSE") | [initial](https://github.com/YouROK/TorrServer/commit/0ca43a2c4db85a1b85b6e17b0f33fa5a8699c99d "initial") | 8 years agoAug 29, 2018 |
| [README.md](https://github.com/YouROK/TorrServer/blob/master/README.md "README.md") | [README.md](https://github.com/YouROK/TorrServer/blob/master/README.md "README.md") | [feat(build): static binaries and update GStremer build tags (](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#772](https://github.com/YouROK/TorrServer/pull/772) [)](https://github.com/YouROK/TorrServer/commit/6241f72f877ede5bb57eabde8fae619a2a0e82f5 "feat(build): static binaries and update GStremer build tags (#772)  * feat(build): enable CGO support for static binaries and update GStreamer build tags  - Set CGO_ENABLED=0 in build scripts to ensure static binaries without dynamic library dependencies. - Updated GStreamer build tags in multiple files to include 'gst' for better control over build conditions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * docs(README): clarify GStreamer settings API behavior for standard and -gst builds  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(gstreamer): Swagger integration for GStreamer endpoints  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): update GStreamer API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  * feat(docs): add BasicAuth security definitions to API documentation  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>  ---------  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | 2 days agoJul 2, 2026 |
| [build-all.sh](https://github.com/YouROK/TorrServer/blob/master/build-all.sh "build-all.sh") | [build-all.sh](https://github.com/YouROK/TorrServer/blob/master/build-all.sh "build-all.sh") | [fix: build-all.sh to add GStreamer build section (](https://github.com/YouROK/TorrServer/commit/b280f3d8ecda20c0d80b6202d5599674b249fe94 "fix: build-all.sh to add GStreamer build section (#779)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#779](https://github.com/YouROK/TorrServer/pull/779) [)](https://github.com/YouROK/TorrServer/commit/b280f3d8ecda20c0d80b6202d5599674b249fe94 "fix: build-all.sh to add GStreamer build section (#779)  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | yesterdayJul 3, 2026 |
| [docker-all.sh](https://github.com/YouROK/TorrServer/blob/master/docker-all.sh "docker-all.sh") | [docker-all.sh](https://github.com/YouROK/TorrServer/blob/master/docker-all.sh "docker-all.sh") | [go 1.17.5](https://github.com/YouROK/TorrServer/commit/b74a8a05931766c95e4525bdf0129d15f365b996 "go 1.17.5") | 5 years agoDec 29, 2021 |
| [docker-entrypoint.sh](https://github.com/YouROK/TorrServer/blob/master/docker-entrypoint.sh "docker-entrypoint.sh") | [docker-entrypoint.sh](https://github.com/YouROK/TorrServer/blob/master/docker-entrypoint.sh "docker-entrypoint.sh") | [fix shell syntax errors for docker-entrypoint.sh (](https://github.com/YouROK/TorrServer/commit/3437bc3645a99b1a5d47c63d2635d51e129899d5 "fix shell syntax errors for docker-entrypoint.sh (#649)") [#649](https://github.com/YouROK/TorrServer/pull/649) [)](https://github.com/YouROK/TorrServer/commit/3437bc3645a99b1a5d47c63d2635d51e129899d5 "fix shell syntax errors for docker-entrypoint.sh (#649)") | 5 months agoFeb 7, 2026 |
| [flake.nix](https://github.com/YouROK/TorrServer/blob/master/flake.nix "flake.nix") | [flake.nix](https://github.com/YouROK/TorrServer/blob/master/flake.nix "flake.nix") | [feat(nix): add flake with NixOS and Home Manager modules for TorrServ…](https://github.com/YouROK/TorrServer/commit/5203cc8a9022e0fefb98d0b0d7b4085ffedd5c7e "feat(nix): add flake with NixOS and Home Manager modules for TorrServer (#666)  Add Nix flake for TorrServer with offline builds and module system  - Implement fully offline build using fetchYarnDeps and buildGoModule - Add NixOS module with systemd service, user/group management, and firewall rules - Add Home Manager module with user service and proper directory handling - Support all TorrServer options: port, auth, SSL, WebDAV, DLNA, cache limits, etc. - Fix swag documentation generation with proper parsing flags - Set Go 1.26 to match project requirements - Ensure reproducible builds without network access  Tested with NixOS 26.05 (Yarara) and standalone home-manager on Ubuntu 24.04") | 3 months agoApr 15, 2026 |
| [gen\_web.go](https://github.com/YouROK/TorrServer/blob/master/gen_web.go "gen_web.go") | [gen\_web.go](https://github.com/YouROK/TorrServer/blob/master/gen_web.go "gen_web.go") | [Ability to change cover (](https://github.com/YouROK/TorrServer/commit/b2406daaf832f0466a3d65bd18f203cb9e51934d "Ability to change cover (#605)  * fix: #488 Была проблема со слешем под windows и именно на новых добавленных торрентах  * feat: Update cover  * fix: Repair windows web build (with addition for clean web build)  * chore: Not build for incoming uncontrolled args  ---------  Co-authored-by: Lomik_XP <lomikxp@mail.ru>") [#605](https://github.com/YouROK/TorrServer/pull/605) [)](https://github.com/YouROK/TorrServer/commit/b2406daaf832f0466a3d65bd18f203cb9e51934d "Ability to change cover (#605)  * fix: #488 Была проблема со слешем под windows и именно на новых добавленных торрентах  * feat: Update cover  * fix: Repair windows web build (with addition for clean web build)  * chore: Not build for incoming uncontrolled args  ---------  Co-authored-by: Lomik_XP <lomikxp@mail.ru>") | 7 months agoDec 22, 2025 |
| [installTorrServerLinux.sh](https://github.com/YouROK/TorrServer/blob/master/installTorrServerLinux.sh "installTorrServerLinux.sh") | [installTorrServerLinux.sh](https://github.com/YouROK/TorrServer/blob/master/installTorrServerLinux.sh "installTorrServerLinux.sh") | [feat(install): add GStreamer build support for transcoding (](https://github.com/YouROK/TorrServer/commit/0fda37aedf4d9e86904e3e237e83b4ff59d3ba76 "feat(install): add GStreamer build support for transcoding (#764)  - Introduced options to install GStreamer (gst) build with transcoding support in both Linux and macOS installation scripts. - Added command-line flags and user prompts for GStreamer installation. - Updated README to reflect new GStreamer build availability and usage instructions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#764](https://github.com/YouROK/TorrServer/pull/764) [)](https://github.com/YouROK/TorrServer/commit/0fda37aedf4d9e86904e3e237e83b4ff59d3ba76 "feat(install): add GStreamer build support for transcoding (#764)  - Introduced options to install GStreamer (gst) build with transcoding support in both Linux and macOS installation scripts. - Added command-line flags and user prompts for GStreamer installation. - Updated README to reflect new GStreamer build availability and usage instructions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | 4 days agoJun 30, 2026 |
| [installTorrServerMac.sh](https://github.com/YouROK/TorrServer/blob/master/installTorrServerMac.sh "installTorrServerMac.sh") | [installTorrServerMac.sh](https://github.com/YouROK/TorrServer/blob/master/installTorrServerMac.sh "installTorrServerMac.sh") | [feat(install): add GStreamer build support for transcoding (](https://github.com/YouROK/TorrServer/commit/0fda37aedf4d9e86904e3e237e83b4ff59d3ba76 "feat(install): add GStreamer build support for transcoding (#764)  - Introduced options to install GStreamer (gst) build with transcoding support in both Linux and macOS installation scripts. - Added command-line flags and user prompts for GStreamer installation. - Updated README to reflect new GStreamer build availability and usage instructions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") [#764](https://github.com/YouROK/TorrServer/pull/764) [)](https://github.com/YouROK/TorrServer/commit/0fda37aedf4d9e86904e3e237e83b4ff59d3ba76 "feat(install): add GStreamer build support for transcoding (#764)  - Introduced options to install GStreamer (gst) build with transcoding support in both Linux and macOS installation scripts. - Added command-line flags and user prompts for GStreamer installation. - Updated README to reflect new GStreamer build availability and usage instructions.  Signed-off-by: Pavel Pikta <devops@pavelpikta.com>") | 4 days agoJun 30, 2026 |
| [release.json](https://github.com/YouROK/TorrServer/blob/master/release.json "release.json") | [release.json](https://github.com/YouROK/TorrServer/blob/master/release.json "release.json") | [revert release json](https://github.com/YouROK/TorrServer/commit/13d7d8a678a4b6a6e9952af137bd66ee47dd80cc "revert release json") | 6 years agoJan 21, 2021 |
| [torrserver.service](https://github.com/YouROK/TorrServer/blob/master/torrserver.service "torrserver.service") | [torrserver.service](https://github.com/YouROK/TorrServer/blob/master/torrserver.service "torrserver.service") | [update service](https://github.com/YouROK/TorrServer/commit/d36d0c28f805ceab39adb4aac2869cd7a272085b "update service") | 5 years agoMar 9, 2021 |
| [upx](https://github.com/YouROK/TorrServer/blob/master/upx "upx") | [upx](https://github.com/YouROK/TorrServer/blob/master/upx "upx") | [add upx bin](https://github.com/YouROK/TorrServer/commit/f1e7a63d702457c935101e4a144fde28ab9c0519 "add upx bin") | 5 years agoAug 16, 2021 |
| View all files |

## Repository files navigation

![](https://private-user-images.githubusercontent.com/144587546/275184925-53f7175a-cda4-4a06-86b6-2ac07582dcf1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODMyMjA3OTgsIm5iZiI6MTc4MzIyMDQ5OCwicGF0aCI6Ii8xNDQ1ODc1NDYvMjc1MTg0OTI1LTUzZjcxNzVhLWNkYTQtNGEwNi04NmI2LTJhYzA3NTgyZGNmMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNzA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDcwNVQwMzAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MWVkZWQxODVkMDNmZmMyZWE1NWM1NmJhYTZjYTE1YTI3N2ExMjNlNWIwZTE4Y2IyZmE5YmM0ZWJkMDk5MTY0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.CKIEbxILVuyqCtpdE4_jE7VDqzRjj0qtvip1gFb1Kw4)

Simple and powerful tool for streaming torrents.


[![GitHub](https://camo.githubusercontent.com/728ff46e20de7086cc8d510c024c12c678d46f293be211fd282b58d09fe0dc75/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f596f75524f4b2f546f7272536572766572)](https://github.com/YouROK/TorrServer/blob/master/LICENSE)[![](https://camo.githubusercontent.com/855e1c4af1fb5eba6ef795d9d59c1644986d29653b638e8fc69c62f1b50f8aa9/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f596f75524f4b2f546f7272536572766572)](https://goreportcard.com/report/github.com/YouROK/TorrServer)[![Go Reference](https://camo.githubusercontent.com/cca45d43cf805cb95de06425c29cf3169ef06702411667090d1655250cadf625/68747470733a2f2f706b672e676f2e6465762f62616467652f6769746875622e636f6d2f596f75524f4b2f546f72725365727665722e737667)](https://pkg.go.dev/github.com/YouROK/TorrServer)[![CodeFactor](https://camo.githubusercontent.com/9e93e892d0685e1bf7a1d0bd7c8410d6ecf2086a0a7b48dd58a6b96fa556ea2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174)](https://github.com/YouROK/TorrServer/issues)[![Build](https://camo.githubusercontent.com/4329bf5c5d242e9c3a1c1d2ed595d64d199139ac6018819ae5dd23eb3e927b97/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f596f75524f4b2f546f72725365727665722f646f636b65725f696d6167652e796d6c3f6c6f676f3d476974687562)](https://github.com/YouROK/TorrServer/actions/workflows/docker_image.yml)[![GitHub release (latest SemVer)](https://camo.githubusercontent.com/7affb1ca722db3d4e66841bf9394bb1ed93d135cd18d236372a14798e11838aa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f596f75524f4b2f546f72725365727665723f6c6162656c3d76657273696f6e)](https://github.com/YouROK/TorrServer/releases)[![GitHub tag (latest SemVer pre-release)](https://camo.githubusercontent.com/d60a88f3d18edeb529eec21832a66a1218a049154aa25b506ed309ca4b9978cc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f596f75524f4b2f546f72725365727665723f696e636c7564655f70726572656c6561736573266c6162656c3d7072652d72656c65617365)](https://github.com/YouROK/TorrServer/tags)

## Introduction

[Permalink: Introduction](https://github.com/YouROK/TorrServer#introduction)

TorrServer is a program that allows users to view torrents online without the need for preliminary file downloading.
The core functionality of TorrServer includes caching torrents and subsequent data transfer via the HTTP protocol,
allowing the cache size to be adjusted according to the system parameters and the user's internet connection speed.

## AI Documentation

[Permalink: AI Documentation](https://github.com/YouROK/TorrServer#ai-documentation)

[![Ask DeepWiki](https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667)](https://deepwiki.com/YouROK/TorrServer)

## Features

[Permalink: Features](https://github.com/YouROK/TorrServer#features)

- Caching
- Streaming
- Local and Remote Server
- Viewing torrents on various devices
- Integration with other apps through API
- Torznab search (Jackett, Prowlarr, and similar indexer managers)
- Cross-browser modern web interface
- Optional DLNA server
- Optional GStreamer HLS transcoding support (`-gst` builds from release 141.10))

## Getting Started

[Permalink: Getting Started](https://github.com/YouROK/TorrServer#getting-started)

### Installation

[Permalink: Installation](https://github.com/YouROK/TorrServer#installation)

Download the application for the required platform in the [releases](https://github.com/YouROK/TorrServer/releases) page. After installation, open the link [http://127.0.0.1:8090](http://127.0.0.1:8090/) in the browser.

Standard binaries are named `TorrServer-<platform>-<arch>` (for example, `TorrServer-linux-amd64`). From release **141.10**, an optional **GStreamer (gst)** build is also available as `TorrServer-gst-<platform>-<arch>` with transcoding support (published for **amd64** and **arm64** only). The install scripts below can install either variant.

#### Windows

[Permalink: Windows](https://github.com/YouROK/TorrServer#windows)

Run `TorrServer-windows-amd64.exe`.

#### Linux

[Permalink: Linux](https://github.com/YouROK/TorrServer#linux)

Run in console

```
curl -s https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerLinux.sh | sudo bash
```

The script supports interactive and non-interactive installation, configuration, updates, and removal. When running the script interactively, you can:

- **Install/Update**: Choose to install or update TorrServer
- **GStreamer build**: For releases 141.10+ on amd64/arm64, choose the gst build with transcoding support (or pass `--gst`)
- **Reconfigure**: If TorrServer is already installed, you'll be prompted to reconfigure settings (port, auth, read-only mode, logging, BBR)
- **Uninstall**: Type `Delete` (or `Удалить` in Russian) to uninstall TorrServer

**Download first and set execute permissions:**

```
curl -s https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerLinux.sh -o installTorrServerLinux.sh && chmod 755 installTorrServerLinux.sh
```

**Command-line examples:**

- Install a specific version:



```
sudo bash ./installTorrServerLinux.sh --install 135 --silent
```

- Update to latest version:



```
sudo bash ./installTorrServerLinux.sh --update --silent
```

- Install GStreamer build (141.10+):



```
sudo bash ./installTorrServerLinux.sh --install --gst
sudo bash ./installTorrServerLinux.sh --update --gst --silent
```

- Reconfigure settings interactively:



```
sudo bash ./installTorrServerLinux.sh --reconfigure
```

- Check for updates:



```
sudo bash ./installTorrServerLinux.sh --check
```

- Downgrade to a specific version:



```
sudo bash ./installTorrServerLinux.sh --down 135
```

- Remove/uninstall:



```
sudo bash ./installTorrServerLinux.sh --remove --silent
```

- Change the systemd service user:



```
sudo bash ./installTorrServerLinux.sh --change-user root --silent
```


**All available commands:**

- `--install [VERSION]` \- Install latest or specific version
- `--update` \- Update to latest version
- `--reconfigure` \- Reconfigure TorrServer settings (port, auth, read-only mode, logging, BBR)
- `--check` \- Check for updates (version info only)
- `--down VERSION` \- Downgrade to specific version
- `--remove` \- Uninstall TorrServer
- `--change-user USER` \- Change service user (root\|torrserver)
- `--gst` \- Install GStreamer build with transcoding support (141.10+, amd64/arm64 only)
- `--root` \- Run service as root user
- `--silent` \- Non-interactive mode with defaults
- `--help` \- Show help message

#### macOS

[Permalink: macOS](https://github.com/YouROK/TorrServer#macos)

Run in Terminal.app

```
curl -s https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerMac.sh -o installTorrserverMac.sh && chmod 755 installTorrServerMac.sh && bash ./installTorrServerMac.sh
```

The macOS install script supports the same commands as the Linux script, including `--install`, `--update`, `--remove`, `--reconfigure`, and `--gst` for the GStreamer build (141.10+).

**Command-line examples:**

- Install latest version:



```
bash ./installTorrServerMac.sh --install
```

- Install GStreamer build:



```
bash ./installTorrServerMac.sh --install --gst
```

- Update silently:



```
bash ./installTorrServerMac.sh --update --silent
```


Alternative install script for Intel Macs: [https://github.com/dancheskus/TorrServerMacInstaller](https://github.com/dancheskus/TorrServerMacInstaller)

#### IOCage Plugin (Unofficial)

[Permalink: IOCage Plugin (Unofficial)](https://github.com/YouROK/TorrServer#iocage-plugin-unofficial)

On FreeBSD (TrueNAS/FreeNAS) you can use this plugin: [https://github.com/filka96/iocage-plugin-TorrServer](https://github.com/filka96/iocage-plugin-TorrServer)

#### NAS Systems (Unofficial)

[Permalink: NAS Systems (Unofficial)](https://github.com/YouROK/TorrServer#nas-systems-unofficial)

- Several releases are available through this link: [https://github.com/vladlenas](https://github.com/vladlenas)
- **Synology NAS** packages repo source: [https://grigi.lt](https://grigi.lt/)

### Server args

[Permalink: Server args](https://github.com/YouROK/TorrServer#server-args)

- `--port PORT`, `-p PORT` \- web server port (default 8090)
- `--ip IP`, `-i IP` \- web server addr (default empty, binds to all interfaces)
- `--ssl` \- enables https for web server
- `--sslport PORT` \- web server https port (default 8091). If not set, will be taken from db (if stored previously) or the default will be used.
- `--sslcert PATH` \- path to ssl cert file. If not set, will be taken from db (if stored previously) or default self-signed certificate/key will be generated.
- `--sslkey PATH` \- path to ssl key file. If not set, will be taken from db (if stored previously) or default self-signed certificate/key will be generated.
- `--force-https` \- with `--ssl`, the HTTP listener (`--port`) answers only with **307 Temporary Redirect** to the same path on HTTPS (`--sslport`). The web UI and API are served on HTTPS only; nothing is served on HTTP except redirects. Requires `--ssl` (startup fails if `--force-https` is set without `--ssl`). Default is off so plain HTTP still works when SSL is disabled.
- `--path PATH`, `-d PATH` \- database and config dir path
- `--logpath LOGPATH`, `-l LOGPATH` \- server log file path
- `--weblogpath WEBLOGPATH`, `-w WEBLOGPATH` \- web access log file path
- `--rdb`, `-r` \- start in read-only DB mode
- `--httpauth`, `-a` \- enable http auth on all requests
- `--dontkill`, `-k` \- don't kill server on signal
- `--ui`, `-u` \- open torrserver page in browser
- `--torrentsdir TORRENTSDIR`, `-t TORRENTSDIR` \- autoload torrents from dir
- `--torrentaddr TORRENTADDR` \- Torrent client address (format \[IP\]:PORT, ex. :32000, 127.0.0.1:32768 etc)
- `--pubipv4 PUBIPV4`, `-4 PUBIPV4` \- set public IPv4 addr
- `--pubipv6 PUBIPV6`, `-6 PUBIPV6` \- set public IPv6 addr
- `--searchwa`, `-s` \- allow search without authentication
- `--maxsize MAXSIZE`, `-m MAXSIZE` \- max allowed stream size (in Bytes)
- `--tg TGTOKEN`, `-T TGTOKEN` \- [Telegram bot](https://github.com/YouROK/TorrServer/blob/master/server/tgbot/README.md) token
- `--fuse FUSEPATH`, `-f FUSEPATH` \- fuse mount path
- `--webdav` \- enable web dav
- `--proxyurl PROXYURL` \- set proxy URL for BitTorrent traffic (http, socks4, socks5, socks5h), example: socks5h://user: [password@example.com](mailto:password@example.com):2080
- `--proxymode PROXYMODE` \- set proxy mode: "tracker" (only HTTP trackers, default), "peers" (only peer connections), or "full" (all traffic)
- `--help`, `-h` \- display this help and exit
- `--version` \- display version and exit

Example:

```
TorrServer-darwin-arm64 [--port PORT] [--ip IP] [--path PATH] [--logpath LOGPATH] [--weblogpath WEBLOGPATH] [--rdb] [--httpauth] [--dontkill] [--ui] [--torrentsdir TORRENTSDIR] [--torrentaddr TORRENTADDR] [--pubipv4 PUBIPV4] [--pubipv6 PUBIPV6] [--searchwa] [--maxsize MAXSIZE] [--tg TGTOKEN] [--fuse FUSEPATH] [--webdav] [--ssl] [--sslport PORT] [--sslcert PATH] [--sslkey PATH] [--force-https]
```

### Running in Docker & Docker Compose

[Permalink: Running in Docker & Docker Compose](https://github.com/YouROK/TorrServer#running-in-docker--docker-compose)

Run in console

```
docker run --rm -d --name torrserver -p 8090:8090 ghcr.io/yourok/torrserver:latest
```

For running in persistence mode, just mount volume to container by adding `-v ~/ts:/opt/ts`, where `~/ts` folder path is just example, but you could use it anyway... Result example command:

```
docker run --rm -d --name torrserver -v ~/ts:/opt/ts -p 8090:8090 ghcr.io/yourok/torrserver:latest
```

#### Environments

[Permalink: Environments](https://github.com/YouROK/TorrServer#environments)

- `TS_HTTPAUTH` \- 1, and place auth file into `~/ts/config` folder for enabling basic auth
- `TS_RDB` \- if 1, then the enabling `--rdb` flag
- `TS_DONTKILL` \- if 1, then the enabling `--dontkill` flag
- `TS_PORT` \- for changind default port to **5555** (example), also u need to change `-p 8090:8090` to `-p 5555:5555` (example)
- `TS_CONF_PATH` \- for overriding torrserver config path inside container. Example `/opt/tsss`
- `TS_TORR_DIR` \- for overriding torrents directory. Example `/opt/torr_files`
- `TS_LOG_PATH` \- for overriding log path. Example `/opt/torrserver.log`
- `TS_PROXYURL` \- set proxy URL for BitTorrent traffic (http, socks4, socks5, socks5h), example: socks5h://user: [password@example.com](mailto:password@example.com):2080
- `TS_PROXYMODE` \- set proxy mode: "tracker" (only HTTP trackers, default), "peers" (only peer connections), or "full" (all traffic)

Example with full overrided command (on default values):

```
docker run --rm -d -e TS_PORT=5665 -e TS_DONTKILL=1 -e TS_HTTPAUTH=1 -e TS_RDB=1 -e TS_CONF_PATH=/opt/ts/config -e TS_LOG_PATH=/opt/ts/log -e TS_TORR_DIR=/opt/ts/torrents -e TS_PROXYURL=socks5h://user:password@example.com:2080 -e TS_PROXYMODE=tracker --name torrserver -v ~/ts:/opt/ts -p 5665:5665 ghcr.io/yourok/torrserver:latest
```

#### Docker Compose

[Permalink: Docker Compose](https://github.com/YouROK/TorrServer#docker-compose)

```
# docker-compose.yml

version: '3.3'
services:
    torrserver:
        image: ghcr.io/yourok/torrserver
        container_name: torrserver
        network_mode: host    # to allow DLNA feature
        environment:
            - TS_PORT=5665
            - TS_DONTKILL=1
            - TS_HTTPAUTH=0
            - TS_CONF_PATH=/opt/ts/config
            - TS_TORR_DIR=/opt/ts/torrents
        volumes:
            - './CACHE:/opt/ts/torrents'
            - './CONFIG:/opt/ts/config'
        ports:
            - '5665:5665'
        restart: unless-stopped

```

### Smart TV (using Media Station X)

[Permalink: Smart TV (using Media Station X)](https://github.com/YouROK/TorrServer#smart-tv-using-media-station-x)

1. Install **Media Station X** on your Smart TV (see [platform support](https://msx.benzac.de/info/?tab=PlatformSupport))

2. Open it and go to: **Settings -> Start Parameter -> Setup**

3. Enter current ip and port of the TorrServe(r), e.g. `127.0.0.1:8090`


## Development

[Permalink: Development](https://github.com/YouROK/TorrServer#development)

### Go server

[Permalink: Go server](https://github.com/YouROK/TorrServer#go-server)

To run the Go server locally, just run

```
cd server
go run ./cmd
```

### Web development

[Permalink: Web development](https://github.com/YouROK/TorrServer#web-development)

To run the web server locally, just run

```
yarn start
```

More info at [https://github.com/YouROK/TorrServer/tree/master/web#readme](https://github.com/YouROK/TorrServer/tree/master/web#readme)

### Build

[Permalink: Build](https://github.com/YouROK/TorrServer#build)

#### Server

[Permalink: Server](https://github.com/YouROK/TorrServer#server)

- Install [Golang](https://golang.org/doc/install) 1.20+
- Go to the TorrServer source directory
- Run build script under linux or macOS `build-all.sh`

#### Web

[Permalink: Web](https://github.com/YouROK/TorrServer#web)

- Install **npm** and **yarn**
- Go to the web directory
- Run `NODE_OPTIONS=--openssl-legacy-provider yarn build`

#### Android

[Permalink: Android](https://github.com/YouROK/TorrServer#android)

To build an Android server you will need the Android Toolchain.

#### Swagger

[Permalink: Swagger](https://github.com/YouROK/TorrServer#swagger)

`swag` must be installed on the system to \[re\]build Swagger documentation.

```
go install github.com/swaggo/swag/cmd/swag@latest
cd server
swag init -g web/server.go --parseDependency --parseInternal --parseDepth 5

# Documentation can be linted using
swag fmt
```

Standard binaries serve a filtered Swagger spec at runtime (only `/gst/settings`); `-gst` builds include all `/gst/*` endpoints.

## API

[Permalink: API](https://github.com/YouROK/TorrServer#api)

### API Docs

[Permalink: API Docs](https://github.com/YouROK/TorrServer#api-docs)

API documentation is hosted as Swagger format available at path `/swagger/index.html`.

## Authentication

[Permalink: Authentication](https://github.com/YouROK/TorrServer#authentication)

The users data file should be located near to the settings. Basic auth, read more in wiki [https://en.wikipedia.org/wiki/Basic\_access\_authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).

`accs.db` in JSON format:

```
{
    "User1": "Pass1",
    "User2": "Pass2"
}
```

Note: You should enable authentication with -a (--httpauth) TorrServer startup option.

## Whitelist/Blacklist IP

[Permalink: Whitelist/Blacklist IP](https://github.com/YouROK/TorrServer#whitelistblacklist-ip)

The lists file should be located in the same directory with config.db.

- Whitelist file name: `wip.txt`
- Blacklist file name: `bip.txt`

Whitelist has priority over everything else.

Example:

```
local:127.0.0.0-127.0.0.255
127.0.0.0-127.0.0.255
local:127.0.0.1
127.0.0.1
# at the beginning of the line, comment
```

## Torznab

[Permalink: Torznab](https://github.com/YouROK/TorrServer#torznab)

TorrServer can talk to **Torznab** indexers so you can search for torrents from tools like **Jackett** and **Prowlarr**, including searching several configured indexers at once.

Configure it in the web UI: **Settings → Torznab**.

### Indexer parameters

[Permalink: Indexer parameters](https://github.com/YouROK/TorrServer#indexer-parameters)

Each Torznab indexer needs:

- **Host URL**: full URL to the Torznab API endpoint.


  - Jackett example:

```
http://192.168.1.10:9117/api/v2.0/indexers/all/results/torznab/
```

  - Prowlarr example:

```
http://localhost:9696/1
```

  - Make sure to include the correct trailing slash (`/`) in your indexer's URL,
    as required by your Torznab provider. TorrServer will try to properly format the path,
    but matching your indexer's expected format is best to avoid connection issues.
- **API Key**: the key from your Torznab indexer manager.


### Enabling Torznab search

[Permalink: Enabling Torznab search](https://github.com/YouROK/TorrServer#enabling-torznab-search)

1. Open **Settings**.
2. Open the **Torznab** tab.
3. Turn on **Enable Torznab Search**.
4. Enter **Host URL** and **API Key**, then **Add Server** for each indexer.
5. **Save** settings.

## GStreamer

[Permalink: GStreamer](https://github.com/YouROK/TorrServer#gstreamer)

GStreamer enables **HLS transcoding** for Matroska/WebM torrents when the client cannot play the original video or audio codec directly.

### The `-gst` binary (main requirement)

[Permalink: The -gst binary (main requirement)](https://github.com/YouROK/TorrServer#the--gst-binary-main-requirement)

The **only** way to enable GStreamer in TorrServer is to run a build compiled with the `gst` tag. There is no on/off switch in `settings.json`.

| Binary | GStreamer |
| --- | --- |
| `TorrServer-gst-<os>-<arch>` | **Yes** — `/gst/*` routes and transcoding |
| `TorrServer-<os>-<arch>` (standard) | **No** — `GET /gst/settings` returns `built_in: false`; `POST` is rejected and pipelines do not run |

Download `TorrServer-gst-*` from [releases](https://github.com/YouROK/TorrServer/releases) (Windows/Linux amd64+arm64/macOS amd64+arm64), or build:

```
cd server
go build -tags="nosqlite gst" -trimpath -o TorrServer-gst ./cmd
```

Windows builds with embedded libs additionally use the `embed_gstlib` tag (see below).

Per-codec behavior is configured in the `gstreamer` settings block (`TranscodeH264`, `TranscodeH265`, `TranscodeAV1`, `TranscodeVP9`).

Linux/macOS [install scripts](https://github.com/YouROK/TorrServer/blob/master/installTorrServerLinux.sh) install the **standard** binary only — for GStreamer, use the `-gst` release manually.

### Bundled vs dynamically loaded GStreamer

[Permalink: Bundled vs dynamically loaded GStreamer](https://github.com/YouROK/TorrServer#bundled-vs-dynamically-loaded-gstreamer)

TorrServer itself stays a single Go binary. GStreamer is **not** linked into it at compile time (Linux/macOS/Windows use runtime loading via `dlopen` / `LoadLibrary`). What changes is **where** the GStreamer libraries and plugins come from:

| Mode | How it works | Typical use |
| --- | --- | --- |
| **Bundled (embedded)** | GStreamer runtime is packed inside the `-gst` binary and extracted to cache on first run | Windows `TorrServer-gst-windows-amd64.exe` built with `embed_gstlib` |
| **Bundled (portable)** | Place a `gst-lib/` directory next to the TorrServer executable (same layout as an extracted GStreamer runtime) | Portable installs, custom deployments |
| **Dynamic (system)** | TorrServer loads `libgstreamer` / DLLs from OS packages or a system install path (`GSTPath`, `/opt/gstreamer`, framework path, etc.) | Linux, macOS, Windows with [official GStreamer installer](https://gstreamer.freedesktop.org/download/) |

Auto-detection order includes: `GSTPath` from settings → `gst-lib/` beside the binary → common system paths → `LD_LIBRARY_PATH` / `PATH`.

Verify whichever mode you use with `GET /gst/echo` or the status lines on the **GStreamer** settings tab.

### Installing GStreamer for dynamic loading

[Permalink: Installing GStreamer for dynamic loading](https://github.com/YouROK/TorrServer#installing-gstreamer-for-dynamic-loading)

Only needed when GStreamer is **not** already bundled (most Linux/macOS `-gst` builds, Windows without `embed_gstlib`).

**Debian / Ubuntu**

```
sudo apt update
sudo apt install -y \
  gstreamer1.0-tools \
  gstreamer1.0-plugins-base \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav
```

**Fedora / RHEL / Rocky / AlmaLinux**

```
sudo dnf install -y \
  gstreamer1-tools \
  gstreamer1-plugins-base \
  gstreamer1-plugins-good \
  gstreamer1-plugins-bad-free \
  gstreamer1-plugins-ugly-free \
  gstreamer1-libav
```

`x264enc` (used when transcoding video to H.264) may require [RPM Fusion](https://rpmfusion.org/) on Fedora.

**Arch Linux**

```
sudo pacman -S --needed \
  gst-plugins-base \
  gst-plugins-good \
  gst-plugins-bad \
  gst-plugins-ugly \
  gst-libav
```

**macOS**

[Official framework](https://gstreamer.freedesktop.org/download/) or Homebrew:

```
brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
```

Set `GSTPath` if needed (e.g. `/Library/Frameworks/GStreamer.framework/Versions/1.0`).

**Windows (dynamic)**

Install MSVC 64-bit runtime from [gstreamer.freedesktop.org](https://gstreamer.freedesktop.org/download/) (default: `C:\Program Files\gstreamer\1.0\mingw_x86_64`), or use a `gst-lib/` folder next to the exe. Embedded `-gst` Windows builds may not need a separate install.

### Web UI configuration

[Permalink: Web UI configuration](https://github.com/YouROK/TorrServer#web-ui-configuration)

1. Open **Settings**.
2. Enable **PRO mode**.
3. Open the **GStreamer** tab.
4. Adjust options and click **Save GStreamer Settings**.

Settings are stored separately from main BitTorrent settings and take effect immediately for new streams.

### `settings.json` block

[Permalink: settings.json block](https://github.com/YouROK/TorrServer#settingsjson-block)

GStreamer options are stored in `settings.json` under the `gstreamer` key (inside the `Settings` section). Legacy keys `gst` and `GStreamer` are still read on load; saving from the web UI or API writes the `gstreamer` key.

Example (`settings.json`):

```
{
  "gstreamer": {
    "GSTVersion": 1.26,
    "GSTPath": "",
    "Source": "stream",
    "InactiveMinutes": 5,
    "AACBitrateKbps": 256,
    "SegmentSeconds": 6,
    "appsinkBuffers": 1000,
    "TranscodeH264": false,
    "TranscodeH265": false,
    "TranscodeAV1": false,
    "TranscodeVP9": false,
    "VideoBitrate": 10000,
    "tempfs": false,
    "tempfs_ring": 0
  }
}
```

| Field | Description |
| --- | --- |
| `GSTVersion` | Installed GStreamer version (minimum `1.26`, e.g. `1.26`, `1.28`). Used for pipeline feature selection. |
| `GSTPath` | Path to GStreamer installation. Empty = auto-detection. |
| `Source` | Input URL mode: `stream` (`/stream/...`) or `play` (`/play/...`). |
| `InactiveMinutes` | Freeze pipeline after this many minutes without playback. |
| `AACBitrateKbps` | Audio transcoding bitrate in kbps. |
| `SegmentSeconds` | HLS segment length in seconds. |
| `appsinkBuffers` | Number of buffers in the appsink queue. |
| `TranscodeH264` | Transcode H.264 video when needed. |
| `TranscodeH265` | Transcode H.265/HEVC video when needed. |
| `TranscodeAV1` | Transcode AV1 video when needed. |
| `TranscodeVP9` | Transcode VP9 video when needed. |
| `VideoBitrate` | Target video bitrate in kbps when transcoding. |
| `tempfs` | Use memory-backed tempfs for segments (Linux). |
| `tempfs_ring` | Extra tempfs ring blocks (`0` = default). |

### API

[Permalink: API](https://github.com/YouROK/TorrServer#api-1)

**Settings** (requires authentication when `--httpauth` is enabled; read/write only in `-gst` builds):

- `GET /gst/settings` — on `-gst` builds: `built_in`, current config, and platform defaults; on standard builds: `{ "built_in": false }` only

- `POST /gst/settings` — update or reset config (`404` on standard builds)



```
{ "action": "set", "config": { "GSTVersion": 1.26, "Source": "stream" } }
```







Reset to defaults:



```
{ "action": "def" }
```


**Streaming** (available in `-gst` builds):

| Endpoint | Description |
| --- | --- |
| `GET /gst/echo` | GStreamer / gst-discoverer health check |
| `GET /gst/:hash/probe` | Probe torrent file codecs (`index`, `id`, or `fileID` query) |
| `GET /gst/:hash/master.m3u8` | HLS master playlist |
| `GET /gst/:hash/init.mp4` | Initialization segment |
| `GET /gst/:hash/seg/*segment` | Media segment |
| `GET /gst/:hash/heartbeat` | Keep-alive for active transcode task |
| `GET /gst/remove` | Stop transcode task (`hash` or `id` query) |

## Donate

[Permalink: Donate](https://github.com/YouROK/TorrServer#donate)

- [YooMoney](https://yoomoney.ru/to/410013733697114/200)
- [Boosty](https://boosty.to/yourok)
- [TBank](https://www.tbank.ru/cf/742qEMhKhKn)

## Thanks to everyone who tested and helped

[Permalink: Thanks to everyone who tested and helped](https://github.com/YouROK/TorrServer#thanks-to-everyone-who-tested-and-helped)

- [anacrolix](https://github.com/anacrolix) Matt Joiner
- [tsynik](https://github.com/tsynik) Nikk Gitanes
- [dancheskus](https://github.com/dancheskus) for react web GUI and PWA code
- [kolsys](https://github.com/kolsys) for initial Media Station X support
- [damiva](https://github.com/damiva) for Media Station X code updates
- [vladlenas](https://github.com/vladlenas) for NAS builds
- [pavelpikta](https://github.com/pavelpikta) Pavel Pikta for linux install script and more
- [Nemiroff](https://github.com/Nemiroff) Tw1cker
- [spawnlmg](https://github.com/spawnlmg) SpAwN\_LMG for testing
- [TopperBG](https://github.com/TopperBG) Dimitar Maznekov for Bulgarian web translation
- [FaintGhost](https://github.com/FaintGhost) Zhang Yaowei for Simplified Chinese web translation
- [Anton111111](https://github.com/Anton111111) Anton Potekhin for sleep on Windows fixes
- [lieranderl](https://github.com/lieranderl) Evgeni for adding SSL support code
- [cocool97](https://github.com/cocool97) for openapi API documentation and torrent categories
- [shadeov](https://github.com/shadeov) for README improvements
- [butaford](https://github.com/butaford) Pavel for make docker file and scripts
- [filimonic](https://github.com/filimonic) Alexey D. Filimonov
- [leporel](https://github.com/leporel) Viacheslav Evseev
- and others

## About

Torrent stream server


[yourok.ru](https://yourok.ru/ "https://yourok.ru")

### Resources

[Readme](https://github.com/YouROK/TorrServer#readme-ov-file)

### License

[GPL-3.0 license](https://github.com/YouROK/TorrServer#GPL-3.0-1-ov-file)

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/YouROK/TorrServer).

[Activity](https://github.com/YouROK/TorrServer/activity)

### Stars

[**2.8k**\\
stars](https://github.com/YouROK/TorrServer/stargazers)

### Watchers

[**61**\\
watching](https://github.com/YouROK/TorrServer/watchers)

### Forks

[**328**\\
forks](https://github.com/YouROK/TorrServer/forks)

[Report repository](https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FYouROK%2FTorrServer&report=YouROK+%28user%29)

## [Releases\  95](https://github.com/YouROK/TorrServer/releases)

[MatriX.142\\
Latest\\
\\
yesterdayJul 3, 2026](https://github.com/YouROK/TorrServer/releases/tag/MatriX.142)

[\+ 94 releases](https://github.com/YouROK/TorrServer/releases)

## [Packages\  1](https://github.com/users/YouROK/packages?repo_name=TorrServer)

- [torrserver](https://github.com/users/YouROK/packages/container/package/torrserver)

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/YouROK/TorrServer).

## [Contributors\  64](https://github.com/YouROK/TorrServer/graphs/contributors)

- [![@YouROK](https://avatars.githubusercontent.com/u/4067300?s=64&v=4)](https://github.com/YouROK)
- [![@tsynik](https://avatars.githubusercontent.com/u/1551446?s=64&v=4)](https://github.com/tsynik)
- [![@dancheskus](https://avatars.githubusercontent.com/u/35524994?s=64&v=4)](https://github.com/dancheskus)
- [![@dependabot[bot]](https://avatars.githubusercontent.com/in/29110?s=64&v=4)](https://github.com/apps/dependabot)
- [![@pavelpikta](https://avatars.githubusercontent.com/u/9392033?s=64&v=4)](https://github.com/pavelpikta)
- [![@damiva](https://avatars.githubusercontent.com/u/96115589?s=64&v=4)](https://github.com/damiva)
- [![@VuzzyM](https://avatars.githubusercontent.com/u/66425682?s=64&v=4)](https://github.com/VuzzyM)
- [![@kolsys](https://avatars.githubusercontent.com/u/6312063?s=64&v=4)](https://github.com/kolsys)
- [![@leporel](https://avatars.githubusercontent.com/u/17878203?s=64&v=4)](https://github.com/leporel)
- [![@cocool97](https://avatars.githubusercontent.com/u/34218602?s=64&v=4)](https://github.com/cocool97)
- [![@ngcores](https://avatars.githubusercontent.com/u/91776825?s=64&v=4)](https://github.com/ngcores)
- [![@BrunIF](https://avatars.githubusercontent.com/u/490917?s=64&v=4)](https://github.com/BrunIF)
- [![@Anton111111](https://avatars.githubusercontent.com/u/987933?s=64&v=4)](https://github.com/Anton111111)

[\+ 50 contributors](https://github.com/YouROK/TorrServer/graphs/contributors)

## Languages

- [Go56.2%](https://github.com/YouROK/TorrServer/search?l=go)
- [JavaScript31.7%](https://github.com/YouROK/TorrServer/search?l=javascript)
- [Shell9.6%](https://github.com/YouROK/TorrServer/search?l=shell)
- [HTML1.2%](https://github.com/YouROK/TorrServer/search?l=html)
- [Nix1.1%](https://github.com/YouROK/TorrServer/search?l=nix)
- [Dockerfile0.2%](https://github.com/YouROK/TorrServer/search?l=dockerfile)

You can’t perform that action at this time.