From d46e76b07329e7ef18fcc154def01a89ed9e1489 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 2 Aug 2017 15:18:41 -0600 Subject: [PATCH] Add new file --- INSTALL.md | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 INSTALL.md diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..27dbda6 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,181 @@ +From 0 to "Hello World" +======================= + +Goal: + +The purpose of this tutorial is to install Walnut and be able to launch a simple "Hello World" app. + +Pre-requisites: + +* You have compatible server hardware + * Daplie Server + * EspressoBin + * Raspberry Pi + * MacBook + * (pretty much anything, actually) +* You have compatible softwar + * Linux of any sort that uses systemd + * macOS using launchd +* You own a domain + * through Daplie Domains + * or you understand domains and DNS and all that stuff + +Choose a domain +--------------- + +For the purpose of this instruction we'll assume that your domain is `example.com`, +but you can use, say, `johndoe.daplie.me` for testing through Daplie Domains. + +Anyway, go ahead and set the bash variable `$my_domain` for the purposes of the +rest of this tutorial: + +``` +my_domain=example.com +``` + +Subodmains +---------- + +Auth will be loaded with the following domains + +``` +provider.example.com +api.provider.example.com +``` + +The Hello World app will be loaded with the following domains + +``` +example.com +www.example.com +api.example.com +assets.example.com +``` + +Basic Walnut Install +-------------------- + +Follow the [walnut.js README.md](https://git.daplie.com/Daplie/walnut.js/blob/master/README.md) +for instructions to install Goldilocks.js and Walnut.js (and manually setup domains with daplie tools). + +Since the app store and package manager are not built yet, +you should also change the permissions on the walnut directory for the purposes of this tutorial: + +```bash +sudo chown -R $(whoami) /srv/walnut/ +``` + +OAuth3 Install +-------------- + +``` +# Frontend +git clone git@git.daplie.com:OAuth3/org.oauth3.git /srv/walnut/packages/pages/issuer@oauth3.org +pushd /srv/walnut/packages/pages/issuer@oauth3.org + bash ./install.sh +popd + +echo "issuer@oauth3.org" >> /srv/walnut/var/sites/provider.$my_domain + +# APIs +git clone git@git.daplie.com:OAuth3/org.oauth3.provider.git /srv/walnut/packages/rest/issuer@oauth3.org +pushd /srv/walnut/packages/rest/issuer@oauth3.org/ + git checkout v1.2 + npm install +popd + +echo "issuer@oauth3.org" >> /srv/walnut/packages/client-api-grants/provider.$my_domain +``` + +You also need to change to presently-hardcoded email values (TODO use `getSiteConfig()`) + +``` +vim /srv/walnut/packages/rest/issuer@oauth3.org/lib/provide-oauth3.js +``` + +OAuth3 Secrets +-------------- + +OAuth3 is currently configured to use mailgun for sending verification emails. +It is intended to provide a way to use various mail services in the future, +just bear with us for the time being (or open a Merge Request). + +``` +vim /srv/walnut/var/example.com/config.json +``` + +``` +{ "mailgun.org": { + "apiKey": "key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + , "apiPublicKey": "pubkey-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + , "auth": { + "user": "robtherobot@example.com" + , "pass": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + , "api_key": "key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + , "domain": "example.com" + } + } +, "issuer@oauth3.org": { + "mailer": { + "from": "login@example.com" + , "subject": "Login code request" + , "text": ":code\n\nis your login code" + } + } +} +``` + +Install the 'hello@example.com' package +--------------------- + +```bash +git clone git@git.daplie.com:Daplie/com.example.hello.git /srv/walnut/packages/rest/hello@example.com + +echo "hello@example.com" >> /srv/walnut/packages/client-api-grants/provider.$my_domain +``` + +What it should look like: + +``` +/srv/walnut/packages/rest/hello@example.com/ + package.json + api.js + models.js + rest.js + +/srv/walnut/packages/client-api-grants/example.com + hello@example.com +``` + +The Daplie Seed App +------------------- + +Get the Seed App + +```bash +pushd /srv/walnut/packages/pages/ + +git clone git@git.daplie.com:Daplie/seed_example.com.git --branch v1 seed@example.com + +pushd seed@example.com/ + git clone git@git.daplie.com:OAuth3/oauth3.js.git --branch v1.1 assets/oauth3.org + + mkdir -p .well-known + ln -sf ../assets/oauth3.org/.well-known/oauth3 .well-known/oauth3 +popd + +echo "seed@example.com" >> /srv/walnut/var/sites/$my_domain + +popd +``` + +Change the authenication from `oauth3.org` to your domain (i.e. `provider.example.com`) + +``` +vim /srv/walnut/packages/pages/seed@example.com/js/config.js +``` + +``` +{ "azp@oauth3.org": { issuer_uri: 'provider.example.com', client_uri: 'example.com' } } +``` +