68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
# 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.
|