Skip to content

πŸš€ The Nex-Gen Private Torrent Tracker (Aimed For Movie/TV Use)

License

Notifications You must be signed in to change notification settings

YEAHZERO/UNIT3D

Β 
Β 

Repository files navigation

UNIT3D Logo

A Special Thanks To All Our Contributors


Discord chat

Table of Contents

  1. Introduction
  2. Some Features
  3. Requirements
  4. Installation
  5. Packages
  6. Security
  7. Contributing
  8. License
  9. Screenshots
  10. Homestead
  11. Patreon

Introduction

I have been developing a Nex-Gen Torrent Tracker Script called "UNIT3D." This is a PHP script based off the lovely Laravel Framework -- currently Laravel Framework 5.6.20, MySQL Strict Mode Compliant and PHP 7.1 Ready. The code is well-designed and follows the PSR-2 coding style. It uses a MVC Architecture to ensure clarity between logic and presentation. As a hashing algorithm of Bcrypt or Argon2 is used, to ensure a safe and proper way to store the passwords for the users. A lightweight Blade Templating Engine. Caching System Supporting: "apc,” "array,” "database,” "file," "memcached," and "redis" methods. Eloquent and much more!

Some Features

UNIT3D currently offers the following features:

  • Internal Forums System
  • Staff Dashboard
  • Faceted Ajax Torrent Search System
  • BON Store
  • Torrent Request Section with BON Bounties
  • Freeleech System
  • Double Upload System
  • Featured Torrents System
  • Polls System
  • Extra-Stats
  • PM System
  • Multilingual Support
  • TwoStep Auth System
  • DB + Files Backup Manager
  • and MUCH MORE!

Requirements

  • A Web server (NGINX is recommended)
  • PHP 7.1.3 + is required (7.2 for Argon2 Support)
  • Dependencies for PHP,
    • php-curl -> This is specifically needed for the various APIs we have running.
    • php-zip -> This is required for the Backup Manager.
  • Crontab access
  • A Redis server
  • MySQL 5.7
  • TheMovieDB API Key: https://www.themoviedb.org/documentation/api
  • TheTVDB API Key: https://api.thetvdb.com/swagger
  • OMDB API Key: http://www.omdbapi.com/
  • A decent dedicated server. Dont try running this on some crappy server!
Processor: Intel  Xeon E3-1245v2 -
Cores/Threads: 4c/8t
Frequency: 3.4GHz /3.8GHz
RAM: 32GB DDR3 1333 MHz
Disks: SoftRaid  2x240 GB   SSD
Bandwidth: 250 Mbps
Traffic: Unlimited
Is Under $50 A Month

Installation

Prerequisites Example:

  1. Install OS

    Ubuntu Server 17.10 "Artful Aardvark" (64bits)

    or

    Ubuntu Server 16.04.4 LTS "Xenial Xerus" (64bits)

  2. Get repositories for the latest software:

    sudo add-apt-repository -y ppa:nginx/development
    sudo add-apt-repository -y ppa:ondrej/php
    sudo apt-get update
    
  3. Then we'll install the needed software:

    Tools

    sudo apt-get install -y git tmux vim curl wget zip unzip htop nano build-essential
    

    Supervisor

    sudo apt-get install supervisor
    

    Redis

    sudo apt-get install redis-server
    

    Nginx

    sudo apt-get install -y nginx
    

    PHP

    sudo apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml php7.2-fpm
    

    NodeJS and NPM

    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  4. Configure PHP:

    sudo nano /etc/php/7.2/fpm/php.ini
    

    FIND

    ;cgi.fix_pathinfo=1
    

    REPLACE WITH

    cgi.fix_pathinfo=0
    

    Save and close

    Now restart php-fpm

    sudo systemctl restart php7.2-fpm
    
  5. Install MySQL:

    sudo apt-get install mysql-server
    
    mysql_secure_installation
    
  6. Configure Nginx:

    sudo nano /etc/nginx/sites-available/default
    
    server {
    listen 80 default_server;
    
    root /var/www/html/public;
    
    index index.html index.htm index.php;
    
    server_name example.com;
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    
    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
    }
    

    Save and close.

    Now restart nginx

    sudo systemctl reload nginx
    
  7. Secure Nginx with Let's Encrypt

    https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04

  8. Configure and start supervision to handle job processing

    nano /etc/supervisor/conf.d/unit3d.conf
    

    Example:

    [program:unit3d-queue]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/www/html/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=www-data
    numprocs=2
    

    Note: Change the command path to that of your particular app. User you will probably want to change to something like your web server be it apache or www-data. All of these things are up to you. Once this is done, save and close!

    Next lets load new config and start the process.

    Run:

    supervisorctl reread && supervisorctl update
    

    Make sure there running and all is good!

    Run:

    supervisorctl
    

    If you see something like following your good to go!

    unit3d-queue:unit3d-queue_00     RUNNING   pid 7946, uptime 0:00:12
    unit3d-queue:unit3d-queue_01     RUNNING   pid 7945, uptime 0:00:12
    

Main:

  1. First grab the source-code and upload it to your web server. (If you have Git on your web server installed then clone it directly on your web server.)
  2. Open a terminal and SSH into your server.
  3. cd to the sites root directory
  4. Run sudo chown -R www-data: storage bootstrap public config and sudo find . -type d -exec chmod 0755 '{}' + -or -type f -exec chmod 0644 '{}' +
  5. Run php -r "readfile('http://getcomposer.org/installer');" | sudo php -- --install-dir=/usr/bin/ --filename=composer
  6. Edit .env.example to .env and fill it with your APP, DB, REDIS and MAIL info.
  7. Run composer install && npm install && npm run dev to install dependencies.
  8. Edit config/api-keys.php, config/app.php and config/other.php (These house some basic settings. Be sure to visit the config manager from staff dashboard after up and running.)
  9. Add * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 to crontab. /path/to/artisan becomes whatever directory you put the codebase on your server. Like * * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1 .
  10. Run php artisan key:generate to generate your cipher key.
  11. Run php artisan migrate --seed (Migrates All Tables And Foreign Keys)
  12. Suggest that you run php artisan route:cache. (Keep in mind you will have to re-run it anytime changes are made to the routes/web.php but it is beneficial with page load times).
  13. sudo chown -R www-data: storage bootstrap public config
  14. Go to your sites URL.
  15. Login with the username UNIT3D and the password UNIT3D. (Or whatever you set in the .env if changed from defaults.) (This is the default owner account.)
  16. Enjoy using UNIT3D.

NOTE: If you recieve a error during npm install regarding pngquant-bin@4.0.0 OR an error similar to ... binary doesn't seem to work correctly please run the following command

wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb && sudo dpkg -i /tmp/libpng12.deb && rm /tmp/libpng12.deb && npm install && npm run dev

and then try to install again.

Packages

Here are some packages that are built for UNIT3D.

Security

If you discover any security related issues, please email unit3d@protonmail.com instead of using the issue tracker.

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

License

UNIT3D is open-sourced software licensed under the GNU General Public License v3.0.

As per license do not remove the license from sourcecode or from footer in /resources/views/partials/footer.blade.php


Screenshots

User Profile (Galactic Theme) User Profile Page User Profile (Light Theme) User Profile Page

Homestead

Install and Setup Homestead

Example Homestead.yaml

folders:
    - map: ~/projects
      to: /home/vagrant/projects

sites:
    ...
    - map: unit3d.site
      to: /home/vagrant/projects/www/unit3d/public

databases:
    - homestead
    - unit3d

Example /etc/hosts

127.0.0.1       localhost
127.0.1.1       3rdtech-gnome

...
192.168.10.10   unit3d.site

  1. run cd ~/Homestead && vagrant up --provision
  2. run vagrant ssh
  3. cd to the unit3d project root directory
  4. copy .env.example to .env
  5. run php artisan key:generate
  6. run composer install
  7. run npm install
  8. run php artisan migrate:refresh --seed
  9. visit unit3d.site
  10. Login u: UNIT3D p: UNIT3D

Support me on patreon

You can support me on patreon if you are enjoying UNIT3D, this really keeps me up for fixing problems and adding new features. Also helps pay for the demo server + domain. Plus some beer to keep me sane.

About

πŸš€ The Nex-Gen Private Torrent Tracker (Aimed For Movie/TV Use)

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 36.1%
  • PHP 25.8%
  • CSS 23.0%
  • HTML 15.0%
  • Other 0.1%