gLifestream requirements

Optional (but recommended)


Installation instructions

  1. Change the current working directory into the `glifestream' directory.
  2. Copy `' to `' and edit your local site configuration.
  3. Run `python syncdb'.
  4. Run `python compilemessages' (if you have `gettext' installed).
  5. Run `./ --init-files-dirs'.

Make sure that `media/thumbs/*' and `media/upload' directories exist and all have write permissions by your webserver.

Use `glifestream/' to automatically fetch external streams (via cron), list available streams or remove old entries. See ` --help'.

The development/test server

Change the current working directory into the `glifestream' directory and run the command `python runserver'. You will see the following output:

Performing system checks...

System check identified no issues (0 silenced).
March 09, 2015 - 17:54:57
Django version 1.7.6, using settings 'glifestream.settings'
Starting development server at
Quit the server with CONTROL-C.

Production server with mod_wsgi

Apache configuration:

LoadModule wsgi_module modules/

WSGIScriptAlias / /usr/local/django/glifestream/
Alias /media "/usr/local/django/glifestream/media"
Alias /static "/usr/local/django/glifestream/static"
<Directory "/usr/local/django/glifestream/">
   <IfModule mod_deflate.c>
     AddOutputFilterByType DEFLATE application/javascript text/css
   AllowOverride All
   Options None
   Order allow,deny
   Allow from all

More detailed information is available at:

The search functionality via Sphinx

To use the search functionality in GLS via Sphinx, you must add the following configuration to your 'etc/sphinx.conf' (replace the DATABASE_* values with the proper ones from your

source glifestream
   type         = mysql
   sql_host     = DATABASE_HOST
   sql_user     = DATABASE_USER
   sql_pass     = DATABASE_PASSWORD
   sql_db       = DATABASE_NAME
   sql_port     = 3306
   sql_query    = \
	SELECT, stream_entry.title, stream_entry.content, \
	UNIX_TIMESTAMP(stream_entry.date_published) AS date_published, \
	stream_entry.friends_only, stream_service.public FROM stream_entry \
	INNER JOIN stream_service ON \
	WHERE AND stream_entry.draft=0

   sql_attr_timestamp = date_published
   sql_attr_bool      = public
   sql_attr_bool      = friends_only

index glifestream
   source       = glifestream
   path         = /var/lib/sphinx/glifestream
   docinfo      = extern
   charset_type = utf-8
   html_strip   = 1

Receive postings via e-mail

To allow for posts sent by e-mail, create a secret mail alias, by extending /etc/mail/aliases file:

gls.secret.address: "|/usr/local/django/glifestream/ --email2post"

Fork me on GitHub