Skip to content
Sources for Bitcoin Poker Room.
Python JavaScript Perl CSS PHP Shell Prolog
Latest commit b89e8c2 Nov 17, 2013 @hippich Update README.md
Failed to load latest commit information.
lib
log
root
script
sql
t
updates
.gitignore Refactor withdraw into separate controller. Add withdraw_bitcoin into… Oct 24, 2011
Changes Import initial Bitcoin Poker Room source tree. Aug 29, 2010
LICENSE
Makefile.PL Add support for DeploymentHandler to handle DB schema install and upg… Oct 25, 2011
README.md
agpl.txt Added AGPL text. Sep 6, 2010
init.d-room.sample Update init.d script to use PID instead of process name for restartin… Sep 16, 2011
room_sample.conf
schema_dump.sql Very rough first implementation of multi-currency and multi-server fe… Oct 20, 2011

README.md

Install under Ubuntu 11.10

Install Python Poker Network

Project depends on python-poker-network project. Since this is ugly "glue it together" type of project, we will install python-poker-network from repositories and then link certain files to our project files.

First of all make sure MySQL server installed first:

sudo apt-get install mysql-server

Start by installing python-poker-network:

sudo apt-get install python-poker-network

Install bitcoind from David Armstrong repository:

sudo add-apt-repository ppa:stretch/bitcoin
sudo apt-get update
sudo apt-get install bitcoin

Our implementation of python-poker-network software uses /dev/random. Check it if it produce a lot of data by default (cat /dev/random) - you need 1-5 Kb/s minumum. If this do not happen you need to install rng-tools:

sudo apt-get install rng-tools

And configure it to use initial data from /dev/urandom. To do this edit file /etc/default/rng-tools and insert following line at the end of the file:

HRNGDEVICE=/dev/urandom 

Restart rng-tools by:

sudo /etc/init.d/rng-tools restart

Install Apache web server:

sudo apt-get install apache2

Create new virtual host config file:

sudo vim /etc/apache2/sites-available/room.conf 

With similar configuration:

<VirtualHost *:80>
  ServerName room

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  ProxyPass /POKER_REST http://localhost:19384/POKER_REST retry=1
  ProxyPass / http://localhost:3000/ retry=1
</VirtualHost>

Enable new settings:

sudo a2ensite room.conf 
sudo a2enmod proxy proxy_http
sudo /etc/init.d/apache2 restart

Install Memcached:

sudo apt-get install memcached

Install GIT and build tools

sudo apt-get install git build-essential

Install and configure Room

Install Module::Install from Ubuntu repositories:

sudo apt-get install libmodule-install-perl

Install Catalyst and Catalyst::Devel and other libs from Ubuntu repositories:

sudo apt-get install libcatalyst-devel-perl libcatalyst-perl \
libcrypt-ssleay-perl libobject-signature-perl

Next you will need to install all dependencies for this project. Dependencies will be download from CPAN. Since there are a lot of them it may make sense to enable auto installation of dependencies. To do this, simply bring up a CPAN shell:

perl -MCPAN -e shell

And run these two commands in the CPAN shell:

o conf prerequisites_policy follow
o conf commit

To install all dependencies:

perl Makefile.PL
sudo make installdeps

Check output to see any errors. In my case I had to force-install DBIx::Class::FrozenColumns due failing some tests:

sudo cpan -fi DBIx::Class::FrozenColumns

Copy room-sample.conf to room.conf and edit it inserting correct login/passwords for pythonpokernetwork database, bitcoind, twitter, GA, etc.

Import new schema:

mysql -u root pythonpokernetwork < schema_dump.sql

Replace stock Python Poker Network source code with Room's code

Find where Python Poker Network and Python Poker Engine installed:

find /usr -name "pokerclient.py"
find /usr -name "pokerclient.py"

In my case it was /usr/lib/python2.7/dist-packages and /usr/share/pyshared. Rename existing pokernetwork and pokerengine folders into something else and create soft links to Room's code:

cd /usr/lib/python2.7/dist-packages
sudo mv pokerengine pokerengine.old
sudo mv pokernetwork pokernetwork.old
sudo ln -s ~/projects/Room/lib/ppn/pokerengine pokerengine
sudo ln -s ~/projects/Room/lib/ppn/pokernetwork pokernetwork

And repeat for /usr/share/pyshared.

Install Python bitstring and oauth2 packages:

sudo apt-get install python-pip 
sudo pip install bitstring 
sudo pip install oauth2

And restart poker server:

sudo /etc/init.d/python-poker-network restart

Start Room

From project's home folder run:

./script/room_server.pl -r -f 

Navigate to http://room/ or whatever domain you created for this project.

Something went wrong with that request. Please try again.