Add new file
This commit is contained in:
		
							parent
							
								
									24e6d41842
								
							
						
					
					
						commit
						d46e76b073
					
				
							
								
								
									
										181
									
								
								INSTALL.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								INSTALL.md
									
									
									
									
									
										Normal 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' } } | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user