diff --git a/docs/docs/getting-started/examples.md b/docs/docs/getting-started/examples.md index a11817b2..5eed4120 100644 --- a/docs/docs/getting-started/examples.md +++ b/docs/docs/getting-started/examples.md @@ -1,4 +1,4 @@ -# Examples ๐Ÿงช +# Examples Just installed EGo? Here are some examples to start your confidential development process. @@ -19,6 +19,7 @@ Similar to the above, but the server manages remote attestation by itself. This Vault is a common way to store secrets and share them on dynamic infrastructures. With EGo, you can build a confidential version of unmodified Vault. ## [WebAssembly with Wasmer](https://github.com/edgelesssys/ego/tree/master/samples/wasmer) + You can run WebAssembly inside EGo using Wasmer. ## [Microsoft Azure Attestation (MAA)](https://github.com/edgelesssys/ego/tree/master/samples/azure_attestation) diff --git a/docs/docs/getting-started/install.md b/docs/docs/getting-started/install.md index 34a24f32..94388083 100644 --- a/docs/docs/getting-started/install.md +++ b/docs/docs/getting-started/install.md @@ -1,4 +1,4 @@ -# Installing EGo ๐Ÿ“ฆ +# Installing EGo ## Install the snap diff --git a/docs/docs/intro.md b/docs/docs/intro.md index 60d54898..bc9cded2 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -2,13 +2,13 @@ slug: / --- -# Welcome to EGo ๐ŸŽ‰ +# Welcome to EGo EGo is a framework for building *confidential apps* in Go. Confidential apps run in secure execution environments called *enclaves*. Enclaves are strongly isolated, runtime encrypted, and attestable. Enclaves can be created on Intel processors that have the SGX (Software Guard Extensions) feature. In essence, EGo lets you run any Go program inside an enclave - without requiring modifications. Apps that benefit from enclaves are typically server applications that deal with sensitive data like cryptographic keys or payment data. HashiCorp Vault is a great example of such an app. -## Philosophy ๐ŸŽ“ +## Philosophy EGo's goal is to bridge the gap between cloud-native and confidential computing. EGo's philosophy is to get as many enclave specifics out of your way as possible. Fundamentally, building and running an enclave with EGo is as simple as building and running an app with normal Go: @@ -18,7 +18,7 @@ ego sign myapp ego run myapp ``` -## Architecture ๐Ÿ— +## Architecture In a nutshell, EGo comprises a modified Go compiler, additional tooling, and a Go library. diff --git a/docs/docs/workflows/build.md b/docs/docs/workflows/build.md index b38dd301..f0053de0 100644 --- a/docs/docs/workflows/build.md +++ b/docs/docs/workflows/build.md @@ -1,4 +1,4 @@ -# Build your app with EGo ๐Ÿ‘ทโ€โ™€๏ธ +# Build your app with EGo ## `ego-go` replaces `go` @@ -10,7 +10,7 @@ ego-go build ## Sign and run -After you've built your app, sign it with the [`ego sign`](../reference/cli.md#sign) command. Just insert the name of your binary in the following command: +After you've built your app, sign it with the [`ego sign`](../reference/cli.md#ego-sign) command. Just insert the name of your binary in the following command: ```bash ego sign @@ -21,6 +21,7 @@ Run the executable with ```bash ego run ``` + You can set the `OE_SIMULATION=1` environment variable if you want to simulate the enclave, e.g. for development on hardware that doesn't support enclaves. Look at the [example collection](../getting-started/examples.md) if you want to see the build process in action. diff --git a/docs/docs/workflows/debug.md b/docs/docs/workflows/debug.md index 4346dbb6..edb040eb 100644 --- a/docs/docs/workflows/debug.md +++ b/docs/docs/workflows/debug.md @@ -1,11 +1,15 @@ -# Debug your app ๐Ÿ”ฌ +# Debug your app + EGo executables can be debugged inside as well as outside of enclaves. Depending on the task, you may prefer one or the other. ## Outside an enclave + An EGo executable can be run as a normal host process without an enclave. Thus, it can also be debugged like any other Go program. This should be your first attempt if the problem isn't related to specific enclave functionality. Use your favorite tools (e.g. the Delve debugger) as usual. ## Inside an enclave + EGo comes with `ego-gdb` that augments `gdb` with enclave support. The `console` interface is the same as `gdb`: + ```bash ego-gdb --args ./helloworld ``` @@ -17,7 +21,9 @@ Setting up the `mi` interface for VSCode is a bit trickier. First, install the [ Use one of the following templates for your `.vscode/launch.json` file. Just replace `samples/helloworld/helloworld` with the path to your EGo executable. ### Snap + If you installed the EGo snap, use this: + ```json { "version": "0.2.0", @@ -57,7 +63,9 @@ If you installed the EGo snap, use this: ``` ### DEB package or built from source + If you installed the DEB package or built it yourself, use this: + ```json { "version": "0.2.0",