Bitcoin-Poker-Room

by hippich

Sources for Bitcoin Poker Room.

128 Stars 84 Forks Last release: Not found Other 472 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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:

  ServerName room

  
    Order deny,allow
    Allow from all
  
  ProxyPass /POKER_REST http://localhost:19384/POKER_REST retry=1
  ProxyPass / http://localhost:3000/ retry=1

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.