Giter Site home page Giter Site logo

revcozmo / meantorrent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from taobataoma/meantorrent

0.0 2.0 0.0 4.38 MB

meanTorrent - MEAN.JS BitTorrent - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, A Private BitTorrent Tracker CMS with Multilingual support.

Home Page: http://chd.im:3000

License: Other

JavaScript 65.77% HTML 28.00% CSS 6.18% Shell 0.05%

meantorrent's Introduction

meanTorrent - A Private BitTorrent Tracker CMS, DEMO Site

meanTorrent is Based on meanjs/mean

more function is WIP, please wait...

meanTorrent is A Private BitTorrent Tracker CMS with Multilingual support and a full-stack JavaScript open-source solution, which provides a solid starting point for MongoDB, Node.js, Express, and AngularJS based applications. The idea is to solve the common issues with connecting those frameworks, build a robust framework to support daily development needs, and help developers use better practices while working with popular JavaScript components.

Feature, Function, Screenshots First

  • Home page view home
  • Torrents list page view list
  • Torrent detail page view item
    • subtitle panel subtitle
    • users list panel ulist
    • other torrents panel other
    • admin panel adminpanel
  • Upload page view upload
  • Chat page view chat
  • User status page view status
  • User score page view score
  • Invitation detail page view invitation
  • MessageBox page view message
  • Message replies list page view reply
  • Forums list page view forum-list
  • Forum topics list page view topic-list
  • Forum topic replies list page view reply-list

meanTorrent some feature:

  1. Multilingual support, now English & Chinese, you can Copy a string file modules/core/client/app/trans-string-en.js to translate it.
  2. When you want to upload a torrent, Only need to select a source torrent file, and input the movie ID origin TMDB, the movie detaill info will be autoload.
  3. One torrent can boundle many attrs tag, It's the key to search filtering.
  4. Torrent comment with full markdown style support.
  5. Oper/Admin can manager users(edit/delete etc), forbidden user(banned).
  6. OPer/Admin can manager torrents, can reviewed new torrents, set torrent sale type, set torrent recommend level, and delete torrent.
  7. Global sale set support, It provides convenience for site preferential sales setting.
  8. Client Black List support, user can not use the client list inside clientBlackList connect to the tracker server.
  9. When user to change profile picture, meanTorrent use ui-cropper to crop the image.
  10. The first sign up user auto be admin role.
  11. User signed ip / leeched ip all in db, admin can forbid user if user`s ip too many.
  12. Detailed user stats info, include account status, uploaded torrents list, seeding list, downloading list.
  13. Complete user score system, user can use score exchange an invitation to invite friend register join.
  14. Invitations manager, user can keep track of invited friends registration progress.
  15. Admin/Oper can manual management the user`s uploaded/downloaded/score data.
  16. Complete messageBox, include message list, read status, keys search, reply detail and markdown style support.
  17. Complete forum function, admin can configure each forum section and section moderators, the content support markdown style.
  18. Forum topics and replies can attach picture files and other type files, The picture file will be displayed automatically, Others file can only be downloaded.
  19. Forum replies support real edit, What you see is what you get (bootstrap-markdown)), and drag & drop attach file upload.
  20. Complete thumbs-up system(thanks system), topic poster or torrent uploader will received score donate from clicker.

Chat room feature:

  1. Users name list
  2. Oper/admin can kick(ban) user out of room
  3. Support chat message font style(Font color, Bold style, Italic style) setting online
  4. Banned user can not reconnect to chat server with an expires time(default one hour)
  5. User can not repetitive login from another location at one time
  6. Chat message bubble style

TODO

  • Other type torrent support(like Music, Other).
  • torrent more images from TMDB
  • Subject support, like region subject, IMDB TOP 100 subject etc.
  • VIP Donate function.
  • Movie belongs to collection, user can list all movie torrents of the collection.
  • Cast belongs to collection, user can list all movie torrents of the cast.
  • Business cooperation support(like play box? NAS? etc.)
  • ......more

Online support

Before You Begin

Before you begin we recommend you read about the basic building blocks that assemble a meanTorrent application:

Prerequisites

Make sure you have installed all of the following prerequisites on your development machine:

$ npm install -g bower

Downloading meanTorrent

There are several ways you can get the meanTorrent boilerplate:

Cloning The GitHub Repository

The recommended way to get meanTorrent is to use git to directly clone the meanTorrent repository:

$ git clone https://github.com/taobataoma/meanTorrent.git

This will clone the latest version of the meanTorrent repository to a meanTorrent folder.

Downloading The Repository Zip File

Another way to use the MEAN.JS boilerplate is to download a zip copy from the master branch on GitHub. You can also do this using the wget command:

$ wget https://github.com/taobataoma/meanTorrent/archive/master.zip -O meanTorrent.zip; unzip meanTorrent.zip; rm meanTorrent.zip

Don't forget to rename meanTorrent-master after your project name.

Quick Install

Once you've downloaded the boilerplate and installed all the prerequisites, you're just a few steps away from starting to develop your meanTorrent application.

The boilerplate comes pre-bundled with a package.json and bower.json files that contain the list of modules you need to start your application.

To install the dependencies, run this in the application folder from the command-line:

$ npm install

This command does a few things:

  • First it will install the dependencies needed for the application to run.
  • If you're running in a development environment, it will then also install development dependencies needed for testing and running your application.
  • When the npm packages install process is over, npm will initiate a bower install command to install all the front-end modules needed for the application
  • To update these packages later on, just run npm update

Running Your Application

Run your application using npm:

$ npm start

Your application should run on port 3000 with the development environment configuration, so in your browser just go to http://localhost:3000

That's it! Your application should be running. To proceed with your development, check the other sections in this documentation. If you encounter any problems, try the Troubleshooting section.

Explore config/env/development.js for development environment configuration options.

Running in Production mode

To run your application with production environment configuration:

$ npm run start:prod

Explore config/env/production.js for production environment configuration options.

Running with TLS (SSL)

Application will start by default with secure configuration (SSL mode) turned on and listen on port 8443. To run your application in a secure manner you'll need to use OpenSSL and generate a set of self-signed certificates. Unix-based users can use the following command:

$ npm run generate-ssl-certs

Windows users can follow instructions found here. After you've generated the key and certificate, place them in the config/sslcerts folder.

Finally, execute prod task npm run start:prod

  • enable/disable SSL mode in production environment change the secure option in config/env/production.js

Getting Started With meanTorrent

Before you to start the meanTorrent application, Please explore config/env/torrent.js for many environment configuration options, you can change all configuration items of you Caring, such as:

    announce: {
      url: 'http://chd.im/announce',
      announce_prefix: '[CHD.im].',
      admin: '[email protected]',
      base_url: 'http://chd.im',
      client_black_list_url: 'http://chd.im/client_black_list',
      private_torrent_cms: true
    },

meanTorrent tracker is private, please set the announce.url to your server url, then when user to upload torrent file, It will autocheck the torrent announce url whether matching as announce.url. But, meanTorrent support public tracker torrents CMS mode with private_torrent_cms set to false, in public mode, user can upload and download public tracker torrent files, but these torrent files is can not used by meanTorrent tracker server.

    tmdbConfig: {
      //please change it to your api key from themoviedb.org
      key: '7888f0042a366f63289ff571b68b7ce0',
    },

Because meanTorrent autoload the movie info from TMDB, so please to register yourself key and replace it to tmdbConfig.key.

    language: [
      {name: 'en', index: 0, class: 'flag-icon-gb', title: 'English'},
      {name: 'zh', index: 1, class: 'flag-icon-cn', title: '中文'}
    ],

Multilingual support, if you add a new translate string file, please add configuration here. The name if value of ISO_639-1, The class is used origin flag-icon-css, you can find flag icon at /public/lib/flag-icon-css/flags.

    clientBlackList: [
      {name: 'Transmission/2.93'},
      {name: 'Mozilla'},
      {name: 'AppleWebKit'},
      {name: 'Safari'},
      {name: 'Chrome'}
    ],

This is a client Black List, all the list client can not connect to the tracker server, you can add more if you unlike some client to connect. And you can make a list page to tell users witch clients are unpopular.

    sign: {
      open_signin: true,
      allow_social_sign: true
    },
    invite: {
      open_invite: true,
      score_exchange: 10000,
      expires: 60 * 60 * 1000 * 24
    },

If your site do not accept user free register, please set open_signin to false, then user only can register through friend invitation or system(admin/oper) invitation. if you set open_invite to true, the normal user can invite friends to join, if false only oper/admin can invite users.

There is not much comment of config/env/torrent.js, because the development time is limited, I'll add more comment in my free time, If you has any question, please post an issue, and i will focus it.

License

The MIT License

meantorrent's People

Contributors

taobataoma avatar lirantal avatar amoshaviv avatar ilanbiala avatar codydaig avatar mleanos avatar liorkesos avatar rhutchison avatar simison avatar rschwabco avatar jloveland avatar enkodellc avatar trainerbill avatar luebken avatar hyperreality avatar igorauad avatar michaeljcole avatar itelo avatar sujeethk avatar pgrodrigues avatar fyockm avatar spacemonkey avatar netusco avatar mrjasonweaver avatar wansco avatar pontifier avatar cdriscol avatar reblace avatar shanavas786 avatar sylvainlap avatar

Watchers

James Cloos avatar The Reverend Cozmo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.