In order to run Lobber you will need at least the following software.
This example is for running Lobber on localhost.
Software
- python
- django (apt-get install python-django)
- the web application – lobber
- a database
- sqlite
or - postgresql
- a tracker
- opentracker (git://git.nordu.net/opentracker.git)
Installation
sudo apt-get install python-django python-libtorrent python-bittorrent python-django-doc python-egenix-mxdatetime python-egenix-mxtools python-pycurl python-openssl python-setuptools python-pysqlite2 python-django-tagging python-twisted sqlite3 sqlite3-doc
If this doesn't work, dosudo easy_install orbited
wget http://pypi.python.org/pypi/orbited/0.7.10 && tar xzf orbited-0.7.10.tar.gz && cd orbited-0.7.10 && python setup.py install
sudo easy_install stompservice
- stomp
wget http://stomppy.googlecode.com/files/stomp.py-3.0.1-beta2.tar.gz
tar xzf stomp.py-3.0.1-beta2.tar.gz
cd stomp.py-3.0.1/
sudo python setup.py install
- opentracker
cvs -d :pserver:cvs@cvs.fefe.de:/cvs login
cvs -d :pserver:cvs@cvs.fefe.de:/cvs co libowfat
cd libowfat && make && cd ..git clone git://git.nordu.net/opentracker.git
cd opentracker && make && cd ..
See Lobber development sandbox for more details on configuration.
Bootstrapping
Do this once:
- Set up lobber
cd lobber
mkdir db logs torrents
cd src
./dev-django-admin.sh syncdb
- Configure orbited
cat > orbited.cfg <<EOF
listen http://:9000
stomp://:61613- -> localhost:61613
global
session.ping_interval = 300
user=www-datalogging
debug=STDERR,debug.log
info=STDERR,info.log
access=STDERR,info.log
warn=STDERR,error.log
error=STDERR,error.log#Don't enable debug by default
enabled.default=info,access,warn,error
EOF
- Set up the tracker
mkdir /tmp/tracker
cat >> opentracker.conf << EOF
listen.tcp_udp 0.0.0.0:4711
access.stats_path stats-xyzzy
tracker.rootdir /tmp/tracker
EOF
Starting up
- lobber
cd lobber/src
./dev-django-admin.sh runserver
- opentracker
opentracker/opentracker -f opentracker.conf -a http://localhost:8000/torrent/exists/
- orbited
orbited -c orbited.cfg
Using, first time
- Go to http://localhost:8000/admin/ and log in as whatever admin user you created in the syncbd phase under Bootstrapping above.
- Create an ordinary account
- Log out
Using
- http://localhost:8000/
- To craft your own torrent files, try
btmakemetafile <FILE> http://localhost:4711/announce
Resetting database
Django model classes are represented as tables in the database.
When members of model classes are added, removed or changed, the database needs to be recreated.
There's probably a way of keeping all the data too but this does not save any data. Beware:
- localhost:lobber/src% ./dev-django-admin.sh sqlreset share | ./dev-django-admin.sh dbshell