# Setting Up Your Wild Cloud ## Set up your cloud bootstrapper See [Dnsmasq Setup](./guides/dnsmasq-setup.md). ## Set up Control Nodes ### 2. Install K3s (Lightweight Kubernetes) K3s provides a fully-compliant Kubernetes distribution in a small footprint: ```bash # Install K3s without the default load balancer (we'll use MetalLB) curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode=644 --disable servicelb --disable metallb # Set up kubectl configuration mkdir -p ~/.kube sudo cat /etc/rancher/k3s/k3s.yaml > ~/.kube/config chmod 600 ~/.kube/config ``` ## Install Infrastructure Components One command sets up your entire cloud infrastructure: ```bash ./infrastructure_setup/setup-all.sh ``` This installs and configures: - **MetalLB**: Provides IP addresses for services - **LongHorn**: Provides distributed block storage on the cluster - **Traefik**: Handles ingress (routing) with automatic HTTPS - **cert-manager**: Manages TLS certificates automatically - **CoreDNS**: Provides internal DNS resolution - **ExternalDNS**: Updates DNS records automatically - **Kubernetes Dashboard**: Web UI for managing your cluster ## Set up worker nodes For larger workloads or high availability, you can add more nodes: ```bash # On your master node, get the node token NODE_TOKEN=`sudo cat /var/lib/rancher/k3s/server/node-token` MASTER_IP=192.168.8.222 # On each new node, join the cluster curl -sfL https://get.k3s.io | K3S_URL=https://$MASTER_IP:6443 K3S_TOKEN=$NODE_TOKEN sh - ``` ## Next Steps Now that your infrastructure is set up, you can: 1. **Deploy Applications**: See [Applications Guide](./APPS.md) for deploying services and applications 2. **Access Dashboard**: Visit `https://dashboard.internal.yourdomain.com` and use the token from `./bin/dashboard-token` 3. **Validate Setup**: Run `./infrastructure_setup/validate_setup.sh` to ensure everything is working ## Validation and Troubleshooting Run the validation script to ensure everything is working correctly: ```bash ./infrastructure_setup/validate_setup.sh ``` This script checks: - All infrastructure components - DNS resolution - Service connectivity - Certificate issuance - Network configuration If issues are found, the script provides specific remediation steps. ## What's Next? Now that your personal cloud is running, consider: - Setting up backups with [Velero](https://velero.io/) - Adding monitoring with Prometheus and Grafana - Deploying applications like Nextcloud, Home Assistant, or Gitea - Exploring the Kubernetes Dashboard to monitor your services Welcome to your personal cloud journey! You now have the foundation for hosting your own services and taking control of your digital life.