Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
open source, self-hosting CloudApp
Python CSS JavaScript Perl
tag: 0.3

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Regenwolken – an open source, self-hosting

CloudApp sucks! Well, is really handy – but it's free of charge and this can't be good! Regenwolken offers an alternate API implementation; hosted on your own server!


You'll need python 2.5 or higher and easy_install (or pip) (e.g. apt-get install python-setuputils). Regenwolken uses GridFS as file storage backend, therefore you need MongoDB 1.6 or higher.

pip install pymongo werkzeug # or
easy_install pymongo werkzeug

# python2.5 users will need simplejson as well
pip install simplejson

To work as an alternative CloudApp-server, you have to edit their DNS to your own IP in /etc/hosts. This will not interfere with CloudApp-Service itself, because they're using for sharing.

> cat conf.yaml
port: 80 # or 9000 for mod_proxy

mongodb_port: 2701


There are two different setups: serve on port 80 as HTTP server or use a proxy. For the next setp, I assume you'll host Regenwolken on

First start MongoDB via mongod --dbpath path/to/some/folder and edit your local machine (where you run e.g. /etc/hosts (replace with the desired IP): # <-- stratus app will drive insane without

as HTTP server

This will setup Regenwolken as primary HTTP-Server, listening on Port 80. Therefore, you'll need root access.

  • check, there is no other process on port 80
  • start MongoDB via mongod --dbpath path/to/some/folder
  • run sudo python
  • edit /etc/hosts to
  • finally launch, register and then log in
  • take a test screenshot

using lighttpd and mod_proxy

Recommended way. Use some proxy-magic and run it as non-privileged user. Edit your /etc/lighttpd/lighttpd.conf to something like this:

$HTTP["host"] =~ "|" {

    # some other stuff related to

    $HTTP["host"] =~ "|" {
        proxy.server = ("" =>
           (("host" => "", "port" => 9000)))
  • start MongoDB via mongod --dbpath path/to/some/folder
  • run python as non-privileged user
  • finally launch, register and log in
  • take a test screenshot


You might wonder, why we ask for "|". Your /eth/hosts will resolve to your server IP and requesting with the Host, but it returns an URL pointing to your (real) server/domain.

Note: you should set a hostname (=domain name) in conf.yaml, where you host Regenwolken. This will return into customized URLs, pointing directly to the ressource.

Configuration and Usage

See USAGE.rst for a detailed instruction manual.

API implementation

Regenwolken provides all API calls to get working and has only few calls of CloudApp's API missing. See for a complete list of features. Below, the following are currently covered by the web interface.

# -H "Accept: text/html"

/              - GET basic web interface
/<short_id>    - GET file or redirect from bookmark

Thanks to cmur2 for his feature-rich CLI and help to build this service!



failing clients


Something went wrong with that request. Please try again.