# 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](wild-cloud/README.md) mono-repo: - [API](wild-cloud/api/README.md): The Wild Cloud API that runs on Wild Central. - [CLI](wild-cloud/cli/README.md): Command-line interface for managing Wild Cloud instances. - [Web App](wild-cloud/web/README.md): Web-based interface for managing Wild Cloud instances. - [Dist](wild-cloud/dist/README.md): Distribution package for setting up Wild Central devices via apt. - [Docs](wild-cloud/docs/): Public website source (https://mywildcloud.org). ### Other Submodules - [Wild Directory](wild-directory/README.md): Managed apps to be deployed on Wild Cloud instances. ## Dev environment setup ### Prerequisites - Go 1.21+ - Docker (for testing) - make ```bash 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](./wild-cloud-dev.code-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.