Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Description

...

of

...

how

...

to

...

install

...

the

...

software

...

needed

...

for

...

Lobber.

...

Hosts

Hostname

Use

Web application and tracker server

Database server

Storage Node

All hosts are running Ubuntu (10.04)

...

with

...

the

...

following

...

extra

...

packages

...

and

...

customizations.

...

Common

...

to

...

all

{
Code Block
}
apt-get install git-core git-doc ssl-cert git-core python-virtualenv
{
Code Block
}

{code}
apt-get install postfix
# local only configuration!
{code}

h2. Web application and tracker server

Web application and tracker server

Code Block

{code}
apt-get install apache2 libapache2-mod-wsgi libapache2-mod-shib2 libpq-dev python-dev
{code}

You

...

might

...

need

...

these:

{
Code Block
}
python-egenix-mxdatetime python-egenix-mxtools python-pycurl python-openssl python-twisted
{code}

Set

...

up

...

a

...

virtual

...

python

...

environment

...

(

...

virtualenv

...

)

...

and

...

activate

...

it.

{
Code Block
}
virtualenv --no-site-packages /path/to/lobber_env
source /path/to/lobber_env/bin/activate
{code}

Install

...

the

...

needed

...

python

...

applications.

{
Code Block
}
pip install django django-tagging django-form-utils orbited stomp.py psycopg2
{code}

You

...

might

...

need

...

these:

{
Code Block
}
pip install uuid django-evolution django-extensions werkzeug
{code}

Get

...

Lobber

...

from

...

git.nordu.net

...

and

...

check

...

out

...

the

...

latest

...

stable

...

version.

{
Code Block
}
git clone git@git.nordu.net:lobber.git
cd lobber
git checkout bud-light
{code}

Create

...

the

...

a

...

log

...

directory

...

and

...

symlink

...

the

...

environment

...

directory

...

and

...

Django

...

admin

...

media

...

directory

...

in

...

to

...

the

...

lobber

...

directory.

{
Code Block
}
/path/to/lobber/
mkdir logs
cd src
ln -s /path/to/lobber_env env
ln -s env/lib/python2.6/site-packages/django/contrib/admin/media admin-media
{code}

Edit

...

paths

...

and

...

other

...

options

...

in

...

settings.py.

Code Block
titlesettings.py

{code}
TRACKER_ADDR = 'localhost'

ADMINS = (
    ('Your name', 'your@email.net'),

DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'lobber'
DATABASE_USER = 'lobber'
DATABASE_PASSWORD = 'secret_password'
DATABASE_HOST = 'database host'
DATABASE_PORT = 'database port'

DROPBOX_DIR = '/dir/writable/by/apache/user/dropbox'

# Make this unique, and don't share it with anybody.
SECRET_KEY = 'secret'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',      # For the Permission model.
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'tagging',
    'lobber.extensions',
    'lobber.userprofile',
    'lobber.share',
    'lobber.links',
    'lobber.tracker',
    'lobber.auth'
)
{code}

Synchronize

...

the

...

database.

{
Code Block
}
./dev-django-admin.sh syncdb
{code}

Setup [Orbited|http://orbited.org] by creating {{

Setup Orbited by creating /etc/orbited.cfg

...

:

{|=
Code Block
title
orbited.cfg
}
[listen]
http://:9001
stomp://:61613

[access]
* -> localhost:61613

[static]

[global]
session.ping_interval = 300
user=www-data

[logging]
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
{code}

and

...

make

...

sure

...

that

...

orbited

...

is

...

started

...

like

...

this

...

automatically

...

at

...

boot:

...

echo

...

"orbited

...

-c

...

/etc/orbited.cfg"

...

>>

...

/etc/rc.local

...

You

...

might

...

need:

{
Code Block
}
pip install stompservice
{code}

Activate

...

some

...

Apache

...

modules:

{
Code Block
}
# a2enmod shib2
# a2enmod headers
# a2enmod rewrite
# a2enmod proxy
# a2enmod proxy_http
{code}

Set

...

up

...

cron

...

jobs

...

for

...

expiring

...

old

...

torrents,

...

keys

...

and

...

peers.

Code Block
  
{code}
# m h dom mon dow command
*/5 * * * * cd /path/to/lobber/src/ && ./dev-django-admin.sh expire_peers 5 /dev/null 2>&1
0 0 * * * cd /path/to/lobber/src/ && ./dev-django-admin.sh expire_torrents >/dev/null 2>&1
5 0 * * * cd /path/to/lobber/src/ && ./dev-django-admin.sh expire_keys >/dev/null 2>&1 
{code}

To

...

be

...

able

...

to

...

accept

...

file

...

uploads

...

in

...

the

...

Lobber

...

web

...

application

...

you

...

need

...

to

...

install

...

a

...

Lobber

...

storage

...

node

...

on

...

the

...

web

...

application

...

and

...

tracker

...

server.

...

Storage

...

node

...

See

...

Running

...

a

...

storage

...

node

...

Note

...

that

...

the

...

web

...

application

...

and

...

tracker

...

server

...

needs

...

a

...

storage

...

node

...

nowadays

...

that's

...

how

...

we

...

do

...

file

...

upload.

...

Database

...

server

{
Code Block
}
apt-get install postgresql-client-8.4
{code}

h2. Setting up your own sandbox
# 

Setting up your own sandbox

  1. apt-get

...

  1. install

...

  1. python-virtualenv

...

  1. virtualenv

...

  1. /mina/envs/lobber

...

  1. .

...

  1. /mina/envs/lobber/bin/activate

...

  1. pip

...

  1. install

...

  1. django

...

  1. django-extensions

...

  1. django-tagging

...

  1. orbited

...

  1. uuid

...

  1. django-evolution

...

  1. stomp.py

...

  1. werkzeug

...

  1. psycopg2

...

  1. git

...

  1. clone

...

  1. git@git.nordu.net:lobber.git

...

  1. (alt.

...

  1. git

...

  1. pull)

...

  1. cd

...

  1. lobber

...

  1. git

...

  1. checkout

...

  1. <branch>

...

  1. mkdir

...

  1. db

...

  1. mkdir

...

  1. logs

...

  1. cd

...

  1. src

...

  1. ./dev-django-admin.sh

...

  1. syncdb

...

  1. ln

...

  1. -s

...

  1. /mina/envs/lobber

...

  1. env

...

  1. ln

...

  1. -s

...

  1. env/lib/python2.6/site-packages/django/contrib/admin/media

...

  1. admin-media

...

  1. Edit

...

  1. paths

...

  1. in

...

  1. settings.py

...

  1. ./dev-django-admin.sh

...

  1. runserver_plus

...