xdapp-book/src/development/tilt/linux.md

2.2 KiB

Linux Devnet Setup

Experimental Setup Script

There's an experimental single command setup script that should install dependencies for you on Linux and configure everything properly. This is only recommended if you're running headless Linux and unable to use Docker Desktop, as you can enable Kubernetes from Docker.

curl $URL | sh install_linux.sh
cd wormhole/
./tilt.sh

Regular Setup

1. Install Go

wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz

2. Install Docker

If you're using Linux with a window manager, consider getting Docker Desktop instead of the following command. It comes with Kubernetes built in and you won't need to download minikube. It's recommended to have at least 4 CPUs and 16GB RAM dedicated to Docker.

Also, make absolutely sure that you set up Docker as a non-root user.

https://docs.docker.com/engine/install/ubuntu/#installation-methods

3. (Docker Desktop Install)

Enable Kubernetes by going into Settings > Kubernetes

3. (Non Docker Desktop)

Install minikube.

Configure minikube:

minikube start --driver=docker --kubernetes-version=v1.23.3 --cpus=4 --memory=14G --disk-size=10G --namespace=wormhole

If you reboot your VM you'll need to run the minikube start command again before you bring up tilt.

4. Install Tilt

Install Tilt by copy pasting this into the Terminal:

curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash

5. Clone the Wormhole Repo and start Tilt

git clone --branch main https://github.com/wormhole-foundation/wormhole.git

If you're running Tilt on your machine:

cd wormhole/
tilt up

If you're running Tilt in a VM, you'll need to pass in some extra flags to enable Tilt to listen to incoming traffic from external addresses:

cd wormhole
tilt up --host=0.0.0.0 -- --webHost=0.0.0.0

You can now access the Tilt UI at either your localhost:10350 or vm_external_ip:10350.

If the VM's external IP doesn't work, check firewall and port settings to make sure your VM allows incoming traffic.