Docs: 101: explain key import, group setup steps

Signed-off-by: Solomon Hykes <solomon@dagger.io>
This commit is contained in:
Solomon Hykes 2021-06-16 16:50:38 +00:00 committed by Solomon Hykes
parent 2d0b4a7dcb
commit 0375f9bf96

View File

@ -14,51 +14,64 @@ This will allow you to deploy something "real" right away, without having to con
In later guides, you will learn how to configure Dagger to deploy to your own infrastructure. And, for advanced users,
how to share access to your infrastructure in the same way that we are sharing access to ours now.
## Before we start
## Initial setup
First, you'll need to make sure [you have installed dagger on your local machine](/install).
### Install Dagger
## Let's deploy our first application
First, make sure [you have installed dagger on your local machine](/install).
**Step 1**: Clone the example repository
### Setup example app
You will need a local copy of the [Dagger examples repository](https://github.com/dagger/examples).
NOTE: you may use the same local copy across all tutorials.
```shell
git clone https://github.com/dagger/examples.git
git clone https://github.com/dagger/examples
```
**Step 2**: Go the todoapp directory
`todoapp` is a simple Todo-list application written in Javascript using React.
Go to the app directory:
Make sure that all commands are run from the `todoapp` directory:
```shell
cd ./examples/todoapp
cd examples/todoapp
```
**Step 3**: Decrypt the inputs
### Import the tutorial key
The example app contains encrypted secrets and other pre-configured inputs, here is how to decrypt them:
Dagger natively supports encrypted secrets: when a user inputs a value marked as secret
(for example a password, API token or ssh key) it is automatically encrypted with that user's key,
and no other user can access that value unless they are explicitly given access.
```sh
In the interest of security, Dagger has no way *not* to encrypt a secret value.
But this causes a dilemma for this tutorial: how do we give unrestricted public access to our
(carefully sandboxed) infrastructure, so that anyone can deploy to it?
To solve this dilemma, we included the private key used to encrypt the tutorial's secret inputs.
Simply import the key to your Dagger installation, and you're good to go:
```shell
dagger input list || curl -sfL https://releases.dagger.io/examples/key.txt >> ~/.config/dagger/keys.txt
```
**Step 4**: Deploy!
## First deployment
Now that your environment is setup, you are ready to deploy:
```shell
dagger up
```
At the end of the deploy, you should see a list of outputs. There is one that is named `url`. This is the URL where our app has been deployed. If you go to this URL, you should see your application live!
That's it! You have just made your first deployment with Dagger.
## Change some code and re-deploy
The URL of your newly deployed app should be visible towards the end of the command output.
If you visit that URL, you should see your application live!
This repository is already configured to deploy the code in the directory `./todoapp`, so you can change some code (or replace the app code with another react app!) and re-run the following command to re-deploy when you want your changes to be live:
## Code, deploy, repeat
```shell
dagger up
```
This environment is pre-configured to deploy from the `./todoapp` directory,
so you can make any change you want to that directory, then deploy it with `dagger up`.
You can even replace our example React code with any React application!
NOTE: you don't have to commit your changes to the git repository before deploying them.
## Under the hood