A modern, feature-rich BitTorrent tracker platform designed for both private and public communities.
Discord Server https://discord.gg/UvrH5bmu6X
- 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
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:
- Start MongoDB: `docker-compose up -d mongodb`
- Verify it's working by accessing `ipaddress:27017`
- 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" }]
})
show users
Configure remote access:
docker exec -it "containerid" bash
apt update && apt install nano
nano /etc/mongod.conf.orig
#security:
authorization: enabled
Restart MongoDB container to apply changes.
- Edit
config.js
with your preferences - Default admin credentials: username
admin
, passwordadmin
- Change admin password immediately after first login
docker-compose up -d
- Go to NPM at
http://your-ip:81/
- 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!
- Flexible registration modes:
- Open registration
- Closed registration
- Invite-only system
- Two-factor authentication (2FA)
- Bonus points system
- Optional public browsing for SEO
- Rich metadata uploading
- Advanced search functionality
- Freeleech options
- Per-torrent basis
- Site-wide campaigns
- Content grouping
- Bookmark system
- Comprehensive upload/download tracking
- Ratio management
- Hit'n'run monitoring
- User limitations based on:
- Ratio requirements
- HnR status
- Custom rules
- Bonus points for seeding
- Torrent commenting
- Voting system
- Request system
- Wiki platform
- Announcements
- User interactions
- Staff privilege system
- Content moderation
- Reporting system
- Advanced statistics
- User management tools
- Ban/unban capabilities
NexusTracker operates with four key components:
-
API Service
- Handles user authentication
- Manages torrent operations
- Implements BitTorrent protocol
- Provides RSS feeds
-
Client Service
- Modern web interface
- Responsive design
- Real-time updates
-
MongoDB Database
- Stores user data
- Manages torrent information
- Tracks statistics
-
Nginx Proxy
- Routes traffic
- Handles SSL/TLS
- Provides security layer
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!
We welcome contributions! Please check our Contributing Guide for:
- Code style guidelines
- Pull request process
- Development setup
- Testing requirements
GNU GPLv3
- Create an issue on GitHub for support
- Check existing issues for solutions
- Join our community discussions