initial commit

Signed-off-by: ale <ale@manalejandro.com>
Este commit está contenido en:
ale
2025-11-02 01:39:56 +01:00
commit aff6c82553
Se han modificado 34 ficheros con 4744 adiciones y 0 borrados

326
BUILD.md Archivo normal
Ver fichero

@@ -0,0 +1,326 @@
# Building and Installing Buque
This guide explains how to build and install Buque from source.
## Prerequisites
### 1. Install Go
Buque requires Go 1.21 or higher.
#### Check if Go is installed
```bash
go version
```
If Go is not installed or the version is too old, follow these steps:
#### Ubuntu/Debian
```bash
# Remove old version if exists
sudo apt remove golang-go
# Download Go 1.21 (check for latest version at https://go.dev/dl/)
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
# Extract to /usr/local
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
# Add to PATH (add these lines to ~/.bashrc or ~/.profile)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
# Reload shell configuration
source ~/.bashrc
# Verify installation
go version
```
#### macOS
```bash
# Using Homebrew
brew install go
# Or download from https://go.dev/dl/
```
#### Windows
Download and install from [https://go.dev/dl/](https://go.dev/dl/)
### 2. Install Docker
Follow the Docker installation guide at [docs/DOCKER_SETUP.md](docs/DOCKER_SETUP.md)
## Building Buque
### Method 1: Using the Install Script (Recommended)
```bash
cd /home/buque
# Run the installation script
./install.sh
```
This will:
- Check prerequisites
- Build the binary
- Install to `$GOPATH/bin`
- Verify the installation
### Method 2: Using Make
```bash
cd /home/buque
# Download dependencies
make deps
# Build the binary
make build
# The binary will be in ./bin/buque
./bin/buque --version
# Or install to $GOPATH/bin
make install
# Verify installation
buque --version
```
### Method 3: Using Go directly
```bash
cd /home/buque
# Download dependencies
go mod download
# Build
go build -o bin/buque ./cmd/buque
# Or install directly
go install ./cmd/buque
# Verify
buque --version
```
## Build Options
### Build for production (optimized)
```bash
go build -ldflags="-s -w" -o bin/buque ./cmd/buque
```
Flags:
- `-s`: Strip symbol table
- `-w`: Strip DWARF debugging information
### Build for specific platform
```bash
# Linux AMD64
GOOS=linux GOARCH=amd64 go build -o bin/buque-linux-amd64 ./cmd/buque
# Linux ARM64
GOOS=linux GOARCH=arm64 go build -o bin/buque-linux-arm64 ./cmd/buque
# macOS AMD64 (Intel)
GOOS=darwin GOARCH=amd64 go build -o bin/buque-darwin-amd64 ./cmd/buque
# macOS ARM64 (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o bin/buque-darwin-arm64 ./cmd/buque
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -o bin/buque-windows-amd64.exe ./cmd/buque
```
### Build for all platforms
```bash
make build-all
```
This creates binaries for:
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64)
## Installation
### System-wide installation
```bash
# Build and install
make install
# Or manually copy to system path
sudo cp bin/buque /usr/local/bin/
# Verify
buque --version
```
### User-specific installation
```bash
# Install to $GOPATH/bin (usually ~/go/bin)
go install ./cmd/buque
# Make sure $GOPATH/bin is in your PATH
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc
# Verify
buque --version
```
## Troubleshooting
### "go: command not found"
Go is not installed or not in PATH. Install Go following the prerequisites section.
### "permission denied" when running buque
```bash
# Make the binary executable
chmod +x bin/buque
# Or if installed system-wide
sudo chmod +x /usr/local/bin/buque
```
### "cannot find package" errors
```bash
# Download dependencies
go mod download
go mod tidy
# Then rebuild
make build
```
### Build fails with "go.mod" errors
```bash
# Clean and rebuild
make clean
make deps
make build
```
### Docker connection errors
Make sure Docker is running:
```bash
# Check Docker status
systemctl status docker # Linux
docker ps # All platforms
# Start Docker if needed
sudo systemctl start docker # Linux
```
## Verification
After installation, verify everything works:
```bash
# Check version
buque --version
# Check help
buque --help
# Initialize (creates config file)
buque init
# Check Docker connection
docker ps
```
## Running Tests
```bash
# Run all tests
make test
# Run with coverage
go test -cover ./...
# Run specific package tests
go test ./internal/docker/...
```
## Development Build
For development with hot reload:
```bash
# Install air for hot reload
go install github.com/cosmtrek/air@latest
# Run in development mode
make dev
```
## Uninstallation
```bash
# Remove binary from $GOPATH/bin
rm $(go env GOPATH)/bin/buque
# Or from system path
sudo rm /usr/local/bin/buque
# Remove configuration (optional)
rm -rf ~/.buque
```
## Next Steps
After successful installation:
1. Read the [Quick Start Guide](docs/QUICK_START.md)
2. Run the demo: `./scripts/demo.sh`
3. Initialize Buque: `buque init`
4. Start managing your containers!
## Getting Help
If you encounter issues:
1. Check the [README.md](README.md) for documentation
2. Run `buque --help` for command usage
3. Check Docker is running: `docker ps`
4. Verify Go version: `go version`
5. Open an issue on GitHub
## Build Information
To see build information:
```bash
# Version
buque --version
# Go version used
go version
# Docker version
docker --version
docker compose version
```