Skip to content

Phala-Network/phala-cloud-bun-starter

Repository files navigation

Phala Cloud Bun + TypeScript Starter

This is a template for developing a Bun-based app with boilerplate code targeting deployment on Phala Cloud and DStack. It includes the SDK by default to make integration with TEE features easier. This repo also includes a default Dockerfile and docker-compose.yml for deployment.

Development

First, you need to clone this repo:

git clone --depth 1 https://github.com/Phala-Network/phala-cloud-bun-starter.git

Next, let's initialize the development environment:

bun i
cp env.example .env

We also need to download the DStack simulator:

# Mac
wget https://github.com/Leechael/tappd-simulator/releases/download/v0.1.4/tappd-simulator-0.1.4-aarch64-apple-darwin.tgz
tar -xvf tappd-simulator-0.1.4-aarch64-apple-darwin.tgz
cd tappd-simulator-0.1.4-aarch64-apple-darwin
./tappd-simulator -l unix:/tmp/tappd.sock

# Linux
wget https://github.com/Leechael/tappd-simulator/releases/download/v0.1.4/tappd-simulator-0.1.4-x86_64-linux-musl.tgz
tar -xvf tappd-simulator-0.1.4-x86_64-linux-musl.tgz
cd tappd-simulator-0.1.4-x86_64-linux-musl
./tappd-simulator -l unix:/tmp/tappd.sock

Once the simulator is running, you need to open another terminal to start your Bun development server:

bun run dev

By default, the Bun development server will listen on port 3000. Open http://127.0.0.1:3000/tdx_quote in your browser to get the quote with reportdata test.

This repo also includes code snippets for the following common use cases:

  • /tdx_quote: The reportdata is test and generates the quote for attestation report via tdxQuote API.
  • /tdx_quote_raw: The reportdata is Hello DStack! and generates the quote for attestation report. The difference from /tdx_quote is that you can see the raw text Hello DStack! in Attestation Explorer.
  • /derive_key: Basic example of the deriveKey API.
  • /ethereum: Using the deriveKey API to generate a deterministic wallet for Ethereum, a.k.a. a wallet held by the TEE instance.
  • /solana: Using the deriveKey API to generate a deterministic wallet for Solana, a.k.a. a wallet held by the TEE instance.
  • /info: Returns the TCB Info of the hosted CVM.

Build

You need to build the image and push it to DockerHub for deployment. The following instructions are for publishing to a public registry via DockerHub:

sudo docker build . -t leechael/phala-cloud-bun-starter
sudo docker push leechael/phala-cloud-bun-starter

Deploy

You can copy and paste the docker-compose.yml file from this repo to see the example up and running.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published