Installation
GAGOS can be installed using Docker, Kubernetes, or built from source. Choose the method that best fits your environment.
Docker
The simplest way to run GAGOS is with Docker:
# Generate a secure password
export GAGOS_PASSWORD=$(openssl rand -base64 12)
echo "Password: $GAGOS_PASSWORD"
# Run GAGOS
docker run -d --name gagos -p 8080:8080 \
-e GAGOS_PASSWORD="$GAGOS_PASSWORD" \
-e GAGOS_RUNTIME=docker \
--cap-add=NET_RAW \
gagos:latest
# Access at http://localhost:8080
Docker Compose
# docker-compose.yml
version: '3.8'
services:
gagos:
image: gagos:latest
ports:
- "8080:8080"
environment:
- GAGOS_PASSWORD=${GAGOS_PASSWORD}
- GAGOS_RUNTIME=docker
cap_add:
- NET_RAW
restart: unless-stopped
Run with:
export GAGOS_PASSWORD=$(openssl rand -base64 12)
docker-compose up -d
Retrieve Password Later
docker exec gagos printenv GAGOS_PASSWORD
Kubernetes
Quick Deploy (All-in-One)
# Deploy GAGOS
kubectl apply -f https://raw.githubusercontent.com/gaga951/gagos/main/deploy/kubernetes/gagos-all-in-one.yaml
# Wait for pod to be ready
kubectl wait --for=condition=ready pod -l app=gagos -n gagos --timeout=60s
# Get password
kubectl get secret gagos-auth -n gagos -o jsonpath='{.data.password}' | base64 -d
# Port forward to access
kubectl port-forward -n gagos svc/gagos 8080:8080
Helm Installation
# Add Helm repo (if published)
helm repo add gagos https://gaga951.github.io/gagos/charts
# Install
helm install gagos gagos/gagos -n gagos --create-namespace
# Or from local chart
helm install gagos ./charts/gagos -n gagos --create-namespace
Custom Values
# values.yaml
replicaCount: 1
image:
repository: gagos
tag: latest
service:
type: NodePort
port: 8080
nodePort: 30880
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
# Enable ingress
ingress:
enabled: true
host: gagos.example.com
Retrieve Password (Kubernetes)
kubectl get secret gagos-auth -n gagos -o jsonpath='{.data.password}' | base64 -d
Build from Source
Prerequisites
- Go 1.21 or later
- Docker (for container build)
- Git
Clone and Build
# Clone repository
git clone https://github.com/gaga951/gagos.git
cd gagos
# Build binary
go build -o gagos ./cmd/gagos
# Or build Docker image
docker build -f deploy/docker/Dockerfile -t gagos:latest \
--build-arg VERSION=$(git describe --tags --always) \
--build-arg BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ) .
Run Binary
export GAGOS_PASSWORD="your-secure-password"
./gagos
Requirements
Capabilities
For network tools (ping, traceroute) to work, GAGOS needs the NET_RAW capability:
- Docker:
--cap-add=NET_RAW - Kubernetes: Add to securityContext in deployment
Kubernetes Access
For Kubernetes features to work when running in a cluster:
- ServiceAccount with appropriate RBAC permissions
- ClusterRole or Role with access to desired resources
The all-in-one manifest includes a ClusterRole with full read/write access to common resources.
Verification
After installation, verify GAGOS is running:
# Check health endpoint
curl http://localhost:8080/api/health
# Expected response:
{"status":"ok"}
Then open http://localhost:8080 in your browser.
Next Steps
- Configuration - Environment variables and options
- Network Tools - Start using network diagnostics