Compare commits
1 Commits
97dc73cc9c
...
f9c7a9e2f4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9c7a9e2f4 |
@@ -1,53 +1,3 @@
|
|||||||
# Developer Guide
|
|
||||||
|
|
||||||
This guide covers development, testing, and local building of Wild Cloud Central.
|
|
||||||
|
|
||||||
## Development 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
|
|
||||||
|
|
||||||
# App
|
|
||||||
cd app && pnpm install && cd ..
|
|
||||||
# Daemon
|
|
||||||
cd daemon && go mod tidy && cd ..
|
|
||||||
# CLI
|
|
||||||
cd cli && go mod tidy && cd ..
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building Locally
|
### Building Locally
|
||||||
|
|
||||||
|
|||||||
79
docs/WILD_CENTRAL_PACKAGING.md
Normal file
79
docs/WILD_CENTRAL_PACKAGING.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# Packaging Wild Central
|
||||||
|
|
||||||
|
## Desired Experience
|
||||||
|
|
||||||
|
This is the desired experience for installing Wild Cloud Central on a fresh Debian/Ubuntu system:
|
||||||
|
|
||||||
|
### APT Repository (Recommended)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Download and install GPG key
|
||||||
|
curl -fsSL https://mywildcloud.org/apt/wild-cloud-central.gpg | sudo tee /usr/share/keyrings/wild-cloud-central-archive-keyring.gpg > /dev/null
|
||||||
|
|
||||||
|
# Add repository (modern .sources format)
|
||||||
|
sudo tee /etc/apt/sources.list.d/wild-cloud-central.sources << 'EOF'
|
||||||
|
Types: deb
|
||||||
|
URIs: https://mywildcloud.org/apt
|
||||||
|
Suites: stable
|
||||||
|
Components: main
|
||||||
|
Signed-By: /usr/share/keyrings/wild-cloud-central-archive-keyring.gpg
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Update and install
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install wild-cloud-central
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Installation
|
||||||
|
|
||||||
|
Download the latest `.deb` package from the [releases page](https://github.com/wildcloud/wild-central/releases) and install:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dpkg -i wild-cloud-central_*.deb
|
||||||
|
sudo apt-get install -f # Fix any dependency issues
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. **Configure the service** (optional):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp /etc/wild-cloud-central/config.yaml.example /etc/wild-cloud-central/config.yaml
|
||||||
|
sudo nano /etc/wild-cloud-central/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Start the service**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl enable wild-cloud-central
|
||||||
|
sudo systemctl start wild-cloud-central
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Access the web interface**:
|
||||||
|
Open http://your-server-ip in your browser
|
||||||
|
|
||||||
|
## Developer tooling
|
||||||
|
|
||||||
|
Makefile commands for packaging:
|
||||||
|
|
||||||
|
Package targets (create .deb packages):
|
||||||
|
|
||||||
|
make package - Create .deb package for current arch
|
||||||
|
make package-arm64 - Create arm64 .deb package
|
||||||
|
make package-amd64 - Create amd64 .deb package
|
||||||
|
make package-all - Create all .deb packages
|
||||||
|
|
||||||
|
Repository targets:
|
||||||
|
|
||||||
|
make repo - Build APT repository from packages
|
||||||
|
make deploy-repo - Deploy repository to server
|
||||||
|
|
||||||
|
Directory structure:
|
||||||
|
|
||||||
|
build/ - Intermediate build artifacts
|
||||||
|
dist/bin/ - Final binaries for distribution
|
||||||
|
dist/packages/ - OS packages (.deb files)
|
||||||
|
dist/repositories/ - APT repository for deployment
|
||||||
|
|
||||||
|
Example workflows:
|
||||||
|
make clean && make repo - Full release build
|
||||||
17
docs/manual-setup.md
Normal file
17
docs/manual-setup.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Manual Setup of Wild Cloud Central
|
||||||
|
|
||||||
|
If you want to set up from source (not using the debian package).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Prerequisites
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install dnsmasq
|
||||||
|
|
||||||
|
# Disable systemd-resolved
|
||||||
|
sudo systemctl disable systemd-resolved
|
||||||
|
sudo systemctl stop systemd-resolved
|
||||||
|
|
||||||
|
# Enable dnsmasq
|
||||||
|
sudo systemctl enable dnsmasq
|
||||||
|
sudo systemctl start dnsmasq
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user