Development Server Build Instructions

Prerequisites

It's assumed that our Ubuntu 10.04 LTS server has a local user with sudo access to both superuser and regular user accounts and that the hostname is set up correctly. Perform the following sanity checks before beginning:

xdissent@dev:~$ hostname
dev.remarkablewit.com
xdissent@dev:~$ hostname -s
dev
xdissent@dev:~$ hostname -f
dev.remarkablewit.com
xdissent@dev:~$ grep `hostname` /etc/hosts
127.0.1.1 dev.remarkablewit.com dev
xdissent@dev:~$ sudo -u www-data whoami
www-data
xdissent@dev:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"

Install Redmine

Note

Zend Server CE requires the apache2-mpm-prefork package, but Ubuntu uses apache2-mpm-worker as the default Apache2 threading model. Specifying the prefork variant here saves us from swapping it out later.

xdissent@dev:~$ sudo apt-get install apache2-mpm-prefork libapache2-mod-passenger mysql-server redmine-mysql redmine
[sudo] password for xdissent:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-utils apache2.2-bin apache2.2-common dbconfig-common irb1.8 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbreakpoint-ruby1.8 libbuilder-ruby libbuilder-ruby1.8 libcmdparse2-ruby1.8
  libdaemons-ruby1.8 libdbd-mysql-perl libdbd-mysql-ruby libdbd-mysql-ruby1.8 libdbi-perl libdbi-ruby1.8 libdeprecated-ruby1.8 liberb-ruby libexpat1 libjs-jquery libjs-prototype libjs-scriptaculous liblog4r-ruby1.8
  libmmap-ruby1.8 libmysql-ruby1.8 libmysqlclient16 libncurses-ruby1.8 libnet-daemon-perl libopenssl-ruby1.8 libplrpc-perl librack-ruby librack-ruby1.8 libreadline-ruby1.8 libreadline5 libredcloth-ruby
  libredcloth-ruby1.8 libruby libruby1.8 libruby1.8-extras libsqlite3-ruby libsqlite3-ruby1.8 libxml-simple-ruby mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server-5.1 mysql-server-core-5.1 rails rake
  rdoc rdoc1.8 ruby ruby1.8 rubygems rubygems1.8
Suggested packages:
  www-browser apache2-doc apache2-suexec apache2-suexec-custom ufw virtual-mysql-client mysql-client postgresql-client passenger-doc dbishell libdbi-ruby javascript-common tinyca mailx libapache2-mod-ruby
  libapache2-mod-fcgid libfcgi-ruby libfcgi-ruby1.8 graphviz libsvn-ruby librmagick-ruby libopenid-ruby thin mongrel httpd-cgi ruby1.8-examples ri1.8 ruby1.8-dev build-essential rubygems-doc
Recommended packages:
  ssl-cert libhtml-template-perl irb libmocha-ruby zip
The following NEW packages will be installed:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common irb1.8 libapache2-mod-passenger libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbreakpoint-ruby1.8 libbuilder-ruby
  libbuilder-ruby1.8 libcmdparse2-ruby1.8 libdaemons-ruby1.8 libdbd-mysql-perl libdbd-mysql-ruby libdbd-mysql-ruby1.8 libdbi-perl libdbi-ruby1.8 libdeprecated-ruby1.8 liberb-ruby libexpat1 libjs-jquery
  libjs-prototype libjs-scriptaculous liblog4r-ruby1.8 libmmap-ruby1.8 libmysql-ruby1.8 libmysqlclient16 libncurses-ruby1.8 libnet-daemon-perl libopenssl-ruby1.8 libplrpc-perl librack-ruby librack-ruby1.8
  libreadline-ruby1.8 libreadline5 libredcloth-ruby libredcloth-ruby1.8 libruby libruby1.8 libruby1.8-extras libsqlite3-ruby libsqlite3-ruby1.8 libxml-simple-ruby mysql-client-5.1 mysql-client-core-5.1 mysql-common
  mysql-server mysql-server-5.1 mysql-server-core-5.1 rails rake rdoc rdoc1.8 redmine redmine-mysql ruby ruby1.8 rubygems rubygems1.8
0 upgraded, 63 newly installed, 0 to remove and 0 not upgraded.
Need to get 35.8MB of archives.
After this operation, 128MB of additional disk space will be used.
Do you want to continue [Y/n]?
[...]
Setting up rubygems (1.3.5-1ubuntu2) ...
Setting up librack-ruby1.8 (1.1.0-3) ...
Setting up libjs-jquery (1.3.3-2ubuntu1) ...
Setting up librack-ruby (1.1.0-3) ...
Setting up libapache2-mod-passenger (2.2.7debian-1) ...
 * Reloading web server config apache2
   ...done.

Setting up mysql-server (5.1.41-3ubuntu12) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
xdissent@dev:~$ sudo ln -s /usr/share/redmine/public /var/www/redmine
xdissent@dev:~$ sudo vim /etc/apache2/sites-available/default
# /etc/apache2/sites-available/default
<VirtualHost *:80>

    ...

    PassengerDefaultUser www-data
    RailsEnv production
    RailsBaseURI /redmine
    SetEnv X_DEBIAN_SITEID "default"
    Alias "/redmine/plugin_assets/" /var/cache/redmine/default/plugin_assets/
    <Directory "/usr/share/redmine/public">
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>

Install Gitosis and git-daemon

xdissent@dev:~$ sudo apt-get install gitosis git-daemon-run acl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  git-core libdigest-sha1-perl liberror-perl python-pkg-resources python-setuptools python-support runit
Suggested packages:
  git-doc git-arch git-cvs git-svn git-email git-gui gitk gitweb python-distribute python-distribute-doc runit-run socklog-run
Recommended packages:
  patch fgetty
The following NEW packages will be installed:
  acl git-core git-daemon-run gitosis libdigest-sha1-perl liberror-perl python-pkg-resources python-setuptools python-support runit
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 6513kB of archives.
After this operation, 14.8MB of additional disk space will be used.
Do you want to continue [Y/n]?
[...]
Please read /usr/share/doc/gitosis/README.Debian
for information about how to use gitosis.

Processing triggers for python-support ...
xdissent@dev:~$ sudo vim /etc/fstab
#/etc/fstab
...
/dev/xvda       /               ext3     acl,noatime,errors=remount-ro 0       1
...
xdissent@dev:~$ sudo reboot
xdissent@dev:~$ sudo -H -u gitosis ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/srv/gitosis/.ssh/id_dsa):
Created directory '/srv/gitosis/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /srv/gitosis/.ssh/id_dsa.
Your public key has been saved in /srv/gitosis/.ssh/id_dsa.pub.
The key fingerprint is:
f2:1e:28:ab:19:8b:73:d0:c3:88:b0:13:d0:ad:de:54 gitosis@dev.remarkablewit.com
The key's randomart image is:
+--[ DSA 1024]----+
| . .             |
|. . . E          |
|.  . .           |
|o . .            |
|oB o  . S        |
|* = .  +         |
| o... . o        |
|...+ o . .       |
|.o+..   .        |
+-----------------+
xdissent@dev:~$ sudo -u gitosis cat ~gitosis/.ssh/id_dsa.pub | sudo -H -u gitosis gitosis-init
Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/
xdissent@dev:~$ sudo sed -i.orig 's:/var/cache:/srv/gitosis:g' /etc/sv/git-daemon/run
xdissent@dev:~$ sudo sv restart git-daemon
ok: run: git-daemon: (pid 2285) 0s

Install Redmine Gitosis Plugin

xdissent@dev:~$ sudo setfacl -m user:www-data:r-x,mask:r-x ~gitosis/.ssh
xdissent@dev:~$ sudo setfacl -m user:www-data:r--,mask:r-- ~gitosis/.ssh/id_dsa
xdissent@dev:~$ sudo gem install inifile lockfile net-ssh
Successfully installed inifile-0.3.0
Successfully installed lockfile-1.4.3
Successfully installed net-ssh-2.0.22
3 gems installed
Installing ri documentation for inifile-0.3.0...
Installing ri documentation for lockfile-1.4.3...
Installing ri documentation for net-ssh-2.0.22...
Installing RDoc documentation for inifile-0.3.0...
Installing RDoc documentation for lockfile-1.4.3...
Installing RDoc documentation for net-ssh-2.0.22...
xdissent@dev:~$ cd /usr/share/redmine
xdissent@dev:/usr/share/redmine$ sudo script/plugin install git://github.com/xdissent/redmine_gitosis.git
Initialized empty Git repository in /usr/share/redmine/vendor/plugins/redmine_gitosis/.git/
remote: Counting objects: 90, done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 90 (delta 37), reused 82 (delta 35)
Unpacking objects: 100% (90/90), done.
From git://github.com/xdissent/redmine_gitosis
 * branch            HEAD       -> FETCH_HEAD
xdissent@dev:/usr/share/redmine$ sudo -u www-data X_DEBIAN_SITEID=default RAILS_ENV=production rake db:migrate:plugins
(in /usr/share/redmine)
Migrating plugin redmine_gitosis ...
==  CreateGitosisPublicKeys: migrating ========================================
-- create_table(:gitosis_public_keys)
   -> 0.2843s
==  CreateGitosisPublicKeys: migrated (0.2846s) ===============================

xdissent@dev:/usr/share/redmine$ sudo /etc/init.d/apache2 restart

Extras

Install Zend Server CE 5.3

Download the Zend Server CE 5.3 installer (requires login). Somehow transfer that to the dev server, and extract to ~/ZendServer-RepositoryInstaller-linux or adjust paths below accordingly.

Warning

As of May 2010, Zend Server CE 5.3 has not yet been updated to explicitly support Ubuntu 10.04 LTS, and still references the Ubuntu 9.10 packages for MySQL support. These packages have been removed in Ubuntu 10.04 but may still be installed manually with very little risk. This solution was proposed in an Ubuntu forums post.

xdissent@dev:~$ wget http://mirrors.kernel.org/ubuntu/pool/universe/m/mysql-dfsg-5.0/libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb
--2010-05-13 05:57:58--  http://mirrors.kernel.org/ubuntu/pool/universe/m/mysql-dfsg-5.0/libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb
Resolving mirrors.kernel.org... 149.20.20.135, 204.152.191.39
Connecting to mirrors.kernel.org|149.20.20.135|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1838642 (1.8M) [text/plain]
Saving to: `libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb'

100%[=================================================================>] 1,838,642    261K/s   in 9.6s

2010-05-13 05:58:08 (188 KB/s) - `libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb' saved [1838642/1838642]

xdissent@dev:~$ sudo dpkg -i libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb
Selecting previously deselected package libmysqlclient15off.
(Reading database ... 24339 files and directories currently installed.)
Unpacking libmysqlclient15off (from libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb) ...
Setting up libmysqlclient15off (5.1.30really5.0.83-0ubuntu3) ...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
xdissent@dev:~$ cd ZendServer-RepositoryInstaller-linux/
xdissent@dev:~/ZendServer-RepositoryInstaller-linux$ sudo ./install_zs.sh 5.3 ce

Running this script will perform the following:
* Configure your package manager to use Zend Server repository
* Install Zend Server on your system using your package manager

Hit ENTER to install Zend Server, or Ctrl+C to abort now.
[...]
The following NEW packages will be installed:
  help-zend-server-ce{a} libaio1{a} libapache2-mod-php-5.3-zend-server{a} libframework1-zend-server{a} libicu36{a} libkrb53{a} libmcrypt4{a} liboci-us-locales-zend{a} libpng3{a} libpq4{a} lighttpd-zend-server{a}
  php-5.3-bcmath-zend-server{a} php-5.3-bz2-zend-server{a} php-5.3-calendar-zend-server{a} php-5.3-common-extensions-zend-server-ce{a} php-5.3-ctype-zend-server{a} php-5.3-curl-zend-server{a}
  php-5.3-data-cache-zend-server{a} php-5.3-debugger-zend-server{a} php-5.3-dev-zend-server{a} php-5.3-exif-zend-server{a} php-5.3-fcgi-zend-server{a} php-5.3-fileinfo-zend-server{a} php-5.3-ftp-zend-server{a}
  php-5.3-gd-zend-server{a} php-5.3-gettext-zend-server{a} php-5.3-gui-zend-server{a} php-5.3-imap-zend-server{a} php-5.3-intl-zend-server{a} php-5.3-json-zend-server{a} php-5.3-ldap-zend-server{a}
  php-5.3-mbstring-zend-server{a} php-5.3-mcrypt-zend-server{a} php-5.3-mysql-zend-server{a} php-5.3-mysqli-zend-server{a} php-5.3-oci8-zend-server{a} php-5.3-optimizer-plus-zend-server{a}
  php-5.3-pdo-mysql-zend-server{a} php-5.3-pdo-oci-zend-server{a} php-5.3-pdo-pgsql-zend-server{a} php-5.3-pgsql-zend-server{a} php-5.3-phar-zend-server{a} php-5.3-posix-zend-server{a} php-5.3-soap-zend-server{a}
  php-5.3-sockets-zend-server{a} php-5.3-sqlite-zend-server{a} php-5.3-tidy-zend-server{a} php-5.3-tokenizer-zend-server{a} php-5.3-xmlreader-zend-server{a} php-5.3-xmlwriter-zend-server{a}
  php-5.3-xsl-zend-server{a} php-5.3-zem-zend-server{a} php-5.3-zend-extensions-ce{a} php-5.3-zendutils-zend-server{a} php-5.3-zip-zend-server{a} zend-base{a} zend-server-ce-php-5.3 zend-server-doc{a}
  zend-server-framework{a}
The following packages are RECOMMENDED but will NOT be installed:
  sqlite
0 packages upgraded, 59 newly installed, 0 to remove and 0 not upgraded.
Need to get 51.9MB of archives. After unpacking 204MB will be used.
[...]
Zend Server started...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done

Zend Server was successfully installed.
xdissent@dev:~/ZendServer-RepositoryInstaller-linux$ sudo apt-get install phpmyadmin-zend-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libjs-mootools phpmyadmin
Recommended packages:
  javascript-common
The following NEW packages will be installed:
  libjs-mootools phpmyadmin phpmyadmin-zend-server
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 4534kB of archives.
After this operation, 18.5MB of additional disk space will be used.
Do you want to continue [Y/n]?
Get:1 http://us.archive.ubuntu.com/ubuntu/ lucid/universe libjs-mootools 1.2.4.0~debian1-1 [248kB]
Get:2 http://repos.zend.com/zend-server/deb/ server/non-free phpmyadmin-zend-server 4.0.0+b10 [1198B]
Get:3 http://us.archive.ubuntu.com/ubuntu/ lucid/universe phpmyadmin 4:3.3.2-1 [4285kB]
Fetched 4534kB in 2s (2230kB/s)
Preconfiguring packages ...
Selecting previously deselected package libjs-mootools.
(Reading database ... 33827 files and directories currently installed.)
Unpacking libjs-mootools (from .../libjs-mootools_1.2.4.0~debian1-1_all.deb) ...
Selecting previously deselected package phpmyadmin.
Unpacking phpmyadmin (from .../phpmyadmin_4%3a3.3.2-1_all.deb) ...
Selecting previously deselected package phpmyadmin-zend-server.
Unpacking phpmyadmin-zend-server (from .../phpmyadmin-zend-server_4.0.0+b10_all.deb) ...
Processing triggers for man-db ...
Setting up libjs-mootools (1.2.4.0~debian1-1) ...
Setting up phpmyadmin (4:3.3.2-1) ...
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf

Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config-db.php with new version
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql...  done.
dbconfig-common: flushing administrative password

Setting up phpmyadmin-zend-server (4.0.0+b10) ...

xdissent@dev:~/ZendServer-RepositoryInstaller-linux$ sudo sed -i.orig 's:^    // \(.*AllowNoPassword\):    \1:' /etc/phpmyadmin/config.inc.php
xdissent@dev:~/ZendServer-RepositoryInstaller-linux$ sudo aptitude markauto libmysqlclient15off
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.
Writing extended state information... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done

Patch Redmine for Underscores in Project Identifiers

Patch available here.

xdissent@dev:~$ sudo apt-get install patch
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  diffutils-doc
The following NEW packages will be installed:
  patch
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 123kB of archives.
After this operation, 254kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ lucid/main patch 2.6-2ubuntu1 [123kB]
Fetched 123kB in 0s (163kB/s)
Selecting previously deselected package patch.
(Reading database ... 34748 files and directories currently installed.)
Unpacking patch (from .../patch_2.6-2ubuntu1_i386.deb) ...
Processing triggers for man-db ...
Setting up patch (2.6-2ubuntu1) ...
xdissent@dev:~$ wget http://dev.remarkablewit.com/redmine/attachments/download/3/redmine-project-underscore-id-patch.diff
--2010-05-17 19:11:16--  http://dev.remarkablewit.com/redmine/attachments/download/3/redmine-project-underscore-id-patch.diff
Resolving dev.remarkablewit.com... 173.230.129.179
Connecting to dev.remarkablewit.com|173.230.129.179|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 659 [application/octet-stream]
Saving to: `redmine-project-underscore-id-patch.diff'

100%[=====================================================================================>] 659         --.-K/s   in 0s

2010-05-17 19:11:16 (112 MB/s) - `redmine-project-underscore-id-patch.diff' saved [659/659]

xdissent@dev:~$ cd /usr/share/redmine
xdissent@dev:/usr/share/redmine$ sudo patch -p1 < ~/redmine-project-underscore-id-patch.diff
patching file app/models/project.rb
diff -u -r old/project.rb new/project.rb
--- old/app/models/project.rb   2010-05-13 06:51:37.000000000 +0000
+++ new/app/models/project.rb   2010-05-13 06:53:06.000000000 +0000
@@ -70,7 +70,7 @@
   validates_length_of :homepage, :maximum => 255
   validates_length_of :identifier, :in => 1..20
   # donwcase letters, digits, dashes but not digits only
-  validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-]*$/, :if => Proc.new { |p| p.identifier_changed? }
+  validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-_]*$/, :if => Proc.new { |p| p.identifier_changed? }
   # reserved words
   validates_exclusion_of :identifier, :in => %w( new )
xdissent@dev:~$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting    ...done.

Install reStructuredText Redmine Plugin

xdissent@dev:~$ cd /usr/share/redmine/
xdissent@dev:/usr/share/redmine$ sudo script/plugin install git://dev.remarkablewit.com/git/red_rest.git
Initialized empty Git repository in /usr/share/redmine/vendor/plugins/red_rest/.git/
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 29 (delta 4), reused 18 (delta 1)
Unpacking objects: 100% (29/29), done.
From git://dev.remarkablewit.com/git/red_rest
 * branch            HEAD       -> FETCH_HEAD
xdissent@dev:/usr/share/redmine$ sudo apt-get install python-docutils python-pygments
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-roman
Suggested packages:
  texlive-latex-recommended texlive-latex-base texlive-lang-french python-chardet
Recommended packages:
  python-imaging libpaper-utils python-lxml
The following NEW packages will be installed:
  python-docutils python-pygments python-roman
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
[...]
Processing triggers for python-support ...
xdissent@dev:/usr/share/redmine$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting    ...done.

Install Redmine Themes

More themes are available at the Redmine Theme List.

Note

GitHub user ericpaulbishop has conglomerated these and other Redmine themes into a single package for easy installation. Simply download the package and copy the subdirectories containing the desired themes into /user/share/redmine/public/themes, or replace the entire themes directory with a clone of the git://github.com/ericpaulbishop/redmine_theme_pack.git repository.

xdissent@dev:~$ cd /usr/share/redmine
xdissent@dev:/usr/share/redmine$ sudo mkdir -p public/themes/basecamp/stylesheets
xdissent@dev:/usr/share/redmine$ cd public/themes/basecamp/stylesheets
xdissent@dev:/usr/share/redmine/public/themes/basecamp/stylesheets$ sudo wget http://www.theill.com/stuff/redmine/themes/basecamp/stylesheets/application.css
--2010-05-13 08:06:29--  http://www.theill.com/stuff/redmine/themes/basecamp/stylesheets/application.css
Resolving www.theill.com... 195.69.129.25
Connecting to www.theill.com|195.69.129.25|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5344 (5.2K) [text/css]
Saving to: `application.css'

100%[========================================================================>] 5,344       --.-K/s   in 0.1s

2010-05-13 08:06:29 (48.5 KB/s) - `application.css' saved [5344/5344]

xdissent@dev:/usr/share/redmine/public/themes/basecamp/stylesheets$ cd ../..
xdissent@dev:/usr/share/redmine/public/themes$ sudo wget http://www.pixel-cookers.com/downloads/Theme+Redmine+Pixel+Cookers
--2010-05-13 08:11:39--  http://www.pixel-cookers.com/downloads/Theme+Redmine+Pixel+Cookers
Resolving www.pixel-cookers.com... 213.251.168.30
Connecting to www.pixel-cookers.com|213.251.168.30|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.pixel-cookers.com/wp-content/uploads/downloads/2010/04/pixel-cookers.zip [following]
--2010-05-13 08:11:41--  http://www.pixel-cookers.com/wp-content/uploads/downloads/2010/04/pixel-cookers.zip
Connecting to www.pixel-cookers.com|213.251.168.30|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 207084 (202K) [application/zip]
Saving to: `pixel-cookers.zip'

100%[========================================================================>] 207,084      305K/s   in 0.7s

2010-05-13 08:11:42 (305 KB/s) - `pixel-cookers.zip' saved [207084/207084]

xdissent@dev:/usr/share/redmine/public/themes$ sudo unzip pixel-cookers.zip
Archive:  pixel-cookers.zip
   creating: pixel-cookers/
   creating: pixel-cookers/images/
[...]
  inflating: pixel-cookers/images/pc-bg.png
   creating: pixel-cookers/stylesheets/
  inflating: pixel-cookers/stylesheets/application.css

xdissent@dev:/usr/share/redmine/public/themes$ sudo wget http://dev.remarkablewit.com/redmine/attachments/2/squeejee.zip
--2010-05-13 08:25:10--  http://dev.remarkablewit.com/redmine/attachments/2/squeejee.zip
Resolving dev.remarkablewit.com... 127.0.1.1
Connecting to dev.remarkablewit.com|127.0.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 77951 (76K) [application/zip]
Saving to: `squeejee.zip'

100%[========================================================================>] 77,951      --.-K/s   in 0s

2010-05-13 08:25:10 (181 MB/s) - `squeejee.zip' saved [77951/77951]

xdissent@dev:/usr/share/redmine/public/themes$ sudo unzip squeejee.zip
Archive:  squeejee.zip
   creating: squeejee/
  inflating: squeejee/CHANGELOG
   creating: __MACOSX/
   creating: __MACOSX/squeejee/
[...]
  inflating: squeejee/VERSION
  inflating: __MACOSX/squeejee/._VERSION
xdissent@dev:/usr/share/redmine/public/themes$ sudo wget http://www.modula.fi/downloads/ModulaMojito.zip
--2010-05-13 08:44:38--  http://www.modula.fi/downloads/ModulaMojito.zip
Resolving www.modula.fi... 217.149.52.5
Connecting to www.modula.fi|217.149.52.5|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5040 (4.9K) [application/zip]
Saving to: `ModulaMojito.zip'

100%[========================================================================>] 5,040       --.-K/s   in 0.1s

2010-05-13 08:44:38 (38.0 KB/s) - `ModulaMojito.zip' saved [5040/5040]

xdissent@dev:/usr/share/redmine/public/themes$ sudo unzip ModulaMojito.zip
Archive:  ModulaMojito.zip
   creating: Modula Mojito/
  inflating: Modula Mojito/.DS_Store
   creating: __MACOSX/
   creating: __MACOSX/Modula Mojito/
  inflating: __MACOSX/Modula Mojito/._.DS_Store
   creating: Modula Mojito/stylesheets/
  inflating: Modula Mojito/stylesheets/application.css
   creating: __MACOSX/Modula Mojito/stylesheets/
  inflating: __MACOSX/Modula Mojito/stylesheets/._application.css
  inflating: __MACOSX/Modula Mojito/._stylesheets
  inflating: __MACOSX/._Modula Mojito
xdissent@dev:/usr/share/redmine/public/themes$ sudo sed -i.orig 's/\(wiki h2.*\)border-bottom/\1border/' Modula\ Mojito/stylesheets/application.css
xdissent@dev:/usr/share/redmine/public/themes$ echo "h2 img.gravatar { float: none; display: inline; }" | sudo tee -a Modula\ Mojito/stylesheets/application.css > /dev/null
xdissent@dev:/usr/share/redmine/public/themes$ sudo wget http://www.modula.fi/downloads/ModulaMartini.zip
--2010-05-13 08:46:15--  http://www.modula.fi/downloads/ModulaMartini.zip
Resolving www.modula.fi... 217.149.52.5
Connecting to www.modula.fi|217.149.52.5|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3118 (3.0K) [application/zip]
Saving to: `ModulaMartini.zip'

100%[========================================================================>] 3,118       --.-K/s   in 0.1s

2010-05-13 08:46:16 (23.5 KB/s) - `ModulaMartini.zip' saved [3118/3118]

xdissent@dev:/usr/share/redmine/public/themes$ sudo unzip ModulaMartini.zip
Archive:  ModulaMartini.zip
   creating: Modula Martini/
   creating: Modula Martini/stylesheets/
  inflating: Modula Martini/stylesheets/application.css
   creating: __MACOSX/
   creating: __MACOSX/Modula Martini/
   creating: __MACOSX/Modula Martini/stylesheets/
  inflating: __MACOSX/Modula Martini/stylesheets/._application.css
xdissent@dev:/usr/share/redmine/public/themes$ sudo rm -rf __MACOSX
xdissent@dev:/usr/share/redmine/public/themes$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting    ...done.

Enable the userdir Apache2 Module

xdissent@dev:~$ sudo a2enmod userdir
Enabling module userdir.
Run '/etc/init.d/apache2 restart' to activate new configuration!
xdissent@dev:~$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting    ...done.

Also available in: HTML TXT