Add new file

This commit is contained in:
AJ ONeal 2017-08-02 15:18:41 -06:00
parent 24e6d41842
commit d46e76b073
1 changed files with 181 additions and 0 deletions

181
INSTALL.md Normal file
View File

@ -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' } }
```