Quick start

You can install CloudWall as a set of files at a static hosting, or as a couchapp into your CouchDB, which is preferable.

Setup as a Couch-hosted app

Preferable hosting for CloudWall is native CouchDB. There are two ways to install CloudWall into Couch.

First way is to download cloudwall-2.2.json and put it into any CouchDB bucket you like, then run index.html.

Second way is to replicate from the repo DB, and, optionally, setup vhosts configuration. To replicate CloudWall and documentation, create below doc in the _replicator bucket of your CouchDB:

Please, don‘t make sync continuous, repo is of very limited capacity!

Above code installs CloudWall, documentation and Photon, which is alternative CouchDB admin panel.

CloudWall now can be started from mydomain.com/cloudwall/_design/cw22/index.html. Bit long URL, to make it shorter set up domain binding.

First run as a couchapp

CloudWall, when runs as a Couch-hosted app, checks if user is authorized by CouchDB. If not, user is asked to log in to CouchDB.

If user is _admin, CloudWall automatically creates new remote CouchDB bucket to store user’s profile and apps. If user isn’t admin, one of admins should create profile bucket for the user manually. Use widget at right to derive new DB name from username.

If required remote bucket exists, user is prompted to enter PIN code for local prfile, protecting sensitive data when stored inside user’s browser.

Domain binding

To bind your CloudWall instance to a dedicated subdomain, first create valid DNS A-record, pointing to CouchDB IP. Then go to CouchDB config editor, and create/modify below keys:

CloudWall now starts from cw.mydomain.com/, the domain root. Rewrite rules also make entire CouchDB available from the domain root, to allow in-domain auth and DB sync.

Accessing cw.mydomain.com/_photon/ runs Photon dashboard, cw.mydomain.com/_docs/ opens docs.

The profile.json attachment of _design/cw22 contains default user profile, which includes default list of DBs user connects at start. Edit this attach to make up the list.

Setup for static hosting

Download cloudwall-2.2.tgz, unpack it and point your site root to index.html. That is all.

File profile.json contains default user profile, which includes default list of DBs user connects at start.

First run from a static hosting

‘Create profile’ dialog

‘Create profile’ dialog

When user runs _design/cw22/index.html on a new device, CloudWall requests local user profile set up. There are two ways:

1. Create new profile

If you run CloudWall first time, your local profile is created. It‘s a special local DB, containing system apps, list of your DBs and their syncs, your cryptokeys, list of read docs and last seen revisions, and so on.

This local DB is named ‘System DB’ and keeps all sensitive information encrypted and protected by PIN code. You should provide one to protect your passwords and cryptokeys.

CloudWall will asks for PIN, if any, on every page reload, so do not make it excessively complex.

2. Clone existing profile

‘Link with existing profile’ dialog

‘Link with existing profile’ dialog

If you already use CloudWall, you have System DB inside your device‘s browser. System DB is just one of local buckets, so it may be synced with remote CouchDB. It means you can have a remote copy of your profile. 

If one device‘s System DB is synced with a CouchDB bucket, you may sync it back to new device — and have same set of DBs and apps on both devices. 

To link new device with your account, click ‘link accounts’ at right bottom. Provide URL of a remote CouchDB bucket with your profile, credentials — and you’re done.

Demo apps & docs

If original profile.json file/attachment was not changed, on the first start you should probably see Demo & Docs bucket, with appearing (syncing in) demo apps, samples and CloudWall documentation. It might look like this:

Each member of the doc list has 2 clickable zones: title, which opens doc, and icon which opens doc properties popup.

Left column is a list of attached DBs and system actions. Right column is a list of running apps, CloudWall supports kind of cooperative multitasking.

Built-in apps

CloudWall installs several apps in local System DB, they are available system-wide. Clicking large DB name (here — Demo & Docs ▾) slides out a list of apps, available for the DB. 

Clicking app icon starts an app. If app is an editor, it starts with new blank doc. This new doc will be saved into the DB you opened the editor app from.

What is what

App Editor is an IDE for authoring and editing CloudWall apps. All CloudWall apps were created using it.

Apply DB dump is an utility for downloading array of docs, provided as a JSON file.

DB Settings shows sync and other settings for the current DB. Also performs DB compaction, resync and deletion, on request.

Ddoc Lab is a powerful design document IDE, specially intended for building and managing large branchy projects. CloudWall is built using Ddoc Lab.

Ddoc List just shows list of design docs in current DB, and allows to open them for editing.

Inliner is a highly flexible content editor. It allows mixing text/photo content with special widgets, which may be both created in place or in App Editor.

JSON Editor is used to edit json docs in as a json tree, in raw form.

Pass Keeper creates encrypted docs, that store passwords. Docs are encrypted with one your keys.

Photon is an admin panel for CouchDB. The Photon app is only available for a Couch-hosted CloudWall installation.

Site Editor is a derivative of Ddoc Lab, targeting AWS S3 buckets. It allows creating and managing static sites, hosted in Amazon S3 buckets.

ToDo List creates docs with todo lists. Allows encryption.

Download sources

CloudWall was created inside CloudWall, so its sources exist only like a set of CouchDB docs. To get sources, create below doc in the _replicator bucket of your CouchDB:

Please, don‘t make sync continuous, repo is of very limited capacity!

This will replicate entire current source set of CloudWall 2.x branch into cloudwall-dev bucket of your CouchDB. Attaching that bucket to your CloudWall instance must show something like this:

This set of CloudWall sources is enough to re-build CloudWall. The builder is in CW 2.2 doc, opening it and clicking ‘To Couch’ button builds _design/cw22 ddoc in /cloudwall bucket of your CouchDB instance. 

 

© 2017 ermouth. CloudWall is MIT-licensed.