Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Twitter Collage project for Mozilla Firefox 4 Launch
PHP
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
assets
config
job
lib
public
schema
src
util
.gitignore
CHANGELOG.txt
README.shell
bootstrap.php

README.shell

#
# Firefox 4 Twitter Party
# Design and development by Mozilla, Quodis © 2011
# http://www.mozilla.com
# http://www.quodis.com
# 
# Licensed under a Creative Commons Attribution Share-Alike License v3.0 http://creativecommons.org/licenses/by-sa/3.0/ 
#


#### INSTALLATION ####

# This document assumes:
# - a single server deployment (ubuntu) 
# - code is at /servers/prod/twitterparty
# - data is at /servers/data/twitterparty
# - user is root, current working dir is /servers/prod/twitterparty
# - configuration file is "config/config.prod.yaml"
# - daemontools is used to supervise jobs 

# IMPORTANT: 
#
# DO NOT INSTALL JOBS AS CRON JOBS
# DO NOT USE IN MULTI-SERVER ENVIRONMENT



#### INSTALLATION ####


## -- required --

apt-get install memcached mysql-server
apt-get install php5 php5-dbg php5-dev php5-common php5-cli php5-cgi php-pear php5-curl php5-mysql php5-tidy php5-memcache php5-imagick imagemagick
apt-get install daemontools

# dameontools specific:
# http://www.bytereef.org/howto/djb/daemontools-install.html

cp assets/install/svscan.conf  /etc/init/svscan.conf

# init service directory

mkdir /etc/service
sudo telinit Q


## -- code --

# assuming code is at /servers/prod/twitterparty
# assuming config file is "config/config.prod.yaml"

# permissions: 
#  www-data doesn't need write permissions
#  jobs are run as root

cd /servers/prod
git clone git@github.com:quodis/Twitter-Collage.git twitterparty 
cd twitterparty

ln -s config.prod.yaml config/config.yaml

# edit configuration in config/config.prod.yaml
# need to set paths, Database/* and App/url 


## -- private data and public storage  --

# assuming data is at /servers/data/twitterparty

# permissions: 
#  www-data doesn't need write permissions
#  jobs are run as root

mkdir /servers/data/twitterparty
mkdir public/store
mkdir public/store/pages
mkdir public/store/config

## -- logs --

mkdir /var/log/twitterparty
chmod 777 /var/log/twitterparty  

## -- configure --

# reads config/config.yaml > writes to config/config.php 
php util/configure.php

# writes to config/mosaic-xxx.php + public/store/config/grid.js
php util/mosaic-configure.php

# writes to public/store/pages
php util/mosaic-make-tiles.php



## -- mysql --

mysql -u root -p

# mysql > \. schema/db.sql
# mysql > \. schema/tables.sql



## -- web (apache)


# HOST twitterparty.mozilla.org
# doc root /servers/prod/twitterparty/public
# public/.htaccess does the rest

# web should now be available at http://twitterparty.mozilla.org and http://twitterparty.mozilla.org/dashboard

# make sure the following mime-types are configured
#  application/vnd.ms-fontobject                   eot
#  font/ttf                                        ttf
#  font/otf                                        otf
#  font/woff                                       woff
#  application/text-json                           json

# enable compression (png, gif, css, js, json, eot, svg, ttf, woff)

# disable directory listing



## -- install jobs --

# assuming code is at /servers/prod/twitterparty
# assuming jobbs are supervised by daemontools

# http://cr.yp.to/daemontools/start.html

mkdir /etc/service/twitterparty-twitter-search
echo '#!/bin/sh
exec php /servers/prod/twitterparty/job/twitter-search.php' > /etc/service/twitterparty-twitter-search/run

mkdir /etc/service/twitterparty-image-process
echo '#!/bin/sh
exec php /servers/prod/twitterparty/job/image-process.php' > /etc/service/twitterparty-image-process/run

mkdir /etc/service/twitterparty-mosaic-build
echo '#!/bin/sh
exec php /servers/prod/twitterparty/job/mosaic-build.php' > /etc/service/twitterparty-mosaic-build/run

chmod -R 755 /etc/service/twitterparty-*



#### CODE UPDATES ####

# stop jobs before updating code or configuration

svc -d /etc/service/twitterparty-*
git pull
php util/configure.php
svc -u /etc/service/twitterparty-*



#### JOBS ####

# services should be stoped before code updates and configuration changes

# stop
svc -d /etc/service/twitterparty-*

# tart
svc -t /etc/service/twitterparty-*



#### LOGS ####

# assuming logs are at /var/log/twitterparty

## -- web --

# lighttpd access > /var/log/lighttpd/access.log 
# lighttpd errors > /var/log/lighttpd/error.log

# twitterparty web (messages) > www.msg.log
# twitterparty web (errors) > www.error.log

# twitterparty dashboard (messages) > dashboard.msg.log
# twitterparty dashboard (errors) > dashboard.error.log

## -- jobs -- 

# messages are logged in JOBNAME-msg.log
# errors are logged in JOBNAME-error.log
Something went wrong with that request. Please try again.