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.
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
: Thereportdata
istest
and generates the quote for attestation report viatdxQuote
API./tdx_quote_raw
: Thereportdata
isHello DStack!
and generates the quote for attestation report. The difference from/tdx_quote
is that you can see the raw textHello DStack!
in Attestation Explorer./derive_key
: Basic example of thederiveKey
API./ethereum
: Using thederiveKey
API to generate a deterministic wallet for Ethereum, a.k.a. a wallet held by the TEE instance./solana
: Using thederiveKey
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.
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
You can copy and paste the docker-compose.yml
file from this repo to see the example up and running.