Install Guide¶
Install dependencies¶
Before we begin, be sure Kegbot’s major dependencies are available on your your system.
On Ubuntu or Debian, use apt-get
:
$ sudo apt-get install \
python-dev \
python-pip \
libjpeg-dev \
libmysqlclient-dev \
redis-server \
mysql-client \
mysql-server \
redis-server \
supervisor \
nginx
On Mac OS X, we recommend using Homebrew:
$ brew install \
python \
mysql \
libpng \
jpeg \
redis \
nginx
Set up an environment¶
The first thing you’ll need is the Python virtualenv package. You probably already have this, but if not, you can install it with:
$ sudo pip install virtualenv
Once that’s done, chose a directory for the Kegbot Server environment and create it with virtualenv. In our examples we’ll use /data/kb:
$ virtualenv /data/kb
Finally, activate your virtualenv:
$ source /data/kb/bin/activate
(kb) $
Tip
You must activate your virtualenv before updating Kegbot, as well as before running any command-line Kegbot programs.
Install Kegbot Server¶
Once you have the environment set up, you’re ready to install Kegbot Server:
(kb) $ pip install -U kegbot
Sit back and relax; this command will download and install the latest release, along with all of its Python dependencies.
Create the database¶
Create a new database to store your Kegbot data. On MySQL, the command to use is:
$ mysqladmin -u root create kegbot
Tip
If your MySQL server requires a password, add -p to these commands.
We also recommend creating a new MySQL user solely for Kegbot access. Run the following command, replacing “pw” with a password of your choice:
$ mysql -u root -e '
GRANT ALL PRIVILEGES ON kegbot.* TO kegbot@localhost
IDENTIFIED BY "pw"; flush privileges;'
Run Redis¶
If you installed Redis, it’s probably already running. Verify by pinging it:
$ redis-cli ping PONG
Warning
Kegbot uses Redis databases 0 and 1 by default. If you are using the same Redis server for other programs, we recommend using separate databases.
Run the Setup Wizard¶
The program setup-kegbot.py
will help you:
- Configure Kegbot for the database you set up in the previous step;
- Create Kegbot’s Media and Static Files directories;
- Install defaults into your new database.
Run the setup wizard:
(kb) $ setup-kegbot.py
When finished, you should have a settings file in
~/.kegbot/local_settings.py
that you can examine.
About Media and Static Files¶
After running the wizard, two important settings should have been configured: the media and static files directories.
- MEDIA_ROOT
- This variable controls where Kegbot stores uploaded media: pictures added during account registration or pours, for example.
- STATIC_ROOT
- This variable controls where Kegbot’s static media is stored, such as built-in style sheets and images shown on the web page.
Warning
Never place other content in STATIC_ROOT
, and always be sure it is set
to a directory that Kegbot can completely overwrite. For more information,
see Django’s documentation for managing static files.
Configure E-Mail¶
Kegbot can send e-mail in several circumstances. These include:
- Initial account registration.
- Password recovery.
- Configurable notifications.
Before it can send e-mail, Kegbot must be configured with an e-mail
backend. To use an SMTP server, add the following lines to your
local_settings.py
file and configure them as appropriate:
# Tell Kegbot use the SMTP e-mail backend.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# SMTP server hostname (default: 'localhost') and port (default: 25).
EMAIL_HOST = 'email.example.com'
EMAIL_PORT = 25
# Credentials for SMTP server.
EMAIL_HOST_USER = 'username'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
# "From" address for e-mails.
EMAIL_FROM_ADDRESS = 'me@example.com'