feat(store): add transmission-vpn (#1116)
This commit is contained in:
parent
61f4b3b602
commit
2ea0c242e5
171
apps/transmission-vpn/config.json
Normal file
171
apps/transmission-vpn/config.json
Normal file
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Transmission (VPN)",
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"port": 9091,
|
||||
"requirements": {
|
||||
"ports": [
|
||||
51413
|
||||
]
|
||||
},
|
||||
"id": "transmission-vpn",
|
||||
"tipi_version": 1,
|
||||
"version": "5.0.2",
|
||||
"categories": [
|
||||
"utilities",
|
||||
"security"
|
||||
],
|
||||
"description": "Transmission is running only when OpenVPN has an active tunnel. It has built-in support for many popular VPN providers to make the setup easier.",
|
||||
"short_desc": "BitTorrent client with VPN support.",
|
||||
"author": "haugene",
|
||||
"source": "https://github.com/haugene/docker-transmission-openvpn",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "numeric",
|
||||
"label": "Container > UserID (UID)",
|
||||
"placeholder": "1000",
|
||||
"env_variable": "TRANSMISSION_PUID"
|
||||
},
|
||||
{
|
||||
"type": "numeric",
|
||||
"label": "Container > GroupID (PGID)",
|
||||
"placeholder": "1000",
|
||||
"env_variable": "TRANSMISSION_PGID"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Container > Create TUN device",
|
||||
"env_variable": "TRANSMISSION_CREATE_TUN_DEVICE"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenVPN > Local Network",
|
||||
"placeholder": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16",
|
||||
"env_variable": "TRANSMISSION_OVPN_LOCAL_NETWORK"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenVPN > Username",
|
||||
"required": true,
|
||||
"env_variable": "TRANSMISSION_OVPN_USERNAME"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "OpenVPN > Password",
|
||||
"required": true,
|
||||
"env_variable": "TRANSMISSION_OVPN_PASSWORD"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenVPN > Default Provider Config",
|
||||
"required": true,
|
||||
"placeholder": "france,sweden,austria,italy,belgium",
|
||||
"env_variable": "TRANSMISSION_OVPN_CONFIG"
|
||||
},
|
||||
{
|
||||
"label": "OpenVPN > Provider",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"options": [
|
||||
{ "label": "Anonine", "value": "ANONINE" },
|
||||
{ "label": "AnonVPN", "value": "ANONVPN" },
|
||||
{ "label": "BlackVPN", "value": "BLACKVPN" },
|
||||
{ "label": "BTGuard", "value": "BTGUARD" },
|
||||
{ "label": "Cryptostorm", "value": "CRYPTOSTORM" },
|
||||
{ "label": "ExpressVPN", "value": "EXPRESSVPN" },
|
||||
{ "label": "FastestVPN", "value": "FASTESTVPN" },
|
||||
{ "label": "FreeVPN", "value": "FREEVPN" },
|
||||
{ "label": "FrootVPN", "value": "FROOT" },
|
||||
{ "label": "FrostVPN", "value": "FROSTVPN" },
|
||||
{ "label": "Getflix", "value": "GETFLIX" },
|
||||
{ "label": "GhostPath", "value": "GHOSTPATH" },
|
||||
{ "label": "Giganews", "value": "GIGANEWS" },
|
||||
{ "label": "HideMe", "value": "HIDEME" },
|
||||
{ "label": "HideMyAss", "value": "HIDEMYASS" },
|
||||
{ "label": "IntegrityVPN", "value": "INTEGRITYVPN" },
|
||||
{ "label": "IPVanish", "value": "IPVANISH" },
|
||||
{ "label": "IronSocket", "value": "IRONSOCKET" },
|
||||
{ "label": "Ivacy", "value": "IVACY" },
|
||||
{ "label": "IVPN", "value": "IVPN" },
|
||||
{ "label": "Mullvad", "value": "MULLVAD" },
|
||||
{ "label": "NordVPN", "value": "NORDVPN" },
|
||||
{ "label": "OctaneVPN", "value": "OCTANEVPN" },
|
||||
{ "label": "OVPN", "value": "OVPN" },
|
||||
{ "label": "Privado", "value": "PRIVADO" },
|
||||
{ "label": "Private Internet Access", "value": "PIA" },
|
||||
{ "label": "PrivateVPN", "value": "PRIVATEVPN" },
|
||||
{ "label": "ProtonVPN", "value": "PROTONVPN" },
|
||||
{ "label": "proXPN", "value": "PROXPN" },
|
||||
{ "label": "PureVPN", "value": "PUREVPN" },
|
||||
{ "label": "RA4W VPN", "value": "RA4W" },
|
||||
{ "label": "SaferVPN", "value": "SAFERVPN" },
|
||||
{ "label": "SlickVPN", "value": "SLICKVPN" },
|
||||
{ "label": "SlickVPNCore", "value": "SLICKVPNCORE" },
|
||||
{ "label": "Smart DNS Proxy", "value": "SMARTDNSPROXY" },
|
||||
{ "label": "SmartVPN", "value": "SMARTVPN" },
|
||||
{ "label": "Surfshark", "value": "SURFSHARK" },
|
||||
{ "label": "TigerVPN", "value": "TIGER" },
|
||||
{ "label": "TorGuard", "value": "TORGUARD" },
|
||||
{ "label": "Trust.Zone", "value": "TRUSTZONE" },
|
||||
{ "label": "TunnelBear", "value": "TUNNELBEAR" },
|
||||
{ "label": "VPN.AC", "value": "VPNAC" },
|
||||
{ "label": "VPNArea.com", "value": "VPNAREA" },
|
||||
{ "label": "VPNBook.com", "value": "VPNBOOK" },
|
||||
{ "label": "VPNFacile", "value": "VPNFACILE" },
|
||||
{ "label": "VPN.ht", "value": "VPNHT" },
|
||||
{ "label": "VPNTunnel", "value": "VPNTUNNEL" },
|
||||
{ "label": "VPNUnlimited", "value": "VPNUNLIMITED" },
|
||||
{ "label": "VyprVpn", "value": "VYPRVPN" },
|
||||
{ "label": "Windscribe", "value": "WINDSCRIBE" },
|
||||
{ "label": "ZoogVPN", "value": "ZOOGVPN" }
|
||||
],
|
||||
"env_variable": "TRANSMISSION_OVPN_PROVIDER"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "OpenVPN > Use VPN DNS",
|
||||
"env_variable": "TRANSMISSION_PEER_DNS"
|
||||
},
|
||||
{
|
||||
"label": "Transmission > WebUI",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"options": [
|
||||
{ "label": "Combustion", "value": "combustion" },
|
||||
{ "label": "Kettu", "value": "kettu" },
|
||||
{ "label": "Web-Control", "value": "transmission-web-control" },
|
||||
{ "label": "Flood", "value": "flood-for-transmission" },
|
||||
{ "label": "Shift", "value": "shift" },
|
||||
{ "label": "Transmissionic", "value": "transmissionic" }
|
||||
],
|
||||
"env_variable": "TRANSMISSION_WEBUI"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Transmission > Enable DHT",
|
||||
"env_variable": "TRANSMISSION_DHT_ENABLED"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Transmission > Enable LPD",
|
||||
"env_variable": "TRANSMISSION_LPD_ENABLED"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Transmission > Enable PEX",
|
||||
"env_variable": "TRANSMISSION_PEX_ENABLED"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Transmission > Enable Blocklist",
|
||||
"env_variable": "TRANSMISSION_BLOCKLIST_ENABLED"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Transmission > Blocklist URL",
|
||||
"placeholder": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",
|
||||
"env_variable": "TRANSMISSION_BLOCKLIST_URL"
|
||||
}
|
||||
]
|
||||
}
|
0
apps/transmission-vpn/data/config/.gitkeep
Normal file
0
apps/transmission-vpn/data/config/.gitkeep
Normal file
79
apps/transmission-vpn/docker-compose.yml
Normal file
79
apps/transmission-vpn/docker-compose.yml
Normal file
|
@ -0,0 +1,79 @@
|
|||
services:
|
||||
transmission-vpn:
|
||||
image: haugene/transmission-openvpn:5.0.2
|
||||
container_name: transmission-vpn
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
devices:
|
||||
- /dev/net/tun
|
||||
dns:
|
||||
- ${DNS_IP}
|
||||
environment:
|
||||
- PUID=${TRANSMISSION_PUID-1000}
|
||||
- PGID=${TRANSMISSION_PGID-1000}
|
||||
- TZ=${TZ-Europe/Paris}
|
||||
- USER=${TRANSMISSION_USERNAME}
|
||||
- PASS=${TRANSMISSION_PASSWORD}
|
||||
- OPENVPN_PROVIDER=${TRANSMISSION_OVPN_PROVIDER-NORDVPN}
|
||||
- OPENVPN_CONFIG=${TRANSMISSION_OVPN_CONFIG}
|
||||
- OPENVPN_USERNAME=${TRANSMISSION_OVPN_USERNAME}
|
||||
- OPENVPN_PASSWORD=${TRANSMISSION_OVPN_PASSWORD}
|
||||
- OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60 --pull-filter ignore ping
|
||||
- LOCAL_NETWORK=${TRANSMISSION_OVPN_LOCAL_NETWORK-10.0.0.0/8,172.16.0.0/12,192.168.0.0/16}
|
||||
- TRANSMISSION_WEB_UI=${TRANSMISSION_WEBUI}
|
||||
- LOG_TO_STDOUT=true
|
||||
- GLOBAL_APPLY_PERMISSIONS=false
|
||||
- CREATE_TUN_DEVICE=${TRANSMISSION_CREATE_TUN_DEVICE-false}
|
||||
- PEER_DNS=${TRANSMISSION_PEER_DNS-false}
|
||||
- TRANSMISSION_DOWNLOAD_DIR=/media/torrents/complete
|
||||
- TRANSMISSION_INCOMPLETE_DIR_ENABLED=true
|
||||
- TRANSMISSION_INCOMPLETE_DIR=/media/torrents/incomplete
|
||||
- TRANSMISSION_PREALLOCATION=1
|
||||
- TRANSMISSION_DHT_ENABLED=${TRANSMISSION_DHT_ENABLED-false}
|
||||
- TRANSMISSION_LPD_ENABLED=${TRANSMISSION_LPD_ENABLED-false}
|
||||
- TRANSMISSION_PEX_ENABLED=${TRANSMISSION_PEX_ENABLED-false}
|
||||
- TRANSMISSION_BLOCKLIST_ENABLED=${TRANSMISSION_BLOCKLIST_ENABLED-true}
|
||||
- TRANSMISSION_BLOCKLIST_URL=${TRANSMISSION_BLOCKLIST_URL-http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz}
|
||||
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/config:/config
|
||||
- ${ROOT_FOLDER_HOST}/media/torrents:/media/torrents
|
||||
ports:
|
||||
- ${APP_PORT}:9091
|
||||
- 51413:51413
|
||||
- 51413:51413/udp
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
sysctls :
|
||||
- net.ipv6.conf.all.disable_ipv6=0
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 10m
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.transmission-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.transmission.loadbalancer.server.scheme: http
|
||||
traefik.http.services.transmission.loadbalancer.server.port: 9091
|
||||
# Web
|
||||
traefik.http.routers.transmission-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.transmission-insecure.entrypoints: web
|
||||
traefik.http.routers.transmission-insecure.service: transmission
|
||||
traefik.http.routers.transmission-insecure.middlewares: transmission-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.transmission.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.transmission.entrypoints: websecure
|
||||
traefik.http.routers.transmission.service: transmission
|
||||
traefik.http.routers.transmission.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.transmission-local-insecure.rule: Host(`transmission.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.transmission-local-insecure.entrypoints: web
|
||||
traefik.http.routers.transmission-local-insecure.service: transmission
|
||||
traefik.http.routers.transmission-local-insecure.middlewares: transmission-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.transmission-local.rule: Host(`transmission.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.transmission-local.entrypoints: websecure
|
||||
traefik.http.routers.transmission-local.service: transmission
|
||||
traefik.http.routers.transmission-local.tls: true
|
54
apps/transmission-vpn/metadata/description.md
Normal file
54
apps/transmission-vpn/metadata/description.md
Normal file
|
@ -0,0 +1,54 @@
|
|||
## Recommended VPN
|
||||
This container is heavily tested using
|
||||
[NordVPN, get 3 months free here.](https://ref.nordvpn.com/EQNOEHVwOCW)
|
||||
|
||||
## Features
|
||||
* Choose your Web UI !
|
||||
* Support many OpenVPN providers ([complete list](https://haugene.github.io/docker-transmission-openvpn/supported-providers/))
|
||||
* Works with traefik !
|
||||
* Pre-configured for Tipi.
|
||||
* Healthcheck
|
||||
* Highly configurable.
|
||||
|
||||
## Documentation
|
||||
|
||||
Don't hesitate to read related docs available here: https://haugene.github.io/docker-transmission-openvpn/
|
||||
|
||||
## VPN Provider Settings
|
||||
You can configure specific settings to your provider by creating a `docker-compose.yml` file in your `user-config` directory.
|
||||
| Directory | File |
|
||||
|-------------------------------|------------------|
|
||||
| /runtipi/user-config/transmission-vpn/ | docker-compose.yml |
|
||||
|
||||
With the following content by e.g. for NordVPN:
|
||||
```
|
||||
services:
|
||||
transmission-vpn:
|
||||
environment:
|
||||
- NORDVPN_COUNTRY=FR
|
||||
- NORDVPN_CATEGORY=legacy_p2p # Servers optimized for P2P usage
|
||||
- NORDVPN_PROTOCOL=tcp
|
||||
- NORDVPN_SERVER=fr000.nordvpn.com
|
||||
```
|
||||
Instructions for NordVPN can be found here: https://haugene.github.io/docker-transmission-openvpn/provider-specific/
|
||||
|
||||
For other's supported providers: https://haugene.github.io/docker-transmission-openvpn/supported-providers/
|
||||
|
||||
## Fast, easy, and free BitTorrent client
|
||||
|
||||
Docker container running Transmission torrent client with WebUI over an OpenVPN tunnel
|
||||
|
||||
Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors:
|
||||
* A native macOS GUI application
|
||||
* GTK+ and Qt GUI applications for Linux, BSD, etc.
|
||||
* A headless daemon for servers and routers
|
||||
* A web UI for remote controlling any of the above
|
||||
|
||||
Visit [https://transmissionbt.com/](https://transmissionbt.com/) for more information.
|
||||
|
||||
## Folder Info
|
||||
|
||||
| Root Folder | Container Folder |
|
||||
|-------------------------------|------------------|
|
||||
| /runtipi/app-data/transmission/data/config | /config |
|
||||
| /runtipi/media/torrents | /media/torrents |
|
BIN
apps/transmission-vpn/metadata/logo.jpg
Normal file
BIN
apps/transmission-vpn/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
Loading…
Reference in New Issue
Block a user