This repository is now archived and no longer maintained.
For continued development and self-hosted solutions, please refer to the new repository:
- No further updates or maintenance will be provided for this repository.
- We recommend migrating to the self-hosted Webtor.io solution.
- Issues and feature requests will no longer be addressed here.
To set up and use Webtor.io in a self-hosted environment, visit:
📌 Webtor.io Self-Hosted Documentation
Thank you for your support and contributions! 🚀
vCPU: 4 RAM: 4GB
curl https://raw.githubusercontent.com/webtor-io/helm-charts/master/scripts/get-webtor.sh | sh
This will install single-node microk8s cluster and setup webtor on it (api + web-ui).
This was tested on Ubuntu 20.04.
- 30080 - Web UI
- 30180 - API
- 30151 - GRPC
http://{YOUR_SERVER_IP}:30180/rest/swagger/index.html
To update webtor components to the latest stable versions just use the following script:
curl https://raw.githubusercontent.com/webtor-io/helm-charts/master/scripts/update-webtor.sh | sh
Let's start:
-
Install Minikube and check it:
% kubectl get no NAME STATUS ROLES AGE VERSION minikube Ready master 23h v1.17.0(Tested with VirtualBox (Windows/Linux) and HyperKit (Mac) drivers)
-
Install Helm and init it and check it:
% helm version Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"} -
Install Helmfile and check it:
% helmfile -v helmfile version v0.90.2 -
Add Webtor charts repository with:
helm repo add webtor https://charts.webtor.io -
Clone this repository:
git clone https://github.com/webtor-io/helm-charts.git -
Run Helmfile there:
helmfile apply -
Check installation, all pods should be started at webtor namespace
% kubectl get po -n webtor NAME READY STATUS RESTARTS AGE content-prober-ddcfcf847-cmbt9 1/1 Running 0 37s magnet2torrent-5df84c855-2c8t6 1/1 Running 0 34s redis-master-0 1/1 Running 0 35s torrent-http-proxy-mwktl 1/1 Running 0 37s torrent-store-65c6bd4659-jjfqf 1/1 Running 0 34s ... -
Get api url at last!
% minikube service torrent-http-proxy --url -n webtor http://192.168.64.3:30749and check it:
% curl -I http://192.168.64.3:30749 HTTP/1.1 200 OK Date: Thu, 19 Dec 2019 19:44:43 GMTit will return "Internal Server Error" for direct calls.
That's all!
For update do next three things:
git pull
helm repo update
helmfile apply
Every component can be configured separately by providing your own configuration file.
For example if you wish to reconfigure web-ui you have to do the following:
- Add
web-ui.yamlfile to the same folder where yourhelmfile.yamllocated - Adjust configuration in
web-ui.yaml helmfile apply
Just put additional file called clients.yaml in the same directory where your helmfile.yaml located with the following content:
clients:
- name: client1
apiKey: client1-api-key
secret: client1-secret
Don't forget to change values of name, apiKey and secret.
Also make sure that you have the latest version of helmfile.yaml.
And do helmfile apply to apply changes.
After this, all requests to the API will require auth-token. It is simple JWT-token. Also it is possible to pass additional params in token payload such as:
- rate - this will do rate limitting (could be '1M', '10M' and so on, bits per second)
- agent - User-Agent
- remoteAddress - remote IP-address
- sessionID - some generated session ID, it should be provided for more precise rate-limitting
If agent and remoteAddress are defined there will be additional check to prevent user from url-sharing.