Skip to content

Installing from Scratch on Centos 7 #28

@mrcolak

Description

@mrcolak

There wasn't a clear guide of how to install and run this tracker from scratch. I thought it would be helpful for others.

Installing Nodejs

sudo yum install epel-release
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
sudo yum install nodejs
node -v

v12.17.0

Installing Git and cloning Repository

yum install git
cd /usr/local
git clone https://github.com/Novage/wt-tracker.git

Installing wt-tracker

cd wt-tracker/
npm install
npm run build

#uWebSockets version v15.11.0 needed, so we are reinstalling uWebSockets
npm uninstall uWebSockets.js
npm install uNetworking/uWebSockets.js#v15.11.0

Creating config.json

vi /usr/local/wt-tracker/config.json

{
  "servers": [{
      "server": {
        "port": 80,
        "host": "0.0.0.0"
      },
      "websockets": {
        "path": "/*",
        "maxPayloadLength": 65536,
        "idleTimeout": 240,
        "compression": 1,
        "maxConnections": 0
      }
    }, {
      "server": {
        "port": 443,
        "host": "0.0.0.0",
        "key_file_name": "/etc/ssl/certs/key.pem",
        "cert_file_name": "/etc/ssl/certs/crt.pem",
        "ssl_prefer_low_memory_usage": true
      },
      "websockets": {
        "path": "/*",
        "maxPayloadLength": 65536,
        "idleTimeout": 240,
        "compression": 1
      }
    }
  ],

  "tracker": {
    "maxOffers": 20,
    "announceInterval": 120
  },

  "websocketsAccess": {
    "allowOrigins": ["https://website.com"],
    "denyEmptyOrigin": true
  }
}

Adding firewall rules

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-all

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 80/tcp 443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Creating Service

vi /etc/systemd/system/wt-tracker.service

Description=WebTorrent Tracker

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
WorkingDirectory=/usr/local/wt-tracker
ExecStart=/usr/local/wt-tracker/bin/wt-tracker

[Install]
WantedBy=multi-user.target

Activating and Enabling Service

systemctl enable wt-tracker
systemctl restart wt-tracker
systemctl status wt-tracker

● wt-tracker.service - WebTorrent Tracker
   Loaded: loaded (/etc/systemd/system/wt-tracker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-05-30 12:29:55 CEST; 30min ago
 Main PID: 896 (node)
   CGroup: /system.slice/wt-tracker.service
           └─896 node /usr/local/wt-tracker/bin/wt-tracker

May 30 12:29:55 localhost systemd[1]: Started WebTorrent Tracker.
May 30 12:29:55 localhost wt-tracker[896]: listening 0.0.0.0:80
May 30 12:29:55 localhost wt-tracker[896]: listening 0.0.0.0:443

Increasing Open File Limit for Service

#This changes will fix Error: EMFILE: too many open files, uv_resident_set_memory

mkdir /etc/systemd/system/wt-tracker.service.d/
vi /etc/systemd/system/wt-tracker.service.d/limits.conf

[Service]
LimitNOFILE=65535

systemctl daemon-reload
systemctl restart wt-tracker.service

Checking Stats

https://127.0.0.1/stats.json

{
  "torrentsCount": 0,
  "peersCount": 0,
  "servers": [
    {
      "server": "0.0.0.0:80",
      "webSocketsCount": 0
    },
    {
      "server": "0.0.0.0:443",
      "webSocketsCount": 0
    }
  ],
  "memory": {
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions