2.4 KiB
Wild Cloud Development Environment
Overview
This project includes a Claude Code assisted environment for working on all Wild Cloud components at once. The Wild Cloud project is organized as follows:
Wild Cloud Mono-repo
The core components are in the wild-cloud mono-repo:
- API: The Wild Cloud API that runs on Wild Central.
- CLI: Command-line interface for managing Wild Cloud instances.
- Web App: Web-based interface for managing Wild Cloud instances.
- Dist: Distribution package for setting up Wild Central devices via apt.
- Docs: Public website source (https://mywildcloud.org).
Other Submodules
- Wild Directory: Managed apps to be deployed on Wild Cloud instances.
Dev environment setup
Prerequisites
- Go 1.21+
- Docker (for testing)
- make
sudo apt update
sudo apt install make direnv
echo 'eval "$(direnv hook bash)"' >> $HOME/.bashrc
source $HOME/.bashrc
# Node.js and pnpm setup
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source $HOME/.bashrc
nvm install --lts
curl -fsSL https://get.pnpm.io/install.sh | sh -
source $HOME/.bashrc
pnpm install -g @anthropic-ai/claude-code
# Golang setup
wget https://go.dev/dl/go1.24.5.linux-arm64.tar.gz
sudo tar -C /usr/local -xzf ./go1.24.5.linux-arm64.tar.gz
echo 'export PATH="$PATH:$HOME/go/bin:/usr/local/go/bin"' >> $HOME/.bashrc
source $HOME/.bashrc
rm ./go1.24.5.linux-arm64.tar.gz
go install -v github.com/go-delve/delve/cmd/dlv@latest
# Python setup
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv sync
# Runtime dependencies
./scripts/install-wild-cloud-dependencies.sh
Development
You will need to create a data directory and link it in your .envrc. The CLI and API will both work against this data dir.
Open the VSCode workspace in VS Code. Within VS Code, you will be able to launch the API and Web App. The web app will reload as you modify files. The API, however, will need to be rebuilt/reloaded after you make changes.
Both the CLI and the web app use the API as their backend, so any non-CLI/web-app functionality should be in the API. When updating the API, it is important to ensure both the CLI and the web-app work with the updates.