Sinatra Image and Media Gallery
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Zeitgeist is a free software media gallery built with Sinatra.

See it in action:

This is work in progress, come and join the fun!

Current Features

  • Upload image files -or-
  • Submit URLs to remote images and videos
  • Remote plugins:
    • Image hoster URLs are detected and parsed for the image: abload, flickr, fukung, imagenetz, imageshack, imgur, picpaste, twitpic, twitter, xkcd, yfrog (easily extendable)
    • Video and Audio URLs are also detected for the following sites: YouTube, Vimeo, Soundcloud (this also parses and stores thumbnails along with title and tags)
  • Items (images, audio and videos) can be tagged and autotagged by url patterns aswell
  • User registration and authentication
  • Registered users can delete items they submitted
  • The pHash (perceptual hash) library (and phashion ruby bindings) is used to detect duplicate submissions and is able to detect similar images that are reencoded or slightly manipulated.
  • API: a simple HTTP API can be used to access zeitgeist (documented here)
  • IRC: a rubybot plugin allows to access zeitgeist in many ways:
    • auto-submit urls posted in channels
    • multi-user authentication
    • query item information like parsed title and tags
    • tag, delete (own) items through the IRC interface
  • Android: the app is currently in development, but the current features are:
    • Endless scrolling through the gallery
    • View images directly and use the YouTube app to watch videos
    • Modify item taggings, including an autocompletion for tags
    • Share photos from your gallery or make a snapshot and upload it directly from the app
    • Authenticate with your zeitgeist account easily using a qrcode shown on the /api_secret page. (this uses the zxing barcode scanner)
    • Delete your own photos from the gallery


  • Use rvm or similar to install ruby 2.0.0
  • git clone zeitgeist/
  • cd zeitgeist/
  • gem install bundler
  • bundle install Install requirements, this step requires some system libraries.
  • cp config.yaml.sample config.yaml
  • ruby zeitgeist.rb Or use shotgun, thin, or similar.



Zeitgeist is licensed under the GPLv2+. Please drop me a line if you use or modify it :)