diff options
Diffstat (limited to 'docs/platform')
-rw-r--r-- | docs/platform/development.md | 34 | ||||
-rw-r--r-- | docs/platform/guide.md | 56 |
2 files changed, 80 insertions, 10 deletions
diff --git a/docs/platform/development.md b/docs/platform/development.md index 129404d..e433b6b 100644 --- a/docs/platform/development.md +++ b/docs/platform/development.md @@ -34,12 +34,29 @@ Install Vagrant in order to be able to test with local virtual machines (typical sudo apt-get install vagrant virtualbox -<!-- -*Mac OS* -1. Install rubygems from https://rubygems.org/pages/download (unless the `gem` command is already installed). -2. Install Vagrant.dmg from http://downloads.vagrantup.com/ ---> +*Mac OS X 10.9 (Mavericks)* + +Install Homebrew package manager from http://brew.sh/ and enable the [System Duplicates Repository](https://github.com/Homebrew/homebrew/wiki/Interesting-Taps-&-Branches) (needed to update old software versions delivered by Apple) with + + brew tap homebrew/dupes + +Update OpenSSH to support ECDSA keys. Follow [this guide](http://www.dctrwatson.com/2013/07/how-to-update-openssh-on-mac-os-x/) to let your system use the Homebrew binary. + + brew install openssh --with-brewed-openssl --with-keychain-support + +The certtool provided by Apple it's really old, install the one provided by GnuTLS and shadow the system's default. + + sudo brew install gnutls + ln -sf /usr/local/bin/gnutls-certtool /usr/local/bin/certool + +Install the Vagrant and VirtualBox packages for OS X from their respective Download pages. + +* http://www.vagrantup.com/downloads.html +* https://www.virtualbox.org/wiki/Downloads + + +2. Install Adding development nodes to your provider @@ -72,7 +89,7 @@ In order to test the node "web1" we need to start it. Starting a node for the fi NOTE: Many people have difficulties getting Vagrant working. If the following commands do not work, please see the Vagrant section below to troubleshoot your Vagrant install before proceeding. - $ leap local start web + $ leap local start web1 = created test/ = created test/Vagrantfile = installing vagrant plugin 'sahara' @@ -219,6 +236,11 @@ Ubuntu Raring 13.04 * `virtualbox 4.2.10-dfsg-0ubuntu2.1` from Ubuntu raring and `vagrant 1.2.2` from vagrantup.com +Mac OS X 10.9 +------------- + +* `VirtualBox 4.3.10` from virtualbox.org and `vagrant 1.5.4` from vagrantup.com + Using Vagrant with libvirt/kvm ============================== diff --git a/docs/platform/guide.md b/docs/platform/guide.md index 99147a8..4b3086e 100644 --- a/docs/platform/guide.md +++ b/docs/platform/guide.md @@ -16,15 +16,15 @@ When adding a new node to your provider, you should ask yourself four questions: Brief overview of the services: * **webapp**: The web application. Runs both webapp control panel for users and admins as well as the REST API that the client uses. Needs to communicate heavily with `couchdb` nodes. You need at least one, good to have two for redundancy. The webapp does not get a lot of traffic, so you will not need many. -* **couchdb**: The database for users and user data. You can get away with just one, but for proper redundancy you should have at least three. Communicates heavily with `webapp` and `mx` nodes. -* **soledad**: Handles the data syncing with clients. Typically combined with `couchdb` service, since it communicates heavily with couchdb. (not currently in stable release) -* **mx**: Incoming and outgoing MX servers. Communicates with the public internet, clients, and `couchdb` nodes. (not currently in stable release) +* **couchdb**: The database for users and user data. You can get away with just one, but for proper redundancy you should have at least three. Communicates heavily with `webapp`, `mx`, and `soledad` nodes. +* **soledad**: Handles the data syncing with clients. Typically combined with `couchdb` service, since it communicates heavily with couchdb. +* **mx**: Incoming and outgoing MX servers. Communicates with the public internet, clients, and `couchdb` nodes. * **openvpn**: OpenVPN gateway for clients. You need at least one, but want as many as needed to support the bandwidth your users are doing. The `openvpn` nodes are autonomous and don't need to communicate with any other nodes. Often combined with `tor` service. * **monitor**: Internal service to monitor all the other nodes. Currently, you can have zero or one `monitor` nodes. * **tor**: Sets up a tor exit node, unconnected to any other service. * **dns**: Not yet implemented. -webapp +Webapp ----------------------------------- The webapp node is responsible for both the user face web application and the API that the client interacts with. @@ -45,6 +45,54 @@ And then redeploy to all webapp nodes: By putting this in `services/webapp.json`, you will ensure that all webapp nodes inherit the value for `webapp.admins`. +Services +================================ + +What nodes do you need for a provider that offers particular services? + +<table class="table table-striped"> +<tr> +<th>Node Type</th> +<th>VPN Service</th> +<th>Email Service</th> +</tr> +<tr> +<td>webapp</td> +<td>required</td> +<td>required</td> +</tr> +<tr> +<td>couchdb</td> +<td>required</td> +<td>required</td> +</tr> +<tr> +<td>soledad</td> +<td>not used</td> +<td>required</td> +</tr> +<tr> +<td>mx</td> +<td>not used</td> +<td>required</td> +</tr> +<tr> +<td>openvpn</td> +<td>required</td> +<td>not used</td> +</tr> +<tr> +<td>monitor</td> +<td>optional</td> +<td>optional</td> +</tr> +<tr> +<td>tor</td> +<td>optional</td> +<td>optional</td> +</tr> +<table> + Locations ================================ |