Skip to content

C-ok/NexusTracker

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–  NexusTracker

Originaly Forked from SqTracker

License GPLv3

A modern, feature-rich BitTorrent tracker platform designed for both private and public communities.

πŸš€ Quick Start Guide

⚠️ Important Security Note

  • Never expose MongoDB ports to the public internet without proper security measures
  • Always use strong passwords for database users
  • Keep your config.js file secure and never commit it with sensitive information

1. Set up MongoDB Database:

Create a `docker-compose.yml` for MongoDB:

services:
  mongodb:
    image: mongo:latest
    ports:
      - "27017:27017"
    volumes:
      - /home/MongoDB:/data/db
    restart: always # Automatically restart the container if it crashes
    environment: #optional configuration
      MONGO_INITDB_ROOT_USERNAME: "root_username" #set root username
      MONGO_INITDB_ROOT_PASSWORD: "root_password" #set root password
    command: [--auth]  # This is ESSENTIAL for authentication

Deploy MongoDB and verify:

  1. Start MongoDB: `docker-compose up -d mongodb`
  2. Verify it's working by accessing `ipaddress:27017`
  3. Connect to MongoDB:
mongosh -u [username set on docker-compose.yml]

Set up the database:

# Create database
use nexustracker

# Create database user
db.createUser({
  user: "username",
  pwd: "password",
  roles: [{ role: "dbOwner", db: "nexustracker" }]
})

Verify user creation

show users

Configure remote access:

Access MongoDB container

docker exec -it "containerid" bash

Install nano

apt update && apt install nano

Edit MongoDB config

nano /etc/mongod.conf.orig

Change bind address: 127.0.0.1 β†’ 0.0.0.0

Add under security section:

#security:
  authorization: enabled

Restart MongoDB container to apply changes.

2. Configure NexusTracker:

  • Edit config.js with your preferences
  • Default admin credentials: username admin, password admin
  • Change admin password immediately after first login

3. Launch NexusTracker:

docker-compose up -d

4. Setup NGINX Proxy Manager

  • Go to NPM at http://your-ip:81/

Step 01

- Click Add Proxy Host and change your ip/domain name (leave everything as it is in the picture!)

Step 01

- Apply The Custom NGINX Configuration and Click Save

Step 01

  • Now you have to choose between these two nginx configs
  • The first one is for http
  • The second one is for https (If you select the second one you need to setup a domain name and ssl in npm!)
  • DO NOT ENABLE FORCE SSL IN ANY OF THE TWO! AS IT IS AUTOMATICALLY ENABLED IN THE CONFIG! -HTTP
location / {
    proxy_pass http://nexus_client:3000;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /api/ {
    rewrite /api/(.*) /$1 break;
    proxy_pass http://nexus_api:3001;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /sq/ {
    proxy_pass http://nexus_api:3001;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
  • HTTPS
location / {
    proxy_pass http://nexus_client:3000;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /api/ {
    rewrite /api/(.*) /$1 break;
    proxy_pass http://nexus_api:3001;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /sq/ {
    proxy_pass http://nexus_api:3001;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
  • You Have Successfuly Setup NGINX Proxy Manager!

Step 01

- Visit your tracker at `http://your-ip:80/` or `https://your-domain/`

πŸ’« Core Features

πŸ‘₯ User Management

  • Flexible registration modes:
    • Open registration
    • Closed registration
    • Invite-only system
  • Two-factor authentication (2FA)
  • Bonus points system
  • Optional public browsing for SEO

πŸ“€ Torrent Management

  • Rich metadata uploading
  • Advanced search functionality
  • Freeleech options
    • Per-torrent basis
    • Site-wide campaigns
  • Content grouping
  • Bookmark system

πŸ“Š Tracking & Statistics

  • Comprehensive upload/download tracking
  • Ratio management
  • Hit'n'run monitoring
  • User limitations based on:
    • Ratio requirements
    • HnR status
    • Custom rules
  • Bonus points for seeding

🀝 Community Tools

  • Torrent commenting
  • Voting system
  • Request system
  • Wiki platform
  • Announcements
  • User interactions

πŸ›‘οΈ Administration

  • Staff privilege system
  • Content moderation
  • Reporting system
  • Advanced statistics
  • User management tools
  • Ban/unban capabilities

🌐 System Components

NexusTracker operates with four key components:

  1. API Service

    • Handles user authentication
    • Manages torrent operations
    • Implements BitTorrent protocol
    • Provides RSS feeds
  2. Client Service

    • Modern web interface
    • Responsive design
    • Real-time updates
  3. MongoDB Database

    • Stores user data
    • Manages torrent information
    • Tracks statistics
  4. Nginx Proxy

    • Routes traffic
    • Handles SSL/TLS
    • Provides security layer

🌍 Translations

Currently supported languages:

  • English
  • Russian
  • Esperanto
  • German
  • Simplified Chinese
  • French
  • Spanish
  • Italian

Want to add your language? Create a new JSON file in client/locales/ with your translations!

πŸ“Έ Screenshots

Splash screen splash

Home home

Torrent torrent

Upload upload

Categories categories

Profile profile

Account account

Announcement announcement

Request request

Report report

🀝 Contributing

We welcome contributions! Please check our Contributing Guide for:

  • Code style guidelines
  • Pull request process
  • Development setup
  • Testing requirements

πŸ“„ License

GNU GPLv3


πŸ†˜ Need Help?

  • Create an issue on GitHub for support
  • Check existing issues for solutions
  • Join our community discussions

About

A modern private BitTorrent tracker platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.8%
  • Dockerfile 0.2%