Public | Automated Build

Last pushed: 3 years ago
Short Description
Short description is empty for this repo.
Full Description

HipsterPizza –

HipsterPizza allows to make group orders on If you don’t want
to run your own copy, you can use the
public instance at

Regular user? Roll your own copy to gain the ability to

  • automate all the things
  • save sharing the basket ID with colleagues
  • send your own fax to…
    • easily match order to person
    • add detailed way description
    • get VIP status
    • Bonus: confuse the delivery people

Convinced? Read on!


Rolling your own copy

Basic Setup

sudo apt-get install ruby git libssl-dev libsqlite3-dev nodejs
sudo gem install bundler

sudo mkdir -p /var/www/
sudo chown www-data:www-data /var/www
cd /var/www

# Install HipsterPizza and its dependencies:
sudo -u www-data -s
  git clone git://
  cd hipsterpizza

  /usr/bin/bundle --deployment --without development test
  ./bin/rake hipster:setup_production

  RAILS_ENV=production ./bin/rails server -p 10002 -b localhost

HipsterPizza should now be accessible from your browser at http://localhost:10002, give it a spin!

Everything that follows is optional. If you decide that the simple setup is enough for you, you may want to replace localhost with in the startup command. Others can access HipsterPizza using your IP or hostname and the port.

Starting it automatically

using systemd:

sudo cp /var/www/hipsterpizza/docs/systemd/* /etc/systemd/system/
sudo systemctl enable hipsterpizza.service hipsterpizza-cleanup.timer
sudo systemctl start hipsterpizza.service

This will ensure HipsterPizza starts everytime you boot the system. The hipsterpizza-cleanup jobs automatically removes outdated data – this keeps the delivery time estimate decent.

not using systemd:

Execute the following commands as user www-data at appropriate times/events:

cd /var/www/hipsterpizza
RAILS_ENV=production ./bin/rails server Puma -p 10002 -b localhost
RAILS_ENV=production ./bin/rake hipster:purge_old

Webserver integration

If you want HipsterPizza to be accessible “properly”, with a real domain and such, you need to install a webserver to act as reverse proxy.

Caveat: HipsterPizza does not support sub-URIs/sub-directories. I.e. is fine, while is not.

You can find an example config for nginx in docs/nginx_configuration_example. It’s strongly recommended to use that as a base. Missing config directives can lead to subtle bugs not immediately visible.

Copy the sample to /etc/nginx/sites-available/hipsterpizza and edit the IPv6 address and server name. Add a symbolic link to sites-enabled and reload nginx to apply the changes.

Configuring HipsterPizza to your needs

Once the above setup is done, you should have a public instance of
HipsterPizza running, just like the one on

(see example)
Allows you to fixate details you’d need to enter each time when using
HipsterPizza’s public instance. You can prefill only some details or
lock everything down, depending on your needs. Each config options is
documented in the linked example file.

(see example)
If you order regularly from the same delivery service, you can order by
directly sending them a fax (ask them first!). This file allows you to
customize address, logos, etc.

Biggest advantage: By
including the nicks with each order, matching pizza box to nerd is speed
up tremendously. If you register with,
you can fax from HipsterPizza’s interface, too. This is the setup
we (Heidelberg’s hacker group) use. If the
delivery service plays along, this rocks.

Docker Pull Command
Source Repository