A Special Thanks To All Our Contributors
- Introduction
- Some Features
- Requirements
- Installation
- Packages
- Security
- Contributing
- License
- Screenshots
- Homestead
- Patreon
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!
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!
- 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
Prerequisites Example:
-
Install OS
Ubuntu Server 17.10 "Artful Aardvark" (64bits)
or
Ubuntu Server 16.04.4 LTS "Xenial Xerus" (64bits)
-
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
-
Then we'll install the needed software:
sudo apt-get install -y git tmux vim curl wget zip unzip htop nano build-essential
sudo apt-get install supervisor
sudo apt-get install redis-server
sudo apt-get install -y nginx
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
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
-
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
-
Install MySQL:
sudo apt-get install mysql-server
mysql_secure_installation
-
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
-
Secure Nginx with Let's Encrypt
-
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:
- 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.)
- Open a terminal and SSH into your server.
- cd to the sites root directory
- Run
sudo chown -R www-data: storage bootstrap public config
andsudo find . -type d -exec chmod 0755 '{}' + -or -type f -exec chmod 0644 '{}' +
- Run
php -r "readfile('http://getcomposer.org/installer');" | sudo php -- --install-dir=/usr/bin/ --filename=composer
- Edit
.env.example
to.env
and fill it with your APP, DB, REDIS and MAIL info. - Run
composer install && npm install && npm run dev
to install dependencies. - Edit
config/api-keys.php
,config/app.php
andconfig/other.php
(These house some basic settings. Be sure to visit the config manager from staff dashboard after up and running.) - 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
. - Run
php artisan key:generate
to generate your cipher key. - Run
php artisan migrate --seed
(Migrates All Tables And Foreign Keys) - Suggest that you run
php artisan route:cache
. (Keep in mind you will have to re-run it anytime changes are made to theroutes/web.php
but it is beneficial with page load times). sudo chown -R www-data: storage bootstrap public config
- Go to your sites URL.
- Login with the username
UNIT3D
and the passwordUNIT3D
. (Or whatever you set in the .env if changed from defaults.) (This is the default owner account.) - 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.
Here are some packages that are built for UNIT3D.
- An artisan package to import a XBTIT database into UNIT3D.
- An artisan package to import a Gazelle database into UNIT3D.
- An artisan package to import a U-232 database into UNIT3D.
If you discover any security related issues, please email unit3d@protonmail.com instead of using the issue tracker.
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
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
User Profile (Galactic Theme) User Profile (Light Theme)
folders:
- map: ~/projects
to: /home/vagrant/projects
sites:
...
- map: unit3d.site
to: /home/vagrant/projects/www/unit3d/public
databases:
- homestead
- unit3d
127.0.0.1 localhost
127.0.1.1 3rdtech-gnome
...
192.168.10.10 unit3d.site
- run
cd ~/Homestead && vagrant up --provision
- run
vagrant ssh
- cd to the unit3d project root directory
- copy
.env.example
to.env
- run
php artisan key:generate
- run
composer install
- run
npm install
- run
php artisan migrate:refresh --seed
- visit unit3d.site
- Login u:
UNIT3D
p:UNIT3D
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.