regenwolken โ an open source CloudApp server
Cloud.app is really handy, sharing files was never that easy. But I don't
like to see (personal) data like screenshots or code snippets go out of my
reach. Regenwolken is a full-featured implementation of the Cloud App API with
one malus: you have do edit your /etc/hosts
.
open server
I've set up a server open for everyone. Simply, add 134.255.239.78 my.cl.ly
to your /etc/hosts
. Items older than three days will be purged at midnight
(only a small vserver). Happy testing!
Quickstart
Short instructions for OS X, adapt these commands to your linux distribution of choice (Debian Squeeze!).
$ brew install mongodb
$ mongod --dbpath foo/ &
Now install regenwolken and its dependencies:
$ easy_install regenwolken
$ easy_install pygments Pillow markdown # optional
Modify /etc/hosts, launch regenwolken and register a new account
$ echo "12.34.56.78 my.cl.ly" | sudo tee -a /etc/hosts
$ regenwolken &
[... open Cloud.app or another client and register a new account]
$ rwctl activate USERNAME
You can change that behavior to instantly activate new users using a
configuration file such as /path/to/rw.cfg
with the following:
$ cat /path/to/rw.cfg
PUBLIC_REGISTRATION = True
$ export REGENWOLKEN_SETTINGS=/path/to/rw.cfg
$ regenwolken
How to use regenwolken
As an alternative CloudApp-server, you have to edit their DNS my.cl.ly to point to your own IP. This will not interfere with CloudApp Service itself, because they are using cl.ly and f.c.ly for sharing.
$ echo "12.34.56.78 my.cl.ly" | sudo tee -a /etc/hosts
Note: you should set a hostname (= your domain) in regenwolken.cfg. This will return into customized URLs, pointing directly to your host, so others don't need to modify their hosts.
Setup and Configuration
See DEPLOYMENT.md and CONFIG.rst for details.
API implementation
regenwolken provides all API calls to get Cloud.app working and has only few calls of CloudApp's API missing. See API.md for a complete list of features. Below, the following are currently covered by the web interface.
# -H "Accept: text/html"
/ - GET basic web interface
/items/<short_id> - GET file or redirect from bookmark
/items/<short_id>/filename - GET same as /items/<short_id>
/<short_id> - GET viso-like file view or redirect from bookmark
/thumb/<short_id> - GET thumbnail of item
Thanks to cmur2 for his feature-rich CLI (with HTTPS support!) and help to build this service!
Clients
If you are working on a API or Client for CloudApp, please consider a configurable service url. That makes the hosts file hack unnecessary and as a side effect you can use HTTPS for all connections (feature is still in master).
working
- Mac OS X Cloud.app
- Cloudette โ free CloudApp iPhone client, works flawlessly
- BlueNube โ 1,99$ iPad client
- Stratus โ CloudApp Client for iOS (iPhone/iPad); add
127.0.0.1 ws.pusherapp.com
to /etc/hosts as well. - cloudapp-power-cli โ feature-rich commandline tool
- JCloudApp โ cross-platform Cloud.app widget in Java (supports HTTPS with regenwolken!)
- gloudapp โ linux+GTK-based client
Do not use the official cloudapp-cli
app, it is still beta, has much fewer features and does not support other services out-of-the-box.
failing clients
- Windows' FluffyApp, fails to login
Links:
- rixth/raincloud โ a (full?) cloud implementation written in node.js
- short description in my blog